| /linux/tools/testing/selftests/drivers/net/ |
| H A D | hds.py | 16 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 D | ring_reconfig.py | 120 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 D | fwlog.c | 78 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 D | register.c | 172 /* 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 D | tw.c | 24 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 D | eventfd.c | 80 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 D | io_uring.h | 156 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 D | ethtool.c | |
| /linux/tools/testing/selftests/net/ |
| H A D | psock_fanout.c | 263 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 D | mhi.rst | 58 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 D | trans_xen.c | 58 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 D | ringbuf.c | 37 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 D | adf_transport.c | 267 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 D | amdgpu_dev_coredump.c | 444 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 D | amdgpu_ring.c | 259 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 D | amdgpu_dev_coredump.h | 55 struct amdgpu_coredump_ring *rings; member
|
| /linux/tools/testing/selftests/drivers/net/hw/ |
| H A D | toeplitz.c | 113 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 D | devmem_lib.py | 102 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 D | xenbus.c | 84 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 D | ptr_ring.h | 649 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 D | af_xdp.rst | 24 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 D | Makefile | 24 nfd3/rings.o \ 27 nfdk/rings.o \
|
| /linux/Documentation/networking/device_drivers/ethernet/google/ |
| H A D | gve.rst | 125 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 D | tap.c | 1202 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 D | opencores-ethoc.txt | 6 first region is for the device registers and descriptor rings,
|