On Fri, Sep 25, 2026 at 12:44:07PM +0200, Björn Töpel wrote:
> Hi!
> 
> 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.
> 
> This series depends on the fbnic real-queue synchronization fix:
> https://lore.kernel.org/netdev/[email protected]/

For the series:

Reviewed-by: Simon Horman <[email protected]>


Reply via email to