Home
last modified time | relevance | path

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

123

/linux/virt/lib/
H A Dirqbypass.c56 cons->producer = prod; in __connect()
81 cons->producer = NULL; in __disconnect()
85 * irq_bypass_register_producer - register IRQ bypass producer
86 * @producer: pointer to producer structure
87 * @eventfd: pointer to the eventfd context associated with the producer
88 * @irq: Linux IRQ number of the underlying producer device
90 * Add the provided IRQ producer to the set of producers and connect with the
93 int irq_bypass_register_producer(struct irq_bypass_producer *producer, in irq_bypass_register_producer() argument
100 if (WARN_ON_ONCE(producer in irq_bypass_register_producer()
133 irq_bypass_unregister_producer(struct irq_bypass_producer * producer) irq_bypass_unregister_producer() argument
162 struct irq_bypass_producer *producer; irq_bypass_register_consumer() local
[all...]
/linux/tools/testing/selftests/bpf/benchs/
H A Dbench_rename.c17 fprintf(stderr, "benchmark doesn't support multi-producer!\n"); in validate()
26 static void *producer(void *input) in producer() function
113 .producer_thread = producer,
123 .producer_thread = producer,
133 .producer_thread = producer,
143 .producer_thread = producer,
153 .producer_thread = producer,
163 .producer_thread = producer,
H A Dbench_bloom_filter_map.c122 static void *producer(void *input) in producer() function
429 .producer_thread = producer,
440 .producer_thread = producer,
451 .producer_thread = producer,
462 .producer_thread = producer,
473 .producer_thread = producer,
H A Dbench_local_storage.c74 fprintf(stderr, "benchmark doesn't support multi-producer!\n"); in validate()
233 static void *producer(void *input) in producer() function
256 .producer_thread = producer,
267 .producer_thread = producer,
278 .producer_thread = producer,
H A Dbench_bpf_loop.c56 static void *producer(void *input) in producer() function
96 .producer_thread = producer,
H A Dbench_bpf_hashmap_full_update.c23 static void *producer(void *input) in producer() function
85 .producer_thread = producer,
H A Dbench_local_storage_rcu_tasks_trace.c72 fprintf(stderr, "benchmark doesn't support multi-producer!\n"); in validate()
200 static void *producer(void *input) in producer() function
259 .producer_thread = producer,
H A Dbench_local_storage_create.c196 static void *producer(void *input) in producer() function
254 .producer_thread = producer,
H A Dbench_bpf_hashmap_lookup.c128 static void *producer(void *input) in producer() function
273 .producer_thread = producer,
/linux/include/linux/
H A Dptr_ring.h14 * single producer and a single consumer CPU.
31 int producer ____cacheline_aligned_in_smp;
36 /* Shared consumer/producer data */
37 /* Read-only by both the producer and the consumer */
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()
120 * Note: resize (below) nests producer loc
563 int producer = 0; __ptr_ring_swap_queue() local
[all...]
H A Dirqbypass.h23 * When a producer and consumer are paired, i.e. an eventfd match is found, the
28 * the @add_* callbacks. eventfds must be unique per producer/consumer, 1:N
35 * struct irq_bypass_producer - IRQ bypass producer definition
38 * @irq: Linux IRQ number for the producer device
39 * @add_consumer: Connect the IRQ producer to an IRQ consumer (optional)
40 * @del_consumer: Disconnect the IRQ producer from an IRQ consumer (optional)
44 * The IRQ bypass producer structure represents an interrupt source for
63 * @producer: The connected producer (NULL if no connection)
64 * @add_producer: Connect the IRQ consumer to an IRQ producer
76 struct irq_bypass_producer *producer; global() member
[all...]
H A Dkvm_irqfd.h60 struct irq_bypass_producer *producer; member
/linux/drivers/net/ethernet/qlogic/qlcnic/
H A 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] in qlcnic_tx_encap_pkt()
467 u32 producer = tx_ring->producer; qlcnic_tx_pkt() local
658 u32 producer, num_txd; qlcnic_xmit_frame() local
850 uint32_t producer, handle; qlcnic_post_rx_buffers_nodb() local
1443 u32 producer, handle; qlcnic_post_rx_buffers() local
[all...]
/linux/kernel/trace/
H A Dring_buffer_benchmark.c33 static struct task_struct *producer; variable
39 MODULE_PARM_DESC(disable_reader, "only run producer");
52 MODULE_PARM_DESC(producer_nice, "nice prio for producer");
58 MODULE_PARM_DESC(producer_fifo, "use fifo for producer: 0 - disabled, 1 - low prio, 2 - fifo");
191 * Continue running until the producer specifically asks to stop in ring_buffer_consumer()
218 /* Wait till the producer wakes us up when there is more data in ring_buffer_consumer()
219 * available or when the producer wants us to finish reading. in ring_buffer_consumer()
449 producer = kthread_run(ring_buffer_producer_thread, in ring_buffer_benchmark_init()
451 ret = PTR_ERR(producer); in ring_buffer_benchmark_init()
453 if (IS_ERR(producer)) in ring_buffer_benchmark_init()
[all...]
/linux/Documentation/core-api/
H A 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 i
[all...]
/linux/net/xdp/
H A Dxsk_queue.h17 u32 producer ____cacheline_aligned_in_smp;
19 * pointer if the producer pointer is touched and vice versa.
59 * completion ring, the kernel is the producer and user space is the
61 * user space is the producer.
63 * producer consumer
65 * if (LOAD ->consumer) { (A) LOAD.acq ->producer (C)
67 * STORE.rel ->producer (B) STORE.rel ->consumer (D)
73 * the producer pointer. If this barrier was missing, the consumer
74 * could observe the producer pointer being set and thus load the data
75 * before the producer ha
[all...]
H A Dxsk.h15 __u64 producer; member
/linux/tools/testing/selftests/bpf/
H A Dxsk.h33 __u32 *producer; \
111 r->cached_prod = __atomic_load_n(r->producer, __ATOMIC_ACQUIRE); in xsk_cons_nb_avail()
132 * this to the kernel by writing the producer pointer. in xsk_ring_prod__submit()
134 __atomic_store_n(prod->producer, *prod->producer + nb, __ATOMIC_RELEASE); in xsk_ring_prod__submit()
H A Dxsk.c195 fill->producer = map + off.fr.producer; in xsk_create_umem_rings()
211 comp->producer = map + off.cr.producer; in xsk_create_umem_rings()
636 rx->producer = rx_map + off.rx.producer; in xsk_socket__create_shared()
640 rx->cached_prod = *rx->producer; in xsk_socket__create_shared()
657 tx->producer = tx_map + off.tx.producer; in xsk_socket__create_shared()
661 tx->cached_prod = *tx->producer; in xsk_socket__create_shared()
[all...]
/linux/drivers/mailbox/
H A Dtegra-hsp.c80 bool producer; member
244 if (mb->producer) { in tegra_hsp_shared_irq()
270 if (!mb->producer) in tegra_hsp_shared_irq()
469 if (WARN_ON(!mb->producer)) in tegra_hsp_mailbox_send_data()
534 if (mb->producer) in tegra_hsp_mailbox_startup()
544 if (mb->producer) in tegra_hsp_mailbox_startup()
563 if (mb->producer) in tegra_hsp_mailbox_shutdown()
573 if (mb->producer) in tegra_hsp_mailbox_shutdown()
654 mb->producer = false; in tegra_hsp_sm_xlate()
656 mb->producer in tegra_hsp_sm_xlate()
[all...]
/linux/Documentation/gpu/amdgpu/gc/
H A Dindex.rst8 producer-consumer problem, where the CPU fills out a buffer with operations
9 (producer) to be executed by the GPU (consumer). The requested operations in
/linux/arch/x86/kvm/
H A Dirq.c514 unsigned int host_irq = irqfd->producer->irq; in kvm_pi_update_irte()
569 irqfd->producer = prod; in kvm_arch_irq_bypass_add_producer()
592 WARN_ON(irqfd->producer != prod); in kvm_arch_irq_bypass_del_producer()
595 * If the producer of an IRQ that is currently being posted to a vCPU in kvm_arch_irq_bypass_del_producer()
608 irqfd->producer = NULL; in kvm_arch_irq_bypass_del_producer()
/linux/include/uapi/linux/
H A Dif_xdp.h60 __u64 producer; member
/linux/tools/include/uapi/linux/
H A Dif_xdp.h60 __u64 producer; member
/linux/Documentation/driver-api/
H A Dsync_file.rst14 of attaching a fence to the buffer a producer driver (such as a GPU or V4L
21 producer part of the cycle.

123