Home
last modified time | relevance | path

Searched refs:rings (Results 1 – 25 of 64) sorted by relevance

123

/linux/tools/testing/selftests/drivers/net/
H A Dhds.py16 rings = netnl.rings_get({'header': {'dev-index': cfg.ifindex}})
19 if 'tcp-data-split' not in rings:
21 return rings['tcp-data-split']
37 rings = netnl.rings_get({'header': {'dev-index': cfg.ifindex}})
41 if 'tx' not in rings:
57 rings = netnl.rings_get({'header': {'dev-index': cfg.ifindex}})
60 if 'hds-thresh' not in rings:
64 def _hds_reset(cfg, netnl, rings) -> None: argument
68 if cur.get('tcp-data-split') != rings.get('tcp-data-split'):
74 if cur['tcp-data-split'] == rings['tcp-data-split']:
[all …]
H A Dring_reconfig.py120 rings = cfg.eth.rings_get(ehdr)
125 for key in rings.keys():
128 maxes[param] = rings[key]
130 restore[param] = rings[param]
139 val = rings[param]
331 rings = cfg.eth.rings_get(ehdr)
332 if 'rx' not in rings or 'tx' not in rings:
334 tx_cur = rings['tx']
/linux/drivers/net/ethernet/intel/libie/
H A Dfwlog.c78 static bool libie_fwlog_ring_empty(struct libie_fwlog_ring *rings) in libie_fwlog_ring_empty() argument
80 return rings->head == rings->tail; in libie_fwlog_ring_empty()
88 static int libie_fwlog_alloc_ring_buffs(struct libie_fwlog_ring *rings) in libie_fwlog_alloc_ring_buffs() argument
93 nr_bytes = rings->size * LIBIE_AQ_MAX_BUF_LEN; in libie_fwlog_alloc_ring_buffs()
98 for (i = 0; i < rings->size; i++) { in libie_fwlog_alloc_ring_buffs()
99 struct libie_fwlog_data *ring = &rings->rings[i]; in libie_fwlog_alloc_ring_buffs()
109 static void libie_fwlog_free_ring_buffs(struct libie_fwlog_ring *rings) in libie_fwlog_free_ring_buffs() argument
113 for (i = 0; i < rings->size; i++) { in libie_fwlog_free_ring_buffs()
114 struct libie_fwlog_data *ring = &rings->rings[i]; in libie_fwlog_free_ring_buffs()
156 ring.rings = kzalloc_objs(*ring.rings, ring_size); in libie_fwlog_realloc_rings()
[all …]
/linux/io_uring/
H A Dregister.c172 /* Restrictions allowed only if rings started disabled */ in io_register_restrictions()
473 struct io_rings *rings; member
537 n.rings = io_region_get_ptr(&n.ring_region); in io_register_resize_rings()
540 * At this point n.rings is shared with userspace, just like o.rings in io_register_resize_rings()
547 WRITE_ONCE(n.rings->sq_ring_mask, p->sq_entries - 1); in io_register_resize_rings()
548 WRITE_ONCE(n.rings->cq_ring_mask, p->cq_entries - 1); in io_register_resize_rings()
549 WRITE_ONCE(n.rings->sq_ring_entries, p->sq_entries); in io_register_resize_rings()
550 WRITE_ONCE(n.rings->cq_ring_entries, p->cq_entries); in io_register_resize_rings()
583 * existing rings beyon in io_register_resize_rings()
[all...]
H A Dtw.c24 atomic_andnot(IORING_SQ_TASKRUN, &ctx->rings->sq_flags); in ctx_flush_and_put()
138 * RCU protected rings pointer to be safe against concurrent ring resizing.
145 struct io_rings *rings = rcu_dereference(ctx->rings_rcu); in io_ctx_mark_taskrun() local
147 atomic_or(IORING_SQ_TASKRUN, &rings->sq_flags); in io_ctx_mark_taskrun()
225 atomic_or(IORING_SQ_TASKRUN, &ctx->rings->sq_flags); in io_req_normal_work_add()
284 atomic_or(IORING_SQ_TASKRUN, &ctx->rings->sq_flags);
319 atomic_andnot(IORING_SQ_TASKRUN, &ctx->rings->sq_flags); in __io_run_local_work()
H A Deventfd.c80 struct io_rings *rings; in io_eventfd_signal() local
84 rings = rcu_dereference(ctx->rings_rcu); in io_eventfd_signal()
85 if (!rings) in io_eventfd_signal()
87 if (READ_ONCE(rings->cq_flags) & IORING_CQ_EVENTFD_DISABLED) in io_eventfd_signal()
H A Dio_uring.h156 struct io_rings *rings; in io_should_wake() local
160 rings = io_get_rings(ctx); in io_should_wake()
167 dist = READ_ONCE(rings->cq.tail) - (int) iowq->cq_tail; in io_should_wake()
417 smp_store_release(&ctx->rings->cq.tail, ctx->cached_cq_tail); in io_commit_cqring()
471 struct io_rings *rings = io_get_rings(ctx); in __io_sqring_entries() local
475 entries = smp_load_acquire(&rings->sq.tail) - ctx->cached_sq_head; in __io_sqring_entries()
/linux/tools/net/ynl/samples/
H A Dethtool.c
/linux/tools/testing/selftests/net/
H A Dpsock_fanout.c263 static int sock_fanout_read(int fds[], char *rings[], const int expect[]) in sock_fanout_read() argument
267 ret[0] = sock_fanout_read_ring(fds[0], rings[0]); in sock_fanout_read()
268 ret[1] = sock_fanout_read_ring(fds[1], rings[1]); in sock_fanout_read()
482 char *rings[2]; in test_datapath() local
501 rings[0] = sock_fanout_open_ring(fds[0]); in test_datapath()
502 rings[1] = sock_fanout_open_ring(fds[1]); in test_datapath()
505 sock_fanout_read(fds, rings, expect0); in test_datapath()
510 ret = sock_fanout_read(fds, rings, expect1); in test_datapath()
515 ret |= sock_fanout_read(fds, rings, expect2); in test_datapath()
517 if (munmap(rings[1], RING_NUM_FRAMES * getpagesize()) || in test_datapath()
[all …]
/linux/Documentation/mhi/
H A Dmhi.rst58 Transfer rings: Used by the host to schedule work items for a channel. The
59 transfer rings are organized as a circular queue of Transfer Descriptors (TD).
64 Event rings: Used by the device to send completion and state transition messages
70 Command rings: Used by the host to send MHI commands to the device. The command
71 rings are organized as a circular queue of Command Descriptors (CD).
81 Two unidirectional channels with their associated transfer rings form a
87 Transfer rings
91 Transfer Descriptors (TD). TDs are managed through transfer rings, which are
101 Below is the basic usage of transfer rings:
110 buffer information, increments the WP to the next element and rings the
[all …]
/linux/net/9p/
H A Dtrans_xen.c58 struct xen_9pfs_dataring *rings; member
136 ring = &priv->rings[num]; in p9_xen_request()
280 if (priv->rings) { in xen_9pfs_front_free()
282 struct xen_9pfs_dataring *ring = &priv->rings[i]; in xen_9pfs_front_free()
314 kfree(priv->rings); in xen_9pfs_front_free()
453 priv->rings = kzalloc_objs(*priv->rings, XEN_9PFS_NUM_RINGS); in xen_9pfs_front_init()
454 if (!priv->rings) { in xen_9pfs_front_init()
460 priv->rings[i].priv = priv; in xen_9pfs_front_init()
461 ret = xen_9pfs_front_alloc_dataring(dev, &priv->rings[i], in xen_9pfs_front_init()
487 priv->rings[i].ref); in xen_9pfs_front_init()
[all …]
/linux/tools/lib/bpf/
H A Dringbuf.c37 struct ring **rings; member
102 tmp = libbpf_reallocarray(rb->rings, rb->ring_cnt + 1, sizeof(*rb->rings)); in ring_buffer__add()
105 rb->rings = tmp; in ring_buffer__add()
115 rb->rings[rb->ring_cnt] = r; in ring_buffer__add()
180 ringbuf_free_ring(rb, rb->rings[i]); in ring_buffer__free()
185 free(rb->rings); in ring_buffer__free()
293 struct ring *ring = rb->rings[i]; in ring_buffer__consume_n()
318 struct ring *ring = rb->rings[i]; in ring_buffer__consume()
347 struct ring *ring = rb->rings[ring_id]; in ring_buffer__poll()
370 return rb->rings[idx]; in ring_buffer__ring()
/linux/drivers/crypto/intel/qat/qat_common/
H A Dadf_transport.c267 ring = &bank->rings[ring_num]; in adf_create_ring()
338 adf_handle_response(&bank->rings[i]); in adf_ring_response_handler()
406 bank->rings = kzalloc_node(size, GFP_KERNEL, in adf_init_bank()
408 if (!bank->rings) in adf_init_bank()
425 ring = &bank->rings[i]; in adf_init_bank()
439 tx_ring = &bank->rings[i - hw_data->tx_rx_gap]; in adf_init_bank()
456 ring = &bank->rings[i]; in adf_init_bank()
460 kfree(bank->rings); in adf_init_bank()
530 struct adf_etr_ring_data *ring = &bank->rings[i]; in cleanup_bank()
538 kfree(bank->rings); in cleanup_bank()
[all …]
/linux/drivers/gpu/drm/amd/amdgpu/
H A Damdgpu_dev_coredump.c444 ring_idx = coredump->rings[i].ring_index; in amdgpu_devcoredump_format()
445 ring = coredump->adev->rings[ring_idx]; in amdgpu_devcoredump_format()
449 coredump->rings[i].rptr, in amdgpu_devcoredump_format()
450 coredump->rings[i].wptr, in amdgpu_devcoredump_format()
455 if (!coredump->rings[i].ring_dw) { in amdgpu_devcoredump_format()
465 coredump->rings[i].ring_dw[j / 4]); in amdgpu_devcoredump_format()
510 kvfree(coredump->rings[i].ring_dw); in amdgpu_devcoredump_free()
511 kvfree(coredump->rings); in amdgpu_devcoredump_free()
596 ring = adev->rings[i]; in amdgpu_coredump()
606 coredump->rings = kvzalloc_objs(struct amdgpu_coredump_ring, in amdgpu_coredump()
[all …]
H A Damdgpu_ring.c259 adev->rings[ring->idx] = ring; in amdgpu_ring_init()
399 if (!(ring->adev) || !(ring->adev->rings[ring->idx])) in amdgpu_ring_fini()
972 ring = adev->rings[i]; in amdgpu_multi_ring_reset_helper_begin()
1009 ring = adev->rings[i]; in amdgpu_multi_ring_reset_helper_begin()
1029 ring = adev->rings[i]; in amdgpu_multi_ring_reset_helper_begin()
1077 ring = adev->rings[i]; in amdgpu_multi_ring_reset_helper_end()
1095 ring = adev->rings[i]; in amdgpu_multi_ring_reset_helper_end()
1112 ring = adev->rings[i]; in amdgpu_multi_ring_reset_helper_end()
H A Damdgpu_dev_coredump.h55 struct amdgpu_coredump_ring *rings; member
/linux/tools/testing/selftests/drivers/net/hw/
H A Dtoeplitz.c113 static struct ring_state rings[RSS_MAX_CPUS]; variable
274 pkts_found |= recv_block(&rings[i]); in process_rings()
434 rings[i].cpu = i; in setup_rings()
435 rings[i].fd = create_ring(&rings[i].mmap); in setup_rings()
440 set_filter(rings[i].fd); in setup_rings()
448 if (munmap(rings[i].mmap, ring_block_nr * ring_block_sz)) in cleanup_rings()
450 if (close(rings[i].fd)) in cleanup_rings()
H A Ddevmem_lib.py102 rings = ethnl.rings_get({'header': {'dev-index': cfg.ifindex}})
103 orig_rx_rings = rings['rx']
104 orig_hds_thresh = rings.get('hds-thresh', 0)
/linux/drivers/block/xen-blkback/
H A Dxenbus.c84 if (!blkif->rings || !blkif->rings[0].irq || !blkif->vbd.bdev_file) in xen_update_blkif_status()
110 ring = &blkif->rings[i]; in xen_update_blkif_status()
124 ring = &blkif->rings[i]; in xen_update_blkif_status()
134 blkif->rings = kzalloc_objs(struct xen_blkif_ring, blkif->nr_rings); in xen_blkif_alloc_rings()
135 if (!blkif->rings) in xen_blkif_alloc_rings()
139 struct xen_blkif_ring *ring = &blkif->rings[r]; in xen_blkif_alloc_rings()
273 struct xen_blkif_ring *ring = &blkif->rings[r]; in xen_blkif_disconnect()
337 kfree(blkif->rings); in xen_blkif_disconnect()
338 blkif->rings = NULL; in xen_blkif_disconnect()
388 if (!blkif->rings) \
[all …]
/linux/include/linux/
H A Dptr_ring.h649 static inline int ptr_ring_resize_multiple_bh_noprof(struct ptr_ring **rings, in ptr_ring_resize_multiple_bh_noprof() argument
668 spin_lock_bh(&(rings[i])->consumer_lock); in ptr_ring_resize_multiple_bh_noprof()
669 spin_lock(&(rings[i])->producer_lock); in ptr_ring_resize_multiple_bh_noprof()
670 queues[i] = __ptr_ring_swap_queue(rings[i], queues[i], in ptr_ring_resize_multiple_bh_noprof()
672 spin_unlock(&(rings[i])->producer_lock); in ptr_ring_resize_multiple_bh_noprof()
673 spin_unlock_bh(&(rings[i])->consumer_lock); in ptr_ring_resize_multiple_bh_noprof()
/linux/Documentation/networking/
H A Daf_xdp.rst24 syscall. Associated with each XSK are two rings: the RX ring and the
26 packets on the TX ring. These rings are registered and sized with the
28 to have at least one of these rings for each socket. An RX or TX
37 one of the rings references a frame by referencing its addr. The addr
42 UMEM also has two rings: the FILL ring and the COMPLETION ring. The
60 corresponding two rings, sets the XDP_SHARED_UMEM flag in the bind
66 process has to create its own socket with associated RX and TX rings,
68 reason that there is only one set of FILL and COMPLETION rings per
122 The UMEM has two single-producer/single-consumer rings that are used
129 There are a four different kind of rings: FILL, COMPLETION, RX and
[all …]
/linux/drivers/net/ethernet/netronome/nfp/
H A DMakefile24 nfd3/rings.o \
27 nfdk/rings.o \
/linux/Documentation/networking/device_drivers/ethernet/google/
H A Dgve.rst125 The descriptor rings are power-of-two-sized ring buffers consisting of
136 gve maps the buffers for transmit rings into a FIFO and copies the packets
141 The buffers for receive rings are put into a data ring that is the same
143 the rings together.
/linux/drivers/net/
H A Dtap.c1202 struct ptr_ring **rings; in tap_queue_resize() local
1206 rings = kmalloc_objs(*rings, n); in tap_queue_resize()
1207 if (!rings) in tap_queue_resize()
1211 rings[i++] = &q->ring; in tap_queue_resize()
1213 ret = ptr_ring_resize_multiple_bh(rings, n, in tap_queue_resize()
1217 kfree(rings); in tap_queue_resize()
/linux/Documentation/devicetree/bindings/net/
H A Dopencores-ethoc.txt6 first region is for the device registers and descriptor rings,

123