/Linux-v4.19/virt/lib/ |
D | irqbypass.c | 87 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/ |
D | xsk_queue.h | 17 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()
|
D | xsk.c | 609 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/ |
D | qlcnic_io.c | 277 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 …]
|
D | qlcnic_hw.c | 385 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()
|
D | qlcnic.h | 581 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/ |
D | ptr_ring.h | 35 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 …]
|
D | kvm_irqfd.h | 68 struct irq_bypass_producer *producer; member
|
/Linux-v4.19/Documentation/core-api/ |
D | circular-buffers.rst | 15 (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/ |
D | ring_buffer_benchmark.c | 33 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, ¶m); 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/ |
D | xdpsock_user.c | 85 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/ |
D | af_xdp.rst | 64 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/ |
D | netxen_nic_init.c | 1828 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 …]
|
D | netxen_nic_main.c | 122 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 …]
|
D | netxen_nic_hw.c | 569 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()
|
D | netxen_nic.h | 626 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/ |
D | vfio_pci_intrs.c | 301 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()
|
D | vfio_pci_private.h | 51 struct irq_bypass_producer producer; member
|
/Linux-v4.19/include/uapi/linux/ |
D | if_xdp.h | 29 __u64 producer; member
|
/Linux-v4.19/Documentation/ |
D | sync_file.txt | 14 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/ |
D | ring-buffer-design.txt | 21 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/ |
D | at91-sama5d2_adc.txt | 28 - Consumer drivers can be connected to this producer device, as specified
|
/Linux-v4.19/drivers/scsi/aacraid/ |
D | comminit.c | 282 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/ |
D | eventfd.c | 618 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/ |
D | megaraid_sas_base.c | 2127 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 …]
|