Lines Matching full:consumer
18 /* Hinder the adjacent cache prefetcher to prefetch the consumer
22 u32 consumer ____cacheline_aligned_in_smp;
65 * consumer. For the Tx and fill rings, the kernel is the consumer and
68 * producer consumer
70 * if (LOAD ->consumer) { (A) LOAD.acq ->producer (C)
72 * STORE.rel ->producer (B) STORE.rel ->consumer (D)
78 * the producer pointer. If this barrier was missing, the consumer
80 * before the producer has written the new data. The consumer would in
83 * (C) protects the consumer from speculatively loading the data before
89 * (A) is a control dependency that separates the load of ->consumer
90 * from the stores of $data. In case ->consumer indicates there is no
95 * store of the consumer pointer. If we did not have this memory
96 * barrier, the producer could observe the consumer pointer being set
97 * and overwrite the data with a new value before the consumer got the
98 * chance to read the old value. The consumer would thus miss reading
105 * producer consumer
113 * seen and read by the consumer.
115 * The consumer peeks into the ring to see if the producer has written
116 * any new entries. If so, the consumer can then read these entries
123 /* Functions that read and validate content from consumer rings. */
311 smp_store_release(&q->ring->consumer, q->cached_cons); /* D, matchees A */ in __xskq_cons_release()
372 return READ_ONCE(q->ring->producer) - READ_ONCE(q->ring->consumer); in xskq_cons_present_entries()
390 q->cached_cons = READ_ONCE(q->ring->consumer); in xskq_prod_nb_free()
484 return READ_ONCE(q->ring->consumer) == READ_ONCE(q->ring->producer); in xskq_prod_is_empty()