Home
last modified time | relevance | path

Searched refs:producer (Results 1 – 25 of 57) sorted by relevance

123

/Linux-v5.10/virt/lib/
Dirqbypass.c88 int irq_bypass_register_producer(struct irq_bypass_producer *producer) in irq_bypass_register_producer() argument
94 if (!producer->token) in irq_bypass_register_producer()
105 if (tmp->token == producer->token) { in irq_bypass_register_producer()
112 if (consumer->token == producer->token) { in irq_bypass_register_producer()
113 ret = __connect(producer, consumer); in irq_bypass_register_producer()
120 list_add(&producer->node, &producers); in irq_bypass_register_producer()
139 void irq_bypass_unregister_producer(struct irq_bypass_producer *producer) in irq_bypass_unregister_producer() argument
144 if (!producer->token) in irq_bypass_unregister_producer()
155 if (tmp->token != producer->token) in irq_bypass_unregister_producer()
159 if (consumer->token == producer->token) { in irq_bypass_unregister_producer()
[all …]
/Linux-v5.10/tools/testing/selftests/bpf/benchs/
Dbench_rename.c26 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.10/include/linux/
Dptr_ring.h31 int producer ____cacheline_aligned_in_smp;
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()
494 r->producer = r->consumer_head = r->consumer_tail = 0; in ptr_ring_init()
562 int producer = 0; in __ptr_ring_swap_queue() local
567 if (producer < size) in __ptr_ring_swap_queue()
568 queue[producer++] = ptr; in __ptr_ring_swap_queue()
[all …]
Dkvm_irqfd.h61 struct irq_bypass_producer *producer; member
/Linux-v5.10/Documentation/devicetree/bindings/net/
Dmdio-mux-multiplexer.txt4 of a mux producer device. The mux producer can be of any type like mmio mux
5 producer, gpio mux producer or generic register based mux producer.
21 In below example the Mux producer and consumer are separate nodes.
/Linux-v5.10/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()
467 u32 producer = tx_ring->producer; in qlcnic_tx_pkt() local
[all …]
Dqlcnic_hw.c384 u32 i, producer; in qlcnic_send_cmd_descs() local
397 producer = tx_ring->producer; in qlcnic_send_cmd_descs()
415 pbuf = &tx_ring->cmd_buf_arr[producer]; in qlcnic_send_cmd_descs()
419 memcpy(&tx_ring->desc_head[producer], in qlcnic_send_cmd_descs()
422 producer = get_next_index(producer, tx_ring->num_desc); in qlcnic_send_cmd_descs()
427 tx_ring->producer = producer; in qlcnic_send_cmd_descs()
/Linux-v5.10/net/xdp/
Dxsk_queue.h17 u32 producer ____cacheline_aligned_in_smp;
211 q->cached_prod = READ_ONCE(q->ring->producer); in __xskq_cons_peek()
263 return READ_ONCE(q->ring->producer) - READ_ONCE(q->ring->consumer) == in xskq_cons_is_full()
270 return READ_ONCE(q->ring->producer) - READ_ONCE(q->ring->consumer); in xskq_cons_present_entries()
332 WRITE_ONCE(q->ring->producer, idx); in __xskq_prod_submit()
343 u32 idx = q->ring->producer; in xskq_prod_submit_addr()
352 __xskq_prod_submit(q, q->ring->producer + nb_entries); in xskq_prod_submit_n()
358 return READ_ONCE(q->ring->consumer) == READ_ONCE(q->ring->producer); in xskq_prod_is_empty()
Dxsk.h15 __u64 producer; member
/Linux-v5.10/kernel/trace/
Dring_buffer_benchmark.c33 static struct task_struct *producer; variable
447 producer = kthread_run(ring_buffer_producer_thread, in ring_buffer_benchmark_init()
449 ret = PTR_ERR(producer); in ring_buffer_benchmark_init()
451 if (IS_ERR(producer)) in ring_buffer_benchmark_init()
467 sched_set_fifo(producer); in ring_buffer_benchmark_init()
469 sched_set_fifo_low(producer); in ring_buffer_benchmark_init()
471 set_user_nice(producer, producer_nice); in ring_buffer_benchmark_init()
486 kthread_stop(producer); in ring_buffer_benchmark_exit()
/Linux-v5.10/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.10/tools/lib/bpf/
Dxsk.c89 __u64 producer; member
172 off->rx.producer = off_v1.rx.producer; in xsk_mmap_offsets_v1()
177 off->tx.producer = off_v1.tx.producer; in xsk_mmap_offsets_v1()
182 off->fr.producer = off_v1.fr.producer; in xsk_mmap_offsets_v1()
187 off->cr.producer = off_v1.cr.producer; in xsk_mmap_offsets_v1()
246 fill->producer = map + off.fr.producer; in xsk_create_umem_rings()
262 comp->producer = map + off.cr.producer; in xsk_create_umem_rings()
789 rx->producer = rx_map + off.rx.producer; in xsk_socket__create_shared()
793 rx->cached_prod = *rx->producer; in xsk_socket__create_shared()
810 tx->producer = tx_map + off.tx.producer; in xsk_socket__create_shared()
[all …]
Dxsk.h32 __u32 *producer; \
109 r->cached_prod = *r->producer; in xsk_cons_nb_avail()
135 *prod->producer += nb; in xsk_ring_prod__submit()
/Linux-v5.10/drivers/mailbox/
Dtegra-hsp.c73 bool producer; member
220 if (mb->producer) { in tegra_hsp_shared_irq()
246 if (!mb->producer) { in tegra_hsp_shared_irq()
380 if (WARN_ON(!mb->producer)) in tegra_hsp_mailbox_send_data()
444 if (mb->producer) in tegra_hsp_mailbox_startup()
454 if (mb->producer) in tegra_hsp_mailbox_startup()
473 if (mb->producer) in tegra_hsp_mailbox_shutdown()
483 if (mb->producer) in tegra_hsp_mailbox_shutdown()
555 mb->producer = false; in tegra_hsp_sm_xlate()
557 mb->producer = true; in tegra_hsp_sm_xlate()
/Linux-v5.10/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()
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()
1893 pdesc = &rds_ring->desc_head[producer]; in netxen_post_rx_buffers_nodb()
[all …]
Dnetxen_nic_main.c106 NXWRIO(adapter, tx_ring->crb_cmd_producer, tx_ring->producer); in netxen_nic_update_cmd_producer()
1246 tx_ring->producer = 0; in netxen_nic_attach()
1860 u32 producer; in netxen_tso_check() local
1927 producer = tx_ring->producer; in netxen_tso_check()
1934 hwdesc = &tx_ring->desc_head[producer]; in netxen_tso_check()
1935 tx_ring->cmd_buf_arr[producer].skb = NULL; in netxen_tso_check()
1950 producer = get_next_index(producer, tx_ring->num_desc); in netxen_tso_check()
1958 hwdesc = &tx_ring->desc_head[producer]; in netxen_tso_check()
1959 tx_ring->cmd_buf_arr[producer].skb = NULL; in netxen_tso_check()
1967 producer = get_next_index(producer, tx_ring->num_desc); in netxen_tso_check()
[all …]
Dnetxen_nic_hw.c553 u32 i, producer; in netxen_send_cmd_descs() local
565 producer = tx_ring->producer; in netxen_send_cmd_descs()
580 pbuf = &tx_ring->cmd_buf_arr[producer]; in netxen_send_cmd_descs()
584 memcpy(&tx_ring->desc_head[producer], in netxen_send_cmd_descs()
587 producer = get_next_index(producer, tx_ring->num_desc); in netxen_send_cmd_descs()
592 tx_ring->producer = producer; in netxen_send_cmd_descs()
/Linux-v5.10/drivers/vfio/pci/
Dvfio_pci_intrs.c302 irq_bypass_unregister_producer(&vdev->ctx[vector].producer); in vfio_msi_set_vector_signal()
352 vdev->ctx[vector].producer.token = trigger; in vfio_msi_set_vector_signal()
353 vdev->ctx[vector].producer.irq = irq; in vfio_msi_set_vector_signal()
354 ret = irq_bypass_register_producer(&vdev->ctx[vector].producer); in vfio_msi_set_vector_signal()
358 vdev->ctx[vector].producer.token, ret); in vfio_msi_set_vector_signal()
360 vdev->ctx[vector].producer.token = NULL; in vfio_msi_set_vector_signal()
/Linux-v5.10/drivers/vhost/
Dvdpa.c100 irq_bypass_unregister_producer(&vq->call_ctx.producer); in vhost_vdpa_setup_vq_irq()
104 vq->call_ctx.producer.token = vq->call_ctx.ctx; in vhost_vdpa_setup_vq_irq()
105 vq->call_ctx.producer.irq = irq; in vhost_vdpa_setup_vq_irq()
106 ret = irq_bypass_register_producer(&vq->call_ctx.producer); in vhost_vdpa_setup_vq_irq()
109 qid, vq->call_ctx.producer.token, ret); in vhost_vdpa_setup_vq_irq()
116 irq_bypass_unregister_producer(&vq->call_ctx.producer); in vhost_vdpa_unsetup_vq_irq()
912 if (vq->call_ctx.producer.irq) in vhost_vdpa_clean_irq()
913 irq_bypass_unregister_producer(&vq->call_ctx.producer); in vhost_vdpa_clean_irq()
/Linux-v5.10/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.10/Documentation/devicetree/bindings/mailbox/
Dnvidia,tegra186-hsp.txt47 as a producer (i.e. used to send data). If cleared, the mailbox is the
48 consumer of data sent by a producer.
/Linux-v5.10/tools/include/uapi/linux/
Dif_xdp.h44 __u64 producer; member
/Linux-v5.10/include/uapi/linux/
Dif_xdp.h44 __u64 producer; member
/Linux-v5.10/Documentation/driver-api/
Dsync_file.rst14 of attaching a fence to the buffer a producer driver (such as a GPU or V4L
21 producer part of the cycle.
/Linux-v5.10/Documentation/trace/
Dring-buffer-design.rst27 producer
31 - same as producer
70 producer/consumer mode.
72 Producer/consumer mode is where if the producer were to fill up the
73 buffer before the consumer could free up anything, the producer
76 Overwrite mode is where if the producer were to fill up the buffer
77 before the consumer could free up anything, the producer will
373 the head page will be pushed ahead one. If the buffer is in producer/consumer

123