Home
last modified time | relevance | path

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

12

/Linux-v4.19/virt/lib/
Dirqbypass.c87 int irq_bypass_register_producer(struct irq_bypass_producer *producer) in irq_bypass_register_producer() argument
92 if (!producer->token) in irq_bypass_register_producer()
103 if (tmp->token == producer->token) { in irq_bypass_register_producer()
111 if (consumer->token == producer->token) { in irq_bypass_register_producer()
112 int ret = __connect(producer, consumer); in irq_bypass_register_producer()
122 list_add(&producer->node, &producers); in irq_bypass_register_producer()
137 void irq_bypass_unregister_producer(struct irq_bypass_producer *producer) in irq_bypass_unregister_producer() argument
142 if (!producer->token) in irq_bypass_unregister_producer()
153 if (tmp->token != producer->token) in irq_bypass_unregister_producer()
157 if (consumer->token == producer->token) { in irq_bypass_unregister_producer()
[all …]
/Linux-v4.19/net/xdp/
Dxsk_queue.h17 u32 producer ____cacheline_aligned_in_smp;
58 q->prod_tail = READ_ONCE(q->ring->producer); in xskq_nb_avail()
65 static inline u32 xskq_nb_free(struct xsk_queue *q, u32 producer, u32 dcnt) in xskq_nb_free() argument
67 u32 free_entries = q->nentries - (producer - q->cons_tail); in xskq_nb_free()
74 return q->nentries - (producer - q->cons_tail); in xskq_nb_free()
135 WRITE_ONCE(q->ring->producer, q->prod_tail); in xskq_produce_addr()
157 WRITE_ONCE(q->ring->producer, q->prod_tail); in xskq_produce_flush_addr_n()
243 WRITE_ONCE(q->ring->producer, q->prod_tail); in xskq_produce_flush_desc()
Dxsk.c609 off.rx.producer = offsetof(struct xdp_rxtx_ring, ptrs.producer); in xsk_getsockopt()
612 off.tx.producer = offsetof(struct xdp_rxtx_ring, ptrs.producer); in xsk_getsockopt()
616 off.fr.producer = offsetof(struct xdp_umem_ring, ptrs.producer); in xsk_getsockopt()
619 off.cr.producer = offsetof(struct xdp_umem_ring, ptrs.producer); in xsk_getsockopt()
/Linux-v4.19/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()
Dqlcnic.h581 u32 producer; member
623 u32 producer; member
1728 if (likely(tx_ring->producer < tx_ring->sw_consumer)) in qlcnic_tx_avail()
1729 return tx_ring->sw_consumer - tx_ring->producer; in qlcnic_tx_avail()
1732 tx_ring->producer; in qlcnic_tx_avail()
/Linux-v4.19/include/linux/
Dptr_ring.h35 int producer ____cacheline_aligned_in_smp;
55 return r->queue[r->producer]; in __ptr_ring_full()
110 if (unlikely(!r->size) || r->queue[r->producer]) in __ptr_ring_produce()
117 WRITE_ONCE(r->queue[r->producer++], ptr); in __ptr_ring_produce()
118 if (unlikely(r->producer >= r->size)) in __ptr_ring_produce()
119 r->producer = 0; in __ptr_ring_produce()
498 r->producer = r->consumer_head = r->consumer_tail = 0; in ptr_ring_init()
566 int producer = 0; in __ptr_ring_swap_queue() local
571 if (producer < size) in __ptr_ring_swap_queue()
572 queue[producer++] = ptr; in __ptr_ring_swap_queue()
[all …]
Dkvm_irqfd.h68 struct irq_bypass_producer *producer; member
/Linux-v4.19/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-v4.19/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-v4.19/samples/bpf/
Dxdpsock_user.c85 u32 *producer; member
103 u32 *producer; member
194 q->cached_prod = *q->producer; in umem_nb_avail()
206 q->cached_prod = *q->producer; in xq_nb_avail()
230 *fq->producer = fq->cached_prod; in umem_fill_to_kernel_ex()
251 *fq->producer = fq->cached_prod; in umem_fill_to_kernel()
301 *uq->producer = uq->cached_prod; in xq_enq()
323 *uq->producer = uq->cached_prod; in xq_enq_tx_only()
445 umem->fq.producer = umem->fq.map + off.fr.producer; in xdp_umem_configure()
459 umem->cq.producer = umem->cq.map + off.cr.producer; in xdp_umem_configure()
[all …]
/Linux-v4.19/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
228 // __u32 *producer;
234 // __u32 *producer;
247 __u32 entries = *ring->producer - *ring->consumer;
261 u32 free_entries = RING_SIZE - (*ring->producer - *ring->consumer);
266 ring->desc[*ring->producer & (RING_SIZE - 1)] = *item;
[all …]
/Linux-v4.19/drivers/net/ethernet/qlogic/netxen/
Dnetxen_nic_init.c1828 int producer, count = 0; in netxen_post_rx_buffers() local
1832 producer = rds_ring->producer; in netxen_post_rx_buffers()
1848 pdesc = &rds_ring->desc_head[producer]; in netxen_post_rx_buffers()
1853 producer = get_next_index(producer, rds_ring->num_desc); in netxen_post_rx_buffers()
1857 rds_ring->producer = producer; in netxen_post_rx_buffers()
1859 (producer-1) & (rds_ring->num_desc-1)); in netxen_post_rx_buffers()
1870 ((producer - 1) & in netxen_post_rx_buffers()
1886 int producer, count = 0; in netxen_post_rx_buffers_nodb() local
1892 producer = rds_ring->producer; in netxen_post_rx_buffers_nodb()
1908 pdesc = &rds_ring->desc_head[producer]; in netxen_post_rx_buffers_nodb()
[all …]
Dnetxen_nic_main.c122 NXWRIO(adapter, tx_ring->crb_cmd_producer, tx_ring->producer); in netxen_nic_update_cmd_producer()
1262 tx_ring->producer = 0; in netxen_nic_attach()
1885 u32 producer; in netxen_tso_check() local
1952 producer = tx_ring->producer; in netxen_tso_check()
1959 hwdesc = &tx_ring->desc_head[producer]; in netxen_tso_check()
1960 tx_ring->cmd_buf_arr[producer].skb = NULL; in netxen_tso_check()
1975 producer = get_next_index(producer, tx_ring->num_desc); in netxen_tso_check()
1983 hwdesc = &tx_ring->desc_head[producer]; in netxen_tso_check()
1984 tx_ring->cmd_buf_arr[producer].skb = NULL; in netxen_tso_check()
1992 producer = get_next_index(producer, tx_ring->num_desc); in netxen_tso_check()
[all …]
Dnetxen_nic_hw.c569 u32 i, producer; in netxen_send_cmd_descs() local
581 producer = tx_ring->producer; in netxen_send_cmd_descs()
596 pbuf = &tx_ring->cmd_buf_arr[producer]; in netxen_send_cmd_descs()
600 memcpy(&tx_ring->desc_head[producer], in netxen_send_cmd_descs()
603 producer = get_next_index(producer, tx_ring->num_desc); in netxen_send_cmd_descs()
608 tx_ring->producer = producer; in netxen_send_cmd_descs()
Dnetxen_nic.h626 u32 producer; member
657 u32 producer; member
1877 return find_diff_among(tx_ring->producer, in netxen_tx_avail()
/Linux-v4.19/drivers/vfio/pci/
Dvfio_pci_intrs.c301 irq_bypass_unregister_producer(&vdev->ctx[vector].producer); in vfio_msi_set_vector_signal()
344 vdev->ctx[vector].producer.token = trigger; in vfio_msi_set_vector_signal()
345 vdev->ctx[vector].producer.irq = irq; in vfio_msi_set_vector_signal()
346 ret = irq_bypass_register_producer(&vdev->ctx[vector].producer); in vfio_msi_set_vector_signal()
350 vdev->ctx[vector].producer.token, ret); in vfio_msi_set_vector_signal()
Dvfio_pci_private.h51 struct irq_bypass_producer producer; member
/Linux-v4.19/include/uapi/linux/
Dif_xdp.h29 __u64 producer; member
/Linux-v4.19/Documentation/
Dsync_file.txt14 of attaching a fence to the buffer a producer driver (such as a GPU or V4L
21 producer part of the cycle.
/Linux-v4.19/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-v4.19/Documentation/devicetree/bindings/iio/adc/
Dat91-sama5d2_adc.txt28 - Consumer drivers can be connected to this producer device, as specified
/Linux-v4.19/drivers/scsi/aacraid/
Dcomminit.c282 q->headers.producer = (__le32 *)mem; in aac_queue_init()
284 *(q->headers.producer) = cpu_to_le32(qsize); in aac_queue_init()
/Linux-v4.19/virt/kvm/
Deventfd.c618 if (irqfd->producer) { in kvm_irq_routing_update()
620 irqfd->kvm, irqfd->producer->irq, in kvm_irq_routing_update()
/Linux-v4.19/drivers/scsi/megaraid/
Dmegaraid_sas_base.c2127 u32 producer; in megasas_complete_cmd_dpc() local
2141 producer = le32_to_cpu(*instance->producer); in megasas_complete_cmd_dpc()
2144 while (consumer != producer) { in megasas_complete_cmd_dpc()
2162 *instance->consumer = cpu_to_le32(producer); in megasas_complete_cmd_dpc()
3630 *instance->consumer = *instance->producer; in process_fw_state_change_wq()
3633 *instance->producer = 0; in process_fw_state_change_wq()
6137 instance->producer = pci_alloc_consistent(instance->pdev, sizeof(u32), in megasas_alloc_mfi_ctrl_mem()
6142 if (!instance->producer || !instance->consumer) { in megasas_alloc_mfi_ctrl_mem()
6148 *instance->producer = 0; in megasas_alloc_mfi_ctrl_mem()
6201 if (instance->producer) in megasas_free_ctrl_mem()
[all …]

12