Lines Matching refs:and

7 DPDK's stack library provides an API for configuration and use of a bounded
12 * Create a uniquely named stack of a user-specified size and using a
16 * Push and pop a burst of one or more stack objects (pointers). These function
23 * Query a stack's current depth and number of free entries.
28 The library supports two types of stacks: standard (lock-based) and lock-free.
37 index, and a spinlock. Accesses to the stack are made multi-thread safe by the
46 data pointer and a next pointer, and an atomic stack depth counter. The
47 lock-free property means that multiple threads can push and pop simultaneously,
48 and one thread being preempted/delayed in a push or pop operation will not
52 list's tail to the current stack head, and using a CAS to swing the stack head
54 (i.e. the list changed between reading the head and modifying it), else it
55 adjusts the stack length and returns.
63 The linked list elements themselves are maintained in a lock-free LIFO, and are
64 allocated before stack pushes and freed after stack pops. Since the stack has a
74 compare-and-swap instruction to atomically update both the stack top pointer
75 and a modification counter. The ABA problem can occur without a modification
78 1. Thread A reads head pointer X and stores the pointed-to list element.
81 3. Thread A changes the head pointer with a compare-and-swap and succeeds.
83 In this case thread A would not detect that the list had changed, and would
84 both pop stale data and incorrect change the head pointer. By adding a
85 modification counter that is updated on every push and pop as part of the
86 compare-and-swap, the algorithm can detect when the list changes even if the