mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/
synced 2026-11-10 20:48:12 +00:00
Merge branch 'fbnic-support-larger-rx-pages'
Björn Töpel says: ==================== fbnic: Support larger RX pages This series adds support for large io_uring zero-copy RX buffers to fbnic. fbnic hardware consumes receive memory in 4 KiB device pages, while io_uring may expose a larger software buffer, such as 256 KiB. Track the device-page geometry per BDQ, represent each large buffer with consecutive descriptors, and decode completions to the corresponding offset within the buffer. HPQ keeps its existing PAGE_SIZE geometry. Larger buffers also reduce pressure on the memory provider. One provider allocation supplies multiple 4 KiB device pages, so the same amount of receive memory needs fewer net_iov objects and fewer allocation, refill, and recycle operations. Hardware descriptor use remains unchanged. Ring depth and buffer size must be validated together. An ethtool ring change can otherwise make an active memory-provider configuration invalid. Store RX ring depths in netdev_config, stage proposed values in cfg_pending, and validate the default and each RX queue before committing the change. Both netlink and ioctl use the same transaction helpers. The selftest requests a power-of-two buffer larger than twice the MTU, checks the reported buffer length, and verifies received data. It does not assume how packets are placed within the buffer. ==================== Link: https://patch.msgid.link/20260925104417.2325213-1-bjorn@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
22691f0128
16 changed files with 349 additions and 89 deletions
Loading…
Add table
Add a link
Reference in a new issue