/Linux-v6.1/virt/lib/ |
D | irqbypass.c | 84 int irq_bypass_register_producer(struct irq_bypass_producer *producer) in irq_bypass_register_producer() argument 90 if (!producer->token) in irq_bypass_register_producer() 101 if (tmp->token == producer->token) { in irq_bypass_register_producer() 108 if (consumer->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() 135 void irq_bypass_unregister_producer(struct irq_bypass_producer *producer) in irq_bypass_unregister_producer() argument 140 if (!producer->token) in irq_bypass_unregister_producer() 151 if (tmp->token != producer->token) in irq_bypass_unregister_producer() 155 if (consumer->token == producer->token) { in irq_bypass_unregister_producer() [all …]
|
/Linux-v6.1/tools/testing/selftests/bpf/benchs/ |
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,
|
D | bench_bloom_filter_map.c | 122 static void *producer(void *input) in producer() function 433 .producer_thread = producer, 444 .producer_thread = producer, 455 .producer_thread = producer, 466 .producer_thread = producer, 477 .producer_thread = producer,
|
D | bench_local_storage.c | 238 static void *producer(void *input) in producer() function 260 .producer_thread = producer, 271 .producer_thread = producer, 282 .producer_thread = producer,
|
D | bench_bpf_loop.c | 56 static void *producer(void *input) in producer() function 100 .producer_thread = producer,
|
D | bench_bpf_hashmap_full_update.c | 24 static void *producer(void *input) in producer() function 91 .producer_thread = producer,
|
D | bench_local_storage_rcu_tasks_trace.c | 218 static void *producer(void *input) in producer() function 276 .producer_thread = producer,
|
/Linux-v6.1/include/linux/ |
D | ptr_ring.h | 31 int producer ____cacheline_aligned_in_smp; 51 return r->queue[r->producer]; in __ptr_ring_full() 106 if (unlikely(!r->size) || r->queue[r->producer]) in __ptr_ring_produce() 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() 494 r->producer = r->consumer_head = r->consumer_tail = 0; in ptr_ring_init() 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() [all …]
|
D | kvm_irqfd.h | 61 struct irq_bypass_producer *producer; member
|
/Linux-v6.1/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 | 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-v6.1/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() 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-v6.1/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-v6.1/net/xdp/ |
D | xsk_queue.h | 17 u32 producer ____cacheline_aligned_in_smp; 249 q->cached_prod = smp_load_acquire(&q->ring->producer); /* C, matches B */ in __xskq_cons_peek() 304 return READ_ONCE(q->ring->producer) - READ_ONCE(q->ring->consumer); in xskq_cons_present_entries() 387 smp_store_release(&q->ring->producer, idx); /* B, matches C */ in __xskq_prod_submit() 398 u32 idx = q->ring->producer; in xskq_prod_submit_addr() 407 __xskq_prod_submit(q, q->ring->producer + nb_entries); in xskq_prod_submit_n() 413 return READ_ONCE(q->ring->consumer) == READ_ONCE(q->ring->producer); in xskq_prod_is_empty()
|
D | xsk.h | 15 __u64 producer; member
|
/Linux-v6.1/tools/testing/selftests/bpf/ |
D | xsk.c | 100 __u64 producer; member 183 off->rx.producer = off_v1.rx.producer; in xsk_mmap_offsets_v1() 188 off->tx.producer = off_v1.tx.producer; in xsk_mmap_offsets_v1() 193 off->fr.producer = off_v1.fr.producer; in xsk_mmap_offsets_v1() 198 off->cr.producer = off_v1.cr.producer; in xsk_mmap_offsets_v1() 257 fill->producer = map + off.fr.producer; in xsk_create_umem_rings() 273 comp->producer = map + off.cr.producer; in xsk_create_umem_rings() 1110 rx->producer = rx_map + off.rx.producer; in xsk_socket__create_shared() 1114 rx->cached_prod = *rx->producer; in xsk_socket__create_shared() 1131 tx->producer = tx_map + off.tx.producer; in xsk_socket__create_shared() [all …]
|
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-v6.1/drivers/mailbox/ |
D | tegra-hsp.c | 87 bool producer; member 236 if (mb->producer) { in tegra_hsp_shared_irq() 262 if (!mb->producer) in tegra_hsp_shared_irq() 459 if (WARN_ON(!mb->producer)) in tegra_hsp_mailbox_send_data() 524 if (mb->producer) in tegra_hsp_mailbox_startup() 534 if (mb->producer) in tegra_hsp_mailbox_startup() 553 if (mb->producer) in tegra_hsp_mailbox_shutdown() 563 if (mb->producer) in tegra_hsp_mailbox_shutdown() 644 mb->producer = false; in tegra_hsp_sm_xlate() 646 mb->producer = true; in tegra_hsp_sm_xlate()
|
/Linux-v6.1/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() 1242 tx_ring->producer = 0; in netxen_nic_attach() 1858 u32 producer; in netxen_tso_check() local 1925 producer = tx_ring->producer; in netxen_tso_check() 1932 hwdesc = &tx_ring->desc_head[producer]; in netxen_tso_check() 1933 tx_ring->cmd_buf_arr[producer].skb = NULL; in netxen_tso_check() 1948 producer = get_next_index(producer, tx_ring->num_desc); in netxen_tso_check() 1956 hwdesc = &tx_ring->desc_head[producer]; in netxen_tso_check() 1957 tx_ring->cmd_buf_arr[producer].skb = NULL; in netxen_tso_check() 1965 producer = get_next_index(producer, tx_ring->num_desc); in netxen_tso_check() [all …]
|
/Linux-v6.1/drivers/vfio/pci/ |
D | vfio_pci_intrs.c | 31 struct irq_bypass_producer producer; member 332 irq_bypass_unregister_producer(&vdev->ctx[vector].producer); in vfio_msi_set_vector_signal() 382 vdev->ctx[vector].producer.token = trigger; in vfio_msi_set_vector_signal() 383 vdev->ctx[vector].producer.irq = irq; in vfio_msi_set_vector_signal() 384 ret = irq_bypass_register_producer(&vdev->ctx[vector].producer); in vfio_msi_set_vector_signal() 388 vdev->ctx[vector].producer.token, ret); in vfio_msi_set_vector_signal() 390 vdev->ctx[vector].producer.token = NULL; in vfio_msi_set_vector_signal()
|
/Linux-v6.1/Documentation/networking/ |
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 309 rings, and they are single producer, single consumer rings, you need 355 space is a producer. When this option is set in the bind call, the 405 be used. Note, that the rings are single-producer single-consumer, so 486 // __u32 *producer; 492 // __u32 *producer; [all …]
|
/Linux-v6.1/tools/include/uapi/linux/ |
D | if_xdp.h | 44 __u64 producer; member
|
/Linux-v6.1/include/uapi/linux/ |
D | if_xdp.h | 44 __u64 producer; member
|
/Linux-v6.1/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.
|