Lines Matching full:producer

17 	u32 producer ____cacheline_aligned_in_smp;
19 * pointer if the producer pointer is touched and vice versa.
59 * completion ring, the kernel is the producer and user space is the
61 * user space is the producer.
63 * producer consumer
65 * if (LOAD ->consumer) { (A) LOAD.acq ->producer (C)
67 * STORE.rel ->producer (B) STORE.rel ->consumer (D)
73 * the producer pointer. If this barrier was missing, the consumer
74 * could observe the producer pointer being set and thus load the data
75 * before the producer has written the new data. The consumer would in
79 * the producer pointer actually has been read. If we do not have this
82 * between ->producer and data.
91 * barrier, the producer could observe the consumer pointer being set
100 * producer consumer
106 * The producer reserves one or more entries in the ring. It can then
110 * The consumer peeks into the ring to see if the producer has written
112 * and when it is done reading them release them back to the producer
113 * so that the producer can use these slots to fill in new entries.
287 q->cached_prod = smp_load_acquire(&q->ring->producer); /* C, matches B */ in __xskq_cons_peek()
342 return READ_ONCE(q->ring->producer) - READ_ONCE(q->ring->consumer); in xskq_cons_present_entries()
426 smp_store_release(&q->ring->producer, idx); /* B, matches C */ in __xskq_prod_submit()
436 __xskq_prod_submit(q, q->ring->producer + nb_entries); in xskq_prod_submit_n()
442 return READ_ONCE(q->ring->consumer) == READ_ONCE(q->ring->producer); in xskq_prod_is_empty()