Home
last modified time | relevance | path

Searched full:producer (Results 1 – 25 of 260) sorted by relevance

1234567891011

/Linux-v5.15/virt/lib/
Dirqbypass.c78 * irq_bypass_register_producer - register IRQ bypass producer
79 * @producer: pointer to producer structure
81 * Add the provided IRQ producer to the list of producers and connect
84 int irq_bypass_register_producer(struct irq_bypass_producer *producer) in irq_bypass_register_producer() argument
90 if (!producer->token) in irq_bypass_register_producer()
101 if (tmp->token == producer->token) { in irq_bypass_register_producer()
108 if (consumer->token == producer->token) { in irq_bypass_register_producer()
109 ret = __connect(producer, consumer); in irq_bypass_register_producer()
116 list_add(&producer->node, &producers); in irq_bypass_register_producer()
129 * irq_bypass_unregister_producer - unregister IRQ bypass producer
[all …]
/Linux-v5.15/net/xdp/
Dxsk_queue.h17 u32 producer ____cacheline_aligned_in_smp;
19 * pointer if the producer pointer is touched and vice versa.
53 * completion ring, the kernel is the producer and user space is the
55 * user space is the producer.
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
68 * could observe the producer pointer being set and thus load the data
69 * before the producer has written the new data. The consumer would in
[all …]
/Linux-v5.15/include/linux/
Dirqbypass.h27 * callbacks. Match tokens must be unique per producer/consumer, 1:N pairings
32 * struct irq_bypass_producer - IRQ bypass producer definition
34 * @token: opaque token to match between producer and consumer (non-NULL)
35 * @irq: Linux IRQ number for the producer device
36 * @add_consumer: Connect the IRQ producer to an IRQ consumer (optional)
37 * @del_consumer: Disconnect the IRQ producer from an IRQ consumer (optional)
41 * The IRQ bypass producer structure represents an interrupt source for
60 * @token: opaque token to match between producer and consumer (non-NULL)
61 * @add_producer: Connect the IRQ consumer to an IRQ producer
62 * @del_producer: Disconnect the IRQ consumer from an IRQ producer
Dptr_ring.h14 * single producer and a single consumer CPU.
31 int producer ____cacheline_aligned_in_smp;
36 /* Shared consumer/producer data */
37 /* Read-only by both the producer and the consumer */
51 return r->queue[r->producer]; in __ptr_ring_full()
106 if (unlikely(!r->size) || r->queue[r->producer]) in __ptr_ring_produce()
113 WRITE_ONCE(r->queue[r->producer++], ptr); in __ptr_ring_produce()
114 if (unlikely(r->producer >= r->size)) in __ptr_ring_produce()
115 r->producer = 0; in __ptr_ring_produce()
120 * Note: resize (below) nests producer lock within consumer lock, so if you
[all …]
Dclk.h316 * clk_get - lookup and obtain a reference to a clock producer.
320 * Returns a struct clk corresponding to the clock producer, or
323 * the clock producer. (IOW, @id may be identical strings, but
333 * clk_bulk_get - lookup and obtain a number of references to clock producer.
345 * clock consumer, and thereby the clock producer.
356 * producer.
376 * clk_bulk_get_optional - lookup and obtain a number of references to clock producer
381 * Behaves the same as clk_bulk_get() except where there is no clock producer.
383 * NULL for a clk for which a clock producer could not be determined.
408 * producer. In this case, instead of returning -ENOENT, the function returns
[all …]
/Linux-v5.15/Documentation/core-api/
Dcircular-buffers.rst15 (2) Memory barriers for when the producer and the consumer of objects in the
19 producer and just one consumer. It is possible to handle multiple producers by
30 - The producer.
41 (1) A 'head' index - the point at which the producer inserts items into the
113 (1) CIRC_SPACE*() are intended to be used in the producer. To the producer
114 they will return a lower bound as the producer controls the head index,
118 To the consumer it will show an upper bound as the producer may be busy
123 producer may still be filling the buffer on another CPU and moving the
126 To the producer it will show an upper bound as the consumer may be busy
130 producer and consumer become visible cannot be guaranteed as they are
[all …]
/Linux-v5.15/drivers/mmc/host/
Dmmci_qcom_dml.c59 /* Read operation: configure DML for producer operation */ in qcom_dma_start()
60 /* Set producer CRCI-x and disable consumer CRCI */ in qcom_dma_start()
66 /* Set the Producer BAM block size */ in qcom_dma_start()
69 /* Set Producer BAM Transaction size */ in qcom_dma_start()
72 /* Set Producer Transaction End bit */ in qcom_dma_start()
76 /* Trigger producer */ in qcom_dma_start()
80 /* Set consumer CRCI-x and disable producer CRCI*/ in qcom_dma_start()
85 /* Clear Producer Transaction End bit */ in qcom_dma_start()
142 /* Disable the producer and consumer CRCI */ in qcom_dma_setup()
164 * Initialize the logical BAM pipe size for producer in qcom_dma_setup()
[all …]
/Linux-v5.15/kernel/trace/
Dring_buffer_benchmark.c33 static struct task_struct *producer; variable
39 MODULE_PARM_DESC(disable_reader, "only run producer");
52 MODULE_PARM_DESC(producer_nice, "nice prio for producer");
58 MODULE_PARM_DESC(producer_fifo, "use fifo for producer: 0 - disabled, 1 - low prio, 2 - fifo");
189 * Continue running until the producer specifically asks to stop in ring_buffer_consumer()
216 /* Wait till the producer wakes us up when there is more data in ring_buffer_consumer()
217 * available or when the producer wants us to finish reading. in ring_buffer_consumer()
314 trace_printk("Running Producer at SCHED_FIFO %s\n", in ring_buffer_producer()
317 trace_printk("Running Producer at nice: %d\n", in ring_buffer_producer()
447 producer = kthread_run(ring_buffer_producer_thread, in ring_buffer_benchmark_init()
[all …]
/Linux-v5.15/tools/testing/selftests/bpf/benchs/
Drun_bench_ringbufs.sh33 header "Single-producer, parallel producer"
38 header "Single-producer, parallel producer, sampled notification"
43 header "Single-producer, back-to-back mode"
66 header "Single-producer, consumer/producer competing on the same CPU, low batch count"
71 header "Ringbuf, multi-producer contention"
Dbench_rename.c17 fprintf(stderr, "benchmark doesn't support multi-producer!\n"); in validate()
26 static void *producer(void *input) in producer() function
118 .producer_thread = producer,
129 .producer_thread = producer,
140 .producer_thread = producer,
151 .producer_thread = producer,
162 .producer_thread = producer,
173 .producer_thread = producer,
/Linux-v5.15/Documentation/devicetree/bindings/net/
Dmdio-mux-multiplexer.yaml14 of a mux producer device. The mux producer can be of any type like mmio mux
15 producer, gpio mux producer or generic register based mux producer.
36 mux: mux-controller { // Mux Producer
/Linux-v5.15/drivers/net/ethernet/qlogic/qlcnic/
Dqlcnic_io.c276 u32 producer; in qlcnic_82xx_change_filter() local
279 producer = tx_ring->producer; in qlcnic_82xx_change_filter()
280 hwdesc = &tx_ring->desc_head[tx_ring->producer]; in qlcnic_82xx_change_filter()
296 tx_ring->producer = get_next_index(producer, tx_ring->num_desc); in qlcnic_82xx_change_filter()
376 u32 producer = tx_ring->producer; in qlcnic_tx_encap_pkt() local
406 hwdesc = &tx_ring->desc_head[producer]; in qlcnic_tx_encap_pkt()
407 tx_ring->cmd_buf_arr[producer].skb = NULL; in qlcnic_tx_encap_pkt()
412 producer = get_next_index(producer, tx_ring->num_desc); in qlcnic_tx_encap_pkt()
415 tx_ring->producer = producer; in qlcnic_tx_encap_pkt()
417 /* Make sure updated tx_ring->producer is visible in qlcnic_tx_encap_pkt()
[all …]
/Linux-v5.15/tools/testing/selftests/sync/
Dsync_stress_consumer.c2 * sync stress test: producer/consumer
90 * Every producer increments the counter, the consumer in mpsc_producer_thread()
98 "Error advancing producer timeline\n"); in mpsc_producer_thread()
129 * Make sure we see an increment from every producer thread. in mpcs_consumer_thread()
143 /* Release the producer threads */ in mpcs_consumer_thread()
145 "Failure releasing producer threads\n"); in mpcs_consumer_thread()
/Linux-v5.15/include/uapi/linux/
Dsmc_diag.h69 struct smc_diag_cursor rx_prod; /* received producer cursor */
72 struct smc_diag_cursor tx_prod; /* sent producer cursor */
74 __u8 rx_prod_flags; /* received producer flags */
76 __u8 tx_prod_flags; /* sent producer flags */
/Linux-v5.15/Documentation/networking/
Daf_xdp.rst64 single-consumer / single-producer (for performance reasons), the new
121 The UMEM has two single-producer/single-consumer rings that are used
129 TX. All rings are single-producer/single-consumer, so the user-space
138 The rings are head(producer)/tail(consumer) based rings. A producer
140 producer member, and increasing the producer index. A consumer reads
309 rings, and they are single producer, single consumer rings, you need
355 space is a producer. When this option is set in the bind call, the
405 be used. Note, that the rings are single-producer single-consumer, so
486 // __u32 *producer;
492 // __u32 *producer;
[all …]
/Linux-v5.15/tools/lib/bpf/
Dxsk.c99 __u64 producer; member
182 off->rx.producer = off_v1.rx.producer; in xsk_mmap_offsets_v1()
187 off->tx.producer = off_v1.tx.producer; in xsk_mmap_offsets_v1()
192 off->fr.producer = off_v1.fr.producer; in xsk_mmap_offsets_v1()
197 off->cr.producer = off_v1.cr.producer; in xsk_mmap_offsets_v1()
256 fill->producer = map + off.fr.producer; in xsk_create_umem_rings()
272 comp->producer = map + off.cr.producer; in xsk_create_umem_rings()
1118 rx->producer = rx_map + off.rx.producer; in xsk_socket__create_shared()
1122 rx->cached_prod = *rx->producer; in xsk_socket__create_shared()
1139 tx->producer = tx_map + off.tx.producer; in xsk_socket__create_shared()
[all …]
Dxsk.h98 __u32 *producer; \
176 r->cached_prod = libbpf_smp_load_acquire(r->producer); in xsk_cons_nb_avail()
197 * this to the kernel by writing the producer pointer. in xsk_ring_prod__submit()
199 libbpf_smp_store_release(prod->producer, *prod->producer + nb); in xsk_ring_prod__submit()
/Linux-v5.15/tools/testing/selftests/bpf/
Dbench.c109 " # run 'count-local' benchmark with 1 producer and 1 consumer\n"
111 " # run 'count-local' with 16 producer and 8 consumer thread, pinned to CPUs\n"
123 { "producers", 'p', "NUM", 0, "Number of producer threads"},
126 { "affinity", 'a', NULL, 0, "Set consumer/producer thread affinity"},
128 "Set of CPUs for producer threads; implies --affinity"},
169 fprintf(stderr, "Invalid producer count: %s\n", arg); in parse_arg()
396 /* unless explicit producer CPU list is specified, continue after in setup_benchmark()
406 fprintf(stderr, "failed to create producer thread #%d: %d\n", in setup_benchmark()
/Linux-v5.15/drivers/net/wireless/ath/ath11k/
Dhal_desc.h33 * Producer: SW/FW
505 * Producer: RXDMA
706 * Producer: RXDMA
761 * Indicates the number of times the producer of entries into
803 * Producer: RXDMA
855 * Indicates the number of times the producer of entries into
877 * Producer: SW
1131 * producer of entries into the Ring has looped around the
1140 * use this field to figure out up to where the producer of
1355 * producer of entries into the Ring has looped around the
[all …]
/Linux-v5.15/include/acpi/
Dacrestyp.h112 /* Producer/Consumer */
349 u8 producer_consumer; /* For values, see Producer/Consumer above */
389 …u8 producer_consumer; /* For values, see Producer/Consumer …
528 u8 producer_consumer; /* For values, see Producer/Consumer above */
558 u8 producer_consumer; /* For values, see Producer/Consumer above */
568 u8 producer_consumer; /* For values, see Producer/Consumer above */
579 u8 producer_consumer; /* For values, see Producer/Consumer above */
/Linux-v5.15/drivers/mailbox/
Dtegra-hsp.c73 bool producer; member
222 if (mb->producer) { in tegra_hsp_shared_irq()
248 if (!mb->producer) { in tegra_hsp_shared_irq()
382 if (WARN_ON(!mb->producer)) in tegra_hsp_mailbox_send_data()
446 if (mb->producer) in tegra_hsp_mailbox_startup()
456 if (mb->producer) in tegra_hsp_mailbox_startup()
475 if (mb->producer) in tegra_hsp_mailbox_shutdown()
485 if (mb->producer) in tegra_hsp_mailbox_shutdown()
557 mb->producer = false; in tegra_hsp_sm_xlate()
559 mb->producer = true; in tegra_hsp_sm_xlate()
/Linux-v5.15/drivers/net/ethernet/qlogic/netxen/
Dnetxen_nic_init.c1813 int producer, count = 0; in netxen_post_rx_buffers() local
1817 producer = rds_ring->producer; in netxen_post_rx_buffers()
1833 pdesc = &rds_ring->desc_head[producer]; in netxen_post_rx_buffers()
1838 producer = get_next_index(producer, rds_ring->num_desc); in netxen_post_rx_buffers()
1842 rds_ring->producer = producer; in netxen_post_rx_buffers()
1844 (producer-1) & (rds_ring->num_desc-1)); in netxen_post_rx_buffers()
1849 * receive ring producer in netxen_post_rx_buffers()
1855 ((producer - 1) & in netxen_post_rx_buffers()
1871 int producer, count = 0; in netxen_post_rx_buffers_nodb() local
1877 producer = rds_ring->producer; in netxen_post_rx_buffers_nodb()
[all …]
/Linux-v5.15/Documentation/PCI/
Dacpi-info.rst55 ACPI defines a Consumer/Producer bit to distinguish the bridge registers
56 ("Consumer") from the bridge apertures ("Producer") [4, 5], but early
58 spec defines Consumer/Producer only for the Extended Address Space
64 Consumer/Producer meant there was no way to describe bridge registers in
141 General Flags: Bit [0] Consumer/Producer:
/Linux-v5.15/Documentation/bpf/
Dringbuf.rst128 of consumer/producer, respectively.
162 - producer counter denotes amount of data reserved by all producers.
164 Each time a record is reserved, producer that "owns" the record will
165 successfully advance producer counter. At that point, data is still not yet
178 Producer counter increments are serialized under spinlock, so there is
/Linux-v5.15/kernel/bpf/
Dringbuf.c19 /* consumer page and producer page */
26 * into account few extra pages for consumer/producer pages and
40 /* Consumer and producer counters are put into separate pages to allow
41 * mapping consumer page as r/w, but restrict producer page to r/o.
42 * This protects producer position from being modified by user-space
330 /* check for out of ringbuf space by ensuring producer position in __bpf_ringbuf_reserve()

1234567891011