| /Linux-v5.4/virt/lib/ |
| D | irqbypass.c | 84 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/ |
| D | ptr_ring.h | 30 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 …]
|
| D | kvm_irqfd.h | 61 struct irq_bypass_producer *producer; member
|
| /Linux-v5.4/Documentation/devicetree/bindings/net/ |
| D | mdio-mux-multiplexer.txt | 4 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/ |
| 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()
|
| /Linux-v5.4/net/xdp/ |
| D | xsk_queue.h | 17 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()
|
| D | xsk.h | 8 __u64 producer; member
|
| /Linux-v5.4/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-v5.4/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-v5.4/drivers/mailbox/ |
| D | tegra-hsp.c | 71 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/ |
| D | xsk.c | 210 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()
|
| D | xsk.h | 32 __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/ |
| D | netxen_nic_init.c | 1813 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 …]
|
| D | netxen_nic_main.c | 106 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 …]
|
| D | netxen_nic_hw.c | 553 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/ |
| 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 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/ |
| D | vfio_pci_intrs.c | 298 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()
|
| D | vfio_pci_private.h | 48 struct irq_bypass_producer producer; member
|
| /Linux-v5.4/tools/include/uapi/linux/ |
| D | if_xdp.h | 44 __u64 producer; member
|
| /Linux-v5.4/include/uapi/linux/ |
| D | if_xdp.h | 44 __u64 producer; member
|
| /Linux-v5.4/Documentation/devicetree/bindings/mailbox/ |
| D | nvidia,tegra186-hsp.txt | 47 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/ |
| D | sync_file.rst | 14 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/ |
| 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-v5.4/Documentation/devicetree/bindings/iio/adc/ |
| D | at91-sama5d2_adc.txt | 28 - Consumer drivers can be connected to this producer device, as specified
|