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. 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 (1): io_uring/zcrx: notify user when out of buffers Documentation/networking/iou-zcrx.rst | 106 ++++++++++++ include/uapi/linux/io_uring/query.h | 12 ++ include/uapi/linux/io_uring/zcrx.h | 34 +++- io_uring/query.c | 14 ++ io_uring/zcrx.c | 151 +++++++++++++++++- io_uring/zcrx.h | 13 +- .../selftests/drivers/net/hw/iou-zcrx.c | 112 +++++++++++-- .../selftests/drivers/net/hw/iou-zcrx.py | 49 +++++- 8 files changed, 475 insertions(+), 16 deletions(-) -- Clément Léger

