From: "Clément Léger" <cleger@meta.com>
To: <io-uring@vger.kernel.org>,
Pavel Begunkov <asml.silence@gmail.com>,
"Jens Axboe" <axboe@kernel.dk>
Cc: "Clément Léger" <cleger@meta.com>,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-kselftest@vger.kernel.org, netdev@vger.kernel.org,
"David S. Miller" <davem@davemloft.net>,
"Eric Dumazet" <edumazet@google.com>,
"Jakub Kicinski" <kuba@kernel.org>,
"Paolo Abeni" <pabeni@redhat.com>,
"Simon Horman" <horms@kernel.org>,
"Jonathan Corbet" <corbet@lwn.net>,
"Shuah Khan" <skhan@linuxfoundation.org>,
"Vishwanath Seshagiri" <vishs@fb.com>
Subject: [PATCH v2 0/6] io_uring/zcrx: add CQE based notifications and stats reporting
Date: Mon, 18 May 2026 08:35:23 -0700 [thread overview]
Message-ID: <20260518153532.2835502-1-cleger@meta.com> (raw)
The zcrx path can encounter various conditions that lead to internal
fallbacks or errors. These errors can have a large impact on performance
and functionality but are not yet not being reported to the user which
is then unable to take action.
This series addresses this problem by adding a new notification system
paired with a statistics structure. The notification system currently
report out of buffer and packets that fallback to copy. The statistics
structure report the number and total size of packets that were copied
rather than received via the zero-copy path.
The out of buffer notification allows the user to actually adjust the
buffer sizing when registering zcrx support for the ifq. Some future
work could allow the user to add more memory on the fly to the pool so
the page allocator doesn't run out of memory.
This series can be tested using the include kselftest modification and
using the liburing series that updates headers and tests/examples so
that it uses notifications and statistics.
Changes in v2:
- Rebase on top of Pavel's branch that now uses a single CQE per notif
- Change notification mask to type (ie one CQE per event)
- Use a type rather than a mask for rearm as well
- Update tests to use single typei
- Update documentatiopn to state that notif CQEs are sent for a single
event
- Fix zero init of zcrx_query_notif __resv field
- Rename resv1 to __resv1
- Reduce __resv2 size to match io_uring_query_opcode size
- Verifies that stats_offset is 0 if FLAG_STATS is zero
- Added zcrx notif query sequence to documentation
- Add _copy_fallback to test name
---
Clément Léger (4):
io_uring/zcrx: notify user on frag copy fallback
io_uring/zcrx: add shared-memory notification statistics
Documentation: networking: document zcrx notifications and statistics
selftests: iou-zcrx: add notification and stats test for zcrx
Pavel Begunkov (2):
io_uring/zcrx: add ctx pointer to zcrx
io_uring/zcrx: notify user when out of buffers
Documentation/networking/iou-zcrx.rst | 121 ++++++++++++
include/uapi/linux/io_uring/query.h | 12 ++
include/uapi/linux/io_uring/zcrx.h | 36 +++-
io_uring/io_uring.c | 2 +-
io_uring/io_uring.h | 1 +
io_uring/query.c | 16 ++
io_uring/zcrx.c | 180 +++++++++++++++++-
io_uring/zcrx.h | 11 +-
.../selftests/drivers/net/hw/iou-zcrx.c | 114 ++++++++++-
.../selftests/drivers/net/hw/iou-zcrx.py | 49 ++++-
10 files changed, 517 insertions(+), 25 deletions(-)
--
Clément Léger
next reply other threads:[~2026-05-18 15:36 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-18 15:35 Clément Léger [this message]
2026-05-18 15:35 ` [PATCH v2 1/6] io_uring/zcrx: add ctx pointer to zcrx Clément Léger
2026-05-19 15:19 ` Vishwanath Seshagiri
2026-05-18 15:35 ` [PATCH v2 2/6] io_uring/zcrx: notify user when out of buffers Clément Léger
2026-05-19 15:21 ` Vishwanath Seshagiri
2026-05-18 15:35 ` [PATCH v2 3/6] io_uring/zcrx: notify user on frag copy fallback Clément Léger
2026-05-18 15:35 ` [PATCH v2 4/6] io_uring/zcrx: add shared-memory notification statistics Clément Léger
2026-05-18 15:35 ` [PATCH v2 5/6] Documentation: networking: document zcrx notifications and statistics Clément Léger
2026-05-18 15:35 ` [PATCH v2 6/6] selftests: iou-zcrx: add notification and stats test for zcrx Clément Léger
2026-05-19 11:43 ` [PATCH v2 0/6] io_uring/zcrx: add CQE based notifications and stats reporting Pavel Begunkov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260518153532.2835502-1-cleger@meta.com \
--to=cleger@meta.com \
--cc=asml.silence@gmail.com \
--cc=axboe@kernel.dk \
--cc=corbet@lwn.net \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=io-uring@vger.kernel.org \
--cc=kuba@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=skhan@linuxfoundation.org \
--cc=vishs@fb.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox