The main purpose of this patchset is to add AF_XDP support for UMEM chunk sizes > PAGE_SIZE. This is enabled for UMEMs backed by HugeTLB pages. Changes since v5: * Fix nits from Magnus. Changes since v4: * Use hugepages in DMA map (fixes zero-copy mode with IOMMU). * Use pool->dma_pages to check for DMA. This change is needed to avoid performance regressions). * Update commit message and benchmark table. Changes since v3: * Fix checkpatch.pl whitespace error. Changes since v2: * Related fixes/improvements included with v2 have been removed. These changes have all been resubmitted as standalone patchsets. * Minimize uses of #ifdef CONFIG_HUGETLB_PAGE. * Improve AF_XDP documentation. * Update benchmark table in commit message. Changes since v1: * Add many fixes/improvements to the XSK selftests. * Add check for unaligned descriptors that overrun UMEM. * Fix compile errors when CONFIG_HUGETLB_PAGE is not set. * Fix incorrect use of _Static_assert. * Update AF_XDP documentation. * Rename unaligned 9K frame size test. * Make xp_check_dma_contiguity less conservative. * Add more information to benchmark table. Thanks to Magnus Karlsson for all his feedback! Kal Conley (4): xsk: Use pool->dma_pages to check for DMA xsk: Support UMEM chunk_size > PAGE_SIZE selftests: xsk: Use hugepages when umem->frame_size > PAGE_SIZE selftests: xsk: Add tests for 8K and 9K frame sizes Documentation/networking/af_xdp.rst | 36 ++++++++++------ include/net/xdp_sock.h | 2 + include/net/xdp_sock_drv.h | 12 ++++++ include/net/xsk_buff_pool.h | 12 +++--- net/xdp/xdp_umem.c | 55 +++++++++++++++++++----- net/xdp/xsk_buff_pool.c | 41 +++++++++++------- tools/testing/selftests/bpf/xskxceiver.c | 27 +++++++++++- tools/testing/selftests/bpf/xskxceiver.h | 2 + 8 files changed, 141 insertions(+), 46 deletions(-) -- 2.39.2