diff options
author | David Wei <dw@davidwei.uk> | 2025-02-14 16:09:36 -0800 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2025-02-17 05:41:03 -0700 |
commit | 6f377873cb23905009759b7366b9fe85c2a6ff37 (patch) | |
tree | 174674c6e7cc5055cdf90ccdc99e7b3032c57483 /Kconfig | |
parent | 5c496ff11df179c32db960cf10af90a624a035eb (diff) |
io_uring/zcrx: add interface queue and refill queue
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>
Diffstat (limited to 'Kconfig')
-rw-r--r-- | Kconfig | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -30,3 +30,5 @@ source "lib/Kconfig" source "lib/Kconfig.debug" source "Documentation/Kconfig" + +source "io_uring/KConfig" |