Home
last modified time | relevance | path

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

12

/Linux-v5.4/virt/lib/
Dirqbypass.c84 int irq_bypass_register_producer(struct irq_bypass_producer *producer) in irq_bypass_register_producer() argument
89 if (!producer->token) in irq_bypass_register_producer()
100 if (tmp->token == producer->token) { in irq_bypass_register_producer()
108 if (consumer->token == producer->token) { in irq_bypass_register_producer()
109 int ret = __connect(producer, consumer); in irq_bypass_register_producer()
119 list_add(&producer->node, &producers); in irq_bypass_register_producer()
134 void irq_bypass_unregister_producer(struct irq_bypass_producer *producer) in irq_bypass_unregister_producer() argument
139 if (!producer->token) in irq_bypass_unregister_producer()
150 if (tmp->token != producer->token) in irq_bypass_unregister_producer()
154 if (consumer->token == producer->token) { in irq_bypass_unregister_producer()
[all …]
/Linux-v5.4/include/linux/
Dptr_ring.h30 int producer ____cacheline_aligned_in_smp;
50 return r->queue[r->producer]; in __ptr_ring_full()
105 if (unlikely(!r->size) || r->queue[r->producer]) in __ptr_ring_produce()
112 WRITE_ONCE(r->queue[r->producer++], ptr); in __ptr_ring_produce()
113 if (unlikely(r->producer >= r->size)) in __ptr_ring_produce()
114 r->producer = 0; in __ptr_ring_produce()
493 r->producer = r->consumer_head = r->consumer_tail = 0; in ptr_ring_init()
561 int producer = 0; in __ptr_ring_swap_queue() local
566 if (producer < size) in __ptr_ring_swap_queue()
567 queue[producer++] = ptr; in __ptr_ring_swap_queue()
[all …]
Dkvm_irqfd.h61 struct irq_bypass_producer *producer; member
/Linux-v5.4/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.4/drivers/net/ethernet/qlogic/qlcnic/
Dqlcnic_io.c277 u32 producer; in qlcnic_82xx_change_filter() local
280 producer = tx_ring->producer; in qlcnic_82xx_change_filter()
281 hwdesc = &tx_ring->desc_head[tx_ring->producer]; in qlcnic_82xx_change_filter()
297 tx_ring->producer = get_next_index(producer, tx_ring->num_desc); in qlcnic_82xx_change_filter()
377 u32 producer = tx_ring->producer; in qlcnic_tx_encap_pkt() local
407 hwdesc = &tx_ring->desc_head[producer]; in qlcnic_tx_encap_pkt()
408 tx_ring->cmd_buf_arr[producer].skb = NULL; in qlcnic_tx_encap_pkt()
413 producer = get_next_index(producer, tx_ring->num_desc); in qlcnic_tx_encap_pkt()
416 tx_ring->producer = producer; in qlcnic_tx_encap_pkt()
468 u32 producer = tx_ring->producer; in qlcnic_tx_pkt() local
[all …]
Dqlcnic_hw.c385 u32 i, producer; in qlcnic_send_cmd_descs() local
398 producer = tx_ring->producer; in qlcnic_send_cmd_descs()
416 pbuf = &tx_ring->cmd_buf_arr[producer]; in qlcnic_send_cmd_descs()
420 memcpy(&tx_ring->desc_head[producer], in qlcnic_send_cmd_descs()
423 producer = get_next_index(producer, tx_ring->num_desc); in qlcnic_send_cmd_descs()
428 tx_ring->producer = producer; in qlcnic_send_cmd_descs()
/Linux-v5.4/net/xdp/
Dxsk_queue.h17 u32 producer ____cacheline_aligned_in_smp;
102 q->prod_tail = READ_ONCE(q->ring->producer); in xskq_nb_avail()
109 static inline u32 xskq_nb_free(struct xsk_queue *q, u32 producer, u32 dcnt) in xskq_nb_free() argument
111 u32 free_entries = q->nentries - (producer - q->cons_tail); in xskq_nb_free()
118 return q->nentries - (producer - q->cons_tail); in xskq_nb_free()
129 q->prod_tail = READ_ONCE(q->ring->producer); in xskq_has_addrs()
234 WRITE_ONCE(q->ring->producer, q->prod_tail); in xskq_produce_addr()
257 WRITE_ONCE(q->ring->producer, q->prod_tail); in xskq_produce_flush_addr_n()
361 WRITE_ONCE(q->ring->producer, q->prod_tail); in xskq_produce_flush_desc()
Dxsk.h8 __u64 producer; member
/Linux-v5.4/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.4/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()
471 sched_setscheduler(producer, SCHED_FIFO, &param); in ring_buffer_benchmark_init()
473 set_user_nice(producer, producer_nice); in ring_buffer_benchmark_init()
488 kthread_stop(producer); in ring_buffer_benchmark_exit()
/Linux-v5.4/drivers/mailbox/
Dtegra-hsp.c71 bool producer; member
218 if (mb->producer) { in tegra_hsp_shared_irq()
244 if (!mb->producer) { in tegra_hsp_shared_irq()
373 if (WARN_ON(!mb->producer)) in tegra_hsp_mailbox_send_data()
437 if (mb->producer) in tegra_hsp_mailbox_startup()
447 if (mb->producer) in tegra_hsp_mailbox_startup()
466 if (mb->producer) in tegra_hsp_mailbox_shutdown()
476 if (mb->producer) in tegra_hsp_mailbox_shutdown()
548 mb->producer = false; in tegra_hsp_sm_xlate()
550 mb->producer = true; in tegra_hsp_sm_xlate()
/Linux-v5.4/tools/lib/bpf/
Dxsk.c210 fill->producer = map + off.fr.producer; in xsk_umem__create_v0_0_4()
227 comp->producer = map + off.cr.producer; in xsk_umem__create_v0_0_4()
572 rx->producer = rx_map + off.rx.producer; in xsk_socket__create()
591 tx->producer = tx_map + off.tx.producer; in xsk_socket__create()
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.4/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()
1864 u32 producer; in netxen_tso_check() local
1931 producer = tx_ring->producer; in netxen_tso_check()
1938 hwdesc = &tx_ring->desc_head[producer]; in netxen_tso_check()
1939 tx_ring->cmd_buf_arr[producer].skb = NULL; in netxen_tso_check()
1954 producer = get_next_index(producer, tx_ring->num_desc); in netxen_tso_check()
1962 hwdesc = &tx_ring->desc_head[producer]; in netxen_tso_check()
1963 tx_ring->cmd_buf_arr[producer].skb = NULL; in netxen_tso_check()
1971 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.4/Documentation/networking/
Daf_xdp.rst64 single-consumer / single-producer (for performance reasons), the new
116 The UMEM has two single-producer/single-consumer rings, that are used
124 TX. All rings are single-producer/single-consumer, so the user-space
133 The rings are head(producer)/tail(consumer) based rings. A producer
135 producer member, and increasing the producer index. A consumer reads
244 // __u32 *producer;
250 // __u32 *producer;
263 __u32 entries = *ring->producer - *ring->consumer;
277 u32 free_entries = RING_SIZE - (*ring->producer - *ring->consumer);
282 ring->desc[*ring->producer & (RING_SIZE - 1)] = *item;
[all …]
/Linux-v5.4/drivers/vfio/pci/
Dvfio_pci_intrs.c298 irq_bypass_unregister_producer(&vdev->ctx[vector].producer); in vfio_msi_set_vector_signal()
341 vdev->ctx[vector].producer.token = trigger; in vfio_msi_set_vector_signal()
342 vdev->ctx[vector].producer.irq = irq; in vfio_msi_set_vector_signal()
343 ret = irq_bypass_register_producer(&vdev->ctx[vector].producer); in vfio_msi_set_vector_signal()
347 vdev->ctx[vector].producer.token, ret); in vfio_msi_set_vector_signal()
Dvfio_pci_private.h48 struct irq_bypass_producer producer; member
/Linux-v5.4/tools/include/uapi/linux/
Dif_xdp.h44 __u64 producer; member
/Linux-v5.4/include/uapi/linux/
Dif_xdp.h44 __u64 producer; member
/Linux-v5.4/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.4/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.4/Documentation/trace/
Dring-buffer-design.txt21 producer - the task that writes into the ring buffer (same as writer)
23 writer - same as producer
53 producer/consumer mode.
55 Producer/consumer mode is where if the producer were to fill up the
56 buffer before the consumer could free up anything, the producer
59 Overwrite mode is where if the producer were to fill up the buffer
60 before the consumer could free up anything, the producer will
347 the head page will be pushed ahead one. If the buffer is in producer/consumer
/Linux-v5.4/Documentation/devicetree/bindings/iio/adc/
Dat91-sama5d2_adc.txt28 - Consumer drivers can be connected to this producer device, as specified

12