Lines Matching full:consumer

18 	/* Hinder the adjacent cache prefetcher to prefetch the consumer
22 u32 consumer ____cacheline_aligned_in_smp;
54 * consumer. For the Tx and fill rings, the kernel is the consumer and
57 * producer consumer
59 * if (LOAD ->consumer) { (A) LOAD.acq ->producer (C)
61 * STORE.rel ->producer (B) STORE.rel ->consumer (D)
67 * the producer pointer. If this barrier was missing, the consumer
69 * before the producer has written the new data. The consumer would in
72 * (C) protects the consumer from speculatively loading the data before
78 * (A) is a control dependency that separates the load of ->consumer
79 * from the stores of $data. In case ->consumer indicates there is no
84 * store of the consumer pointer. If we did not have this memory
85 * barrier, the producer could observe the consumer pointer being set
86 * and overwrite the data with a new value before the consumer got the
87 * chance to read the old value. The consumer would thus miss reading
94 * producer consumer
102 * seen and read by the consumer.
104 * The consumer peeks into the ring to see if the producer has written
105 * any new entries. If so, the consumer can then read these entries
112 /* Functions that read and validate content from consumer rings. */
232 smp_store_release(&q->ring->consumer, q->cached_cons); /* D, matchees A */ in __xskq_cons_release()
306 return READ_ONCE(q->ring->producer) - READ_ONCE(q->ring->consumer) == in xskq_cons_is_full()
313 return READ_ONCE(q->ring->producer) - READ_ONCE(q->ring->consumer); in xskq_cons_present_entries()
326 q->cached_cons = READ_ONCE(q->ring->consumer); in xskq_prod_nb_free()
426 return READ_ONCE(q->ring->consumer) == READ_ONCE(q->ring->producer); in xskq_prod_is_empty()