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]>

