mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 01:04:41 +01:00
Add a new object called an interface queue (ifq) that represents a net rx queue that has been configured for zero copy. Each ifq is registered using a new registration opcode IORING_REGISTER_ZCRX_IFQ. The refill queue is allocated by the kernel and mapped by userspace using a new offset IORING_OFF_RQ_RING, in a similar fashion to the main SQ/CQ. It is used by userspace to return buffers that it is done with, which will then be re-used by the netdev again. The main CQ ring is used to notify userspace of received data by using the upper 16 bytes of a big CQE as a new struct io_uring_zcrx_cqe. Each entry contains the offset + len to the data. For now, each io_uring instance only has a single ifq. Reviewed-by: Jens Axboe <axboe@kernel.dk> Signed-off-by: David Wei <dw@davidwei.uk> Acked-by: Jakub Kicinski <kuba@kernel.org> Link: https://lore.kernel.org/r/20250215000947.789731-2-dw@davidwei.uk Signed-off-by: Jens Axboe <axboe@kernel.dk>
10 lines
171 B
Text
10 lines
171 B
Text
# SPDX-License-Identifier: GPL-2.0-only
|
|
#
|
|
# io_uring configuration
|
|
#
|
|
|
|
config IO_URING_ZCRX
|
|
def_bool y
|
|
depends on PAGE_POOL
|
|
depends on INET
|
|
depends on NET_RX_BUSY_POLL
|