| /linux/virt/lib/ |
| A D | irqbypass.c | 90 if (!producer->token) in irq_bypass_register_producer() 101 if (tmp->token == producer->token) { in irq_bypass_register_producer() 109 ret = __connect(producer, consumer); in irq_bypass_register_producer() 116 list_add(&producer->node, &producers); in irq_bypass_register_producer() 140 if (!producer->token) in irq_bypass_unregister_producer() 151 if (tmp->token != producer->token) in irq_bypass_unregister_producer() 156 __disconnect(producer, consumer); in irq_bypass_unregister_producer() 161 list_del(&producer->node); in irq_bypass_unregister_producer() 182 struct irq_bypass_producer *producer; in irq_bypass_register_consumer() local 234 struct irq_bypass_producer *producer; in irq_bypass_unregister_consumer() local [all …]
|
| /linux/tools/testing/selftests/bpf/benchs/ |
| A D | bench_rename.c | 26 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,
|
| A D | bench_bloom_filter_map.c | 117 static void *producer(void *input) in producer() function 428 .producer_thread = producer, 439 .producer_thread = producer, 450 .producer_thread = producer, 461 .producer_thread = producer, 472 .producer_thread = producer,
|
| /linux/include/linux/ |
| A D | ptr_ring.h | 31 int producer ____cacheline_aligned_in_smp; 51 return r->queue[r->producer]; in __ptr_ring_full() 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() 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() 572 if (producer >= size) in __ptr_ring_swap_queue() 573 producer = 0; in __ptr_ring_swap_queue() [all …]
|
| A D | kvm_irqfd.h | 61 struct irq_bypass_producer *producer; member
|
| /linux/drivers/net/ethernet/qlogic/qlcnic/ |
| A D | qlcnic_io.c | 279 producer = tx_ring->producer; in qlcnic_82xx_change_filter() 376 u32 producer = tx_ring->producer; in qlcnic_tx_encap_pkt() local 415 tx_ring->producer = producer; in qlcnic_tx_encap_pkt() 467 u32 producer = tx_ring->producer; in qlcnic_tx_pkt() local 551 tx_ring->producer = producer; in qlcnic_tx_pkt() 701 producer = tx_ring->producer; in qlcnic_xmit_frame() 724 producer = get_next_index(producer, num_txd); in qlcnic_xmit_frame() 856 producer = rds_ring->producer; in qlcnic_post_rx_buffers_nodb() 878 rds_ring->producer = producer; in qlcnic_post_rx_buffers_nodb() 1446 producer = rds_ring->producer; in qlcnic_post_rx_buffers() [all …]
|
| A D | qlcnic_hw.c | 384 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/Documentation/core-api/ |
| A 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 123 producer may still be filling the buffer on another CPU and moving the 130 producer and consumer become visible cannot be guaranteed as they are 145 There are two sides to this: the producer that fills the buffer, and the 151 The producer 154 The producer will look something like this:: [all …]
|
| /linux/Documentation/devicetree/bindings/net/ |
| A D | mdio-mux-multiplexer.yaml | 14 of a mux producer device. The mux producer can be of any type like mmio mux 15 producer, gpio mux producer or generic register based mux producer.
|
| /linux/kernel/trace/ |
| A 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() 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/net/xdp/ |
| A D | xsk_queue.h | 17 u32 producer ____cacheline_aligned_in_smp; 242 q->cached_prod = smp_load_acquire(&q->ring->producer); /* C, matches B */ in __xskq_cons_peek() 310 return READ_ONCE(q->ring->producer) - READ_ONCE(q->ring->consumer) == in xskq_cons_is_full() 317 return READ_ONCE(q->ring->producer) - READ_ONCE(q->ring->consumer); in xskq_cons_present_entries() 404 smp_store_release(&q->ring->producer, idx); /* B, matches C */ in __xskq_prod_submit() 415 u32 idx = q->ring->producer; in xskq_prod_submit_addr() 424 __xskq_prod_submit(q, q->ring->producer + nb_entries); in xskq_prod_submit_n() 430 return READ_ONCE(q->ring->consumer) == READ_ONCE(q->ring->producer); in xskq_prod_is_empty()
|
| A D | xsk.h | 15 __u64 producer; member
|
| /linux/tools/lib/bpf/ |
| A D | xsk.c | 99 __u64 producer; member 182 off->rx.producer = off_v1.rx.producer; in xsk_mmap_offsets_v1() 187 off->tx.producer = off_v1.tx.producer; in xsk_mmap_offsets_v1() 192 off->fr.producer = off_v1.fr.producer; in xsk_mmap_offsets_v1() 197 off->cr.producer = off_v1.cr.producer; in xsk_mmap_offsets_v1() 256 fill->producer = map + off.fr.producer; in xsk_create_umem_rings() 272 comp->producer = map + off.cr.producer; in xsk_create_umem_rings() 1118 rx->producer = rx_map + off.rx.producer; in xsk_socket__create_shared() 1122 rx->cached_prod = *rx->producer; in xsk_socket__create_shared() 1139 tx->producer = tx_map + off.tx.producer; in xsk_socket__create_shared() [all …]
|
| A D | xsk.h | 104 __u32 *producer; \ 182 r->cached_prod = libbpf_smp_load_acquire(r->producer); in xsk_cons_nb_avail() 205 libbpf_smp_store_release(prod->producer, *prod->producer + nb); in xsk_ring_prod__submit()
|
| /linux/drivers/mailbox/ |
| A D | tegra-hsp.c | 73 bool producer; member 222 if (mb->producer) { in tegra_hsp_shared_irq() 248 if (!mb->producer) { in tegra_hsp_shared_irq() 382 if (WARN_ON(!mb->producer)) in tegra_hsp_mailbox_send_data() 446 if (mb->producer) in tegra_hsp_mailbox_startup() 456 if (mb->producer) in tegra_hsp_mailbox_startup() 475 if (mb->producer) in tegra_hsp_mailbox_shutdown() 485 if (mb->producer) in tegra_hsp_mailbox_shutdown() 557 mb->producer = false; in tegra_hsp_sm_xlate() 559 mb->producer = true; in tegra_hsp_sm_xlate()
|
| /linux/drivers/net/ethernet/qlogic/netxen/ |
| A 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() 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() 1898 producer = get_next_index(producer, rds_ring->num_desc); in netxen_post_rx_buffers_nodb() [all …]
|
| A D | netxen_nic_main.c | 1243 tx_ring->producer = 0; in netxen_nic_attach() 1859 u32 producer; in netxen_tso_check() local 1926 producer = tx_ring->producer; in netxen_tso_check() 1949 producer = get_next_index(producer, tx_ring->num_desc); in netxen_tso_check() 1966 producer = get_next_index(producer, tx_ring->num_desc); in netxen_tso_check() 1969 tx_ring->producer = producer; in netxen_tso_check() 2043 u32 producer; in netxen_nic_xmit_frame() local 2074 producer = tx_ring->producer; in netxen_nic_xmit_frame() 2075 pbuf = &tx_ring->cmd_buf_arr[producer]; in netxen_nic_xmit_frame() 2097 producer = get_next_index(producer, num_txd); in netxen_nic_xmit_frame() [all …]
|
| /linux/drivers/vfio/pci/ |
| A D | vfio_pci_intrs.c | 302 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/Documentation/networking/ |
| A D | af_xdp.rst | 64 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 355 space is a producer. When this option is set in the bind call, the 486 // __u32 *producer; 492 // __u32 *producer; 505 __u32 entries = *ring->producer - *ring->consumer; 524 ring->desc[*ring->producer & (RING_SIZE - 1)] = *item; [all …]
|
| /linux/Documentation/devicetree/bindings/mailbox/ |
| A 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/tools/include/uapi/linux/ |
| A D | if_xdp.h | 44 __u64 producer; member
|
| /linux/include/uapi/linux/ |
| A D | if_xdp.h | 44 __u64 producer; member
|
| /linux/drivers/vhost/ |
| A D | vdpa.c | 100 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()
|
| /linux/Documentation/driver-api/ |
| A 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/tools/testing/selftests/net/af_unix/ |
| A D | test_unix_oob.c | 116 void producer(struct sockaddr_un *consumer_addr) in producer() function 206 producer(&consumer_addr); in main()
|