zcrx RQ improvements and dynamic memory provisioning
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest17 patches 1 replyIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/17 | io_uring/zcrx: scale refilling with large pagesio_uring/ | +14 | 0 replies | |
| 2/17 | io_uring/zcrx: move RQ head/tail to separate cache linesio_uring/ io_uring/ io_uring/ | +11 | 0 replies | |
| 3/17 | io_uring/zcrx: add RQ iteratorio_uring/ | +26 | 0 replies | |
| 4/17 | io_uring/zcrx: cache RQ tailio_uring/ io_uring/ | +22 | 0 replies | |
| 5/17 | io_uring/zcrx: coalesce same-niov RQEs on refillio_uring/ | +36 | 0 replies | |
| 6/17 | io_uring/zcrx: constify area_reg on importio_uring/ | +3 | 0 replies | |
| 7/17 | io_uring/zcrx: add helper for deriving area tokenio_uring/ | +7 | 0 replies | |
| 8/17 | io_uring/zcrx: don't pass ifq_reg to area creationio_uring/ | +14 | 0 replies | |
| 9/17 | io_uring/zcrx: split dmabuf unmap and releaseio_uring/ | +11 | 0 replies | |
| 10/17 | io_uring/zcrx: unmap under netdev lockio_uring/ | +14 | 0 replies | |
| 11/17 | io_uring/zcrx: split append out of area creationio_uring/ | +16 | 0 replies | |
| 12/17 | io_uring/zcrx: move freelist lock to struct zcrxio_uring/ io_uring/ | +8 | 0 replies | |
| 13/17 | io_uring/zcrx: array of areasio_uring/ io_uring/ | +75 | 0 replies | |
| 14/17 | io_uring/zcrx: pass area_id to __zcrx_create_area()io_uring/ | +15 | 0 replies | |
| 15/17 | io_uring/zcrx: add dynamic area creationinclude/ io_uring/ | +79 | 0 replies | |
| 16/17 | io_urint/zcrx: narrow var scope in io_zcrx_recv_skb()io_uring/ | +16 | 0 replies | |
| 17/17 | io_uring/zcrx: don't reload skb_shinfoio_uring/ | +5 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
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