From: Jakub Kicinski Date: Sun, 12 Apr 2026 17:54:35 +0000 (-0700) Subject: Merge branch 'add-tso-map-once-dma-helpers-and-bnxt-sw-uso-support' X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=05ed6c221e595dce22a3863a97d89088db1c28ee;p=thirdparty%2Fkernel%2Flinux.git Merge branch 'add-tso-map-once-dma-helpers-and-bnxt-sw-uso-support' Joe Damato says: ==================== Add TSO map-once DMA helpers and bnxt SW USO support Greetings: This series extends net/tso to add a data structure and some helpers allowing drivers to DMA map headers and packet payloads a single time. The helpers can then be used to reference slices of shared mapping for each segment. This helps to avoid the cost of repeated DMA mappings, especially on systems which use an IOMMU. N per-packet DMA maps are replaced with a single map for the entire GSO skb. As of v3, the series uses the DMA IOVA API (as suggested by Leon [1]) and provides a fallback path when an IOMMU is not in use. The DMA IOVA API provides even better efficiency than the v2; see below. The added helpers are then used in bnxt to add support for software UDP Segmentation Offloading (SW USO) for older bnxt devices which do not have support for USO in hardware. Since the helpers are generic, other drivers can be extended similarly. The v2 showed a ~4x reduction in DMA mapping calls at the same wire packet rate on production traffic with a bnxt device. The v3, however, shows a larger reduction of about ~6x at the same wire packet rate. This is thanks to Leon's suggestion of using the DMA IOVA API [1]. Special care is taken to make bnxt ethtool operations work correctly: the ring size cannot be reduced below a minimum threshold while USO is enabled and growing the ring automatically re-enables USO if it was previously blocked. This v10 contains some cosmetic changes (wrapping long lines), moves the test to the correct directory, and attempts to fix the slot availability check added in the v9. I re-ran the python test and the test passed on my bnxt system. I also ran this on a production system. ==================== Link: https://patch.msgid.link/20260408230607.2019402-1-joe@dama.to Signed-off-by: Jakub Kicinski --- 05ed6c221e595dce22a3863a97d89088db1c28ee