#include <vnet/adj/adj.h>
#include <vnet/dpo/load_balance.h>
#include "lpm.h"
+#include <vppinfra/lock.h>
#define MAP_SKIP_IP6_LOOKUP 1
void
map_ip4_reass_free(map_ip4_reass_t *r, u32 **pi_to_drop);
-#define map_ip4_reass_lock() while (clib_atomic_test_and_set (map_main.ip4_reass_lock)) {}
+#define map_ip4_reass_lock() while (clib_atomic_test_and_set (map_main.ip4_reass_lock)) { CLIB_PAUSE (); }
#define map_ip4_reass_unlock() do {CLIB_MEMORY_BARRIER(); *map_main.ip4_reass_lock = 0;} while(0)
static_always_inline void
void
map_ip6_reass_free(map_ip6_reass_t *r, u32 **pi_to_drop);
-#define map_ip6_reass_lock() while (clib_atomic_test_and_set (map_main.ip6_reass_lock)) {}
+#define map_ip6_reass_lock() while (clib_atomic_test_and_set (map_main.ip6_reass_lock)) { CLIB_PAUSE (); }
#define map_ip6_reass_unlock() do {CLIB_MEMORY_BARRIER(); *map_main.ip6_reass_lock = 0;} while(0)
int
#include <vppinfra/heap.h>
#include <vppinfra/pool.h>
#include <vppinfra/format.h>
+#include <vppinfra/lock.h>
#ifndef MMAP_PAGESIZE
#define MMAP_PAGESIZE (clib_mem_get_page_size())
}
while (clib_atomic_test_and_set (&h->lock))
- ;
+ CLIB_PAUSE ();
h->owner_pid = my_pid;
h->recursion_count = 1;
ssvm_lock_non_recursive (ssvm_shared_header_t * h, u32 tag)
{
while (clib_atomic_test_and_set (&h->lock))
- ;
+ CLIB_PAUSE ();
h->tag = tag;
}
#include <vnet/api_errno.h> /* for API error numbers */
#include <vnet/l2/l2_classify.h> /* for L2_INPUT_CLASSIFY_NEXT_xxx */
#include <vnet/fib/fib_table.h>
+#include <vppinfra/lock.h>
vnet_classify_main_t vnet_classify_main;
hash >>= t->log2_nbuckets;
while (clib_atomic_test_and_set (t->writer_lock))
- ;
+ CLIB_PAUSE ();
/* First elt in the bucket? */
if (b->offset == 0)
#include <vppinfra/hash.h>
#include <vnet/dns/dns_packet.h>
#include <vnet/ip/ip.h>
+#include <vppinfra/lock.h>
typedef struct
{
if (dm->cache_lock)
{
while (clib_atomic_test_and_set (dm->cache_lock))
- ;
+ CLIB_PAUSE ();
}
}
#include <vppinfra/format.h>
#include <vppinfra/hash.h>
#include <vppinfra/math.h>
+#include <vppinfra/lock.h>
static inline void
elog_lock (elog_main_t * em)
{
if (PREDICT_FALSE (em->lock != 0))
while (clib_atomic_test_and_set (em->lock))
- ;
+ CLIB_PAUSE ();
}
static inline void
#include <vppinfra/mheap.h>
#include <vppinfra/os.h>
#include <vppinfra/time.h>
+#include <vppinfra/lock.h>
#ifdef CLIB_UNIX
#include <vppinfra/elf_clib.h>
}
while (clib_atomic_test_and_set (&h->lock))
- ;
+ CLIB_PAUSE ();
h->owner_cpu = my_cpu;
h->recursion_count = 1;