Skip to content

zcrx RQ improvements and dynamic memory provisioning

Pavel Begunkov io-uring netdev 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest17 patches 1 replyIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/17io_uring/zcrx: scale refilling with large pagesio_uring/zcrx.c+14 -70 replies
2/17io_uring/zcrx: move RQ head/tail to separate cache linesio_uring/query.c io_uring/zcrx.c io_uring/zcrx.h+11 -60 replies
3/17io_uring/zcrx: add RQ iteratorio_uring/zcrx.c+26 -60 replies
4/17io_uring/zcrx: cache RQ tailio_uring/zcrx.c io_uring/zcrx.h+22 -60 replies
5/17io_uring/zcrx: coalesce same-niov RQEs on refillio_uring/zcrx.c+36 -200 replies
6/17io_uring/zcrx: constify area_reg on importio_uring/zcrx.c+3 -30 replies
7/17io_uring/zcrx: add helper for deriving area tokenio_uring/zcrx.c+7 -20 replies
8/17io_uring/zcrx: don't pass ifq_reg to area creationio_uring/zcrx.c+14 -60 replies
9/17io_uring/zcrx: split dmabuf unmap and releaseio_uring/zcrx.c+11 -60 replies
10/17io_uring/zcrx: unmap under netdev lockio_uring/zcrx.c+14 -80 replies
11/17io_uring/zcrx: split append out of area creationio_uring/zcrx.c+16 -50 replies
12/17io_uring/zcrx: move freelist lock to struct zcrxio_uring/zcrx.c io_uring/zcrx.h+8 -80 replies
13/17io_uring/zcrx: array of areasio_uring/zcrx.c io_uring/zcrx.h+75 -250 replies
14/17io_uring/zcrx: pass area_id to __zcrx_create_area()io_uring/zcrx.c+15 -60 replies
15/17io_uring/zcrx: add dynamic area creationinclude/uapi/linux/io_uring/zcrx.h io_uring/zcrx.c+79 -120 replies
16/17io_urint/zcrx: narrow var scope in io_zcrx_recv_skb()io_uring/zcrx.c+16 -190 replies
17/17io_uring/zcrx: don't reload skb_shinfoio_uring/zcrx.c+5 -60 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH review-only 00/17] zcrx RQ improvements and dynamic memory provisioning

Sending it out mainly to trigger review bots. The first half improves the refill queue implementation and improves refilling limits, which shows up when niovs are heavily fragmented like with large rx pages. The 2nd half adds dynamic backing memory provisioning.

Pavel Begunkov (17):
io_uring/zcrx: scale refilling with large pages io_uring/zcrx: move RQ head/tail to separate cache lines io_uring/zcrx: add RQ iterator
io_uring/zcrx: cache RQ tail
io_uring/zcrx: coalesce same-niov RQEs on refill io_uring/zcrx: constify area_reg on import io_uring/zcrx: add helper for deriving area token io_uring/zcrx: don't pass ifq_reg to area creation io_uring/zcrx: split dmabuf unmap and release io_uring/zcrx: unmap under netdev lock io_uring/zcrx: split append out of area creation io_uring/zcrx: move freelist lock to struct zcrx io_uring/zcrx: array of areas
io_uring/zcrx: pass area_id to __zcrx_create_area() io_uring/zcrx: add dynamic area creation io_urint/zcrx: narrow var scope in io_zcrx_recv_skb() io_uring/zcrx: don't reload skb_shinfo

 include/uapi/linux/io_uring/zcrx.h |   7 +
 io_uring/query.c                   |   2 +-
 io_uring/zcrx.c                    | 445 +++++++++++++++++++++--------
 io_uring/zcrx.h                    |  15 +-
 4 files changed, 345 insertions(+), 124 deletions(-)
Signature · 1 line
2.54.0