summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python
diff options
context:
space:
mode:
authorPaolo Abeni <pabeni@redhat.com>2026-08-13 13:42:50 +0200
committerPaolo Abeni <pabeni@redhat.com>2026-08-13 13:42:50 +0200
commit885a48b521b40aa515ad47f5581535b5763d105c (patch)
treea91df54b31dc49bc9d158dcb838daaa60f882d07 /tools/perf/scripts/python
parent03a105c83243a8c9cc147a44a7ec7bfd4c10ee8c (diff)
parent23adfc77c22cb959ac84e08dc8a77bac656f1caa (diff)
Merge branch 'net-mana-avoid-dma-queue-allocation-failure-under-memory-fragmentation'
Aditya Garg says: ==================== net: mana: Avoid DMA queue allocation failure under memory fragmentation The MANA driver can fail to bring up its queues on systems with high memory utilization because every GDMA queue ring is allocated as a single dma_alloc_coherent() of the whole power-of-2 ring size. Under memory fragmentation these high-order allocations may fail, preventing the driver from creating queues when opening the interface, after a VF reset, or when reconfiguring channels, ring parameters or MTU. Per-queue sizes that are problematic, with depth and size given as (default, max) over the ethtool ring settings: ring entry depth size ------------------------------------------------------------ TX completion queue 64 B (256, 16384) (16 KB, 1024 KB) TX send queue 32 B (256, 16384) ( 8 KB, 512 KB) RX completion queue 64 B (1024, 8192) (64 KB, 512 KB) RX receive queue 32 B (1024, 8192) (32 KB, 256 KB) event queue 16 B 2048 (fixed) 32 KB This series addresses the issue by: 1. Routing all CPU-side ring access through mana_gd_ring_ptr() and mana_gd_ring_contig_avail(). On a contiguous ring these reduce to simple arithmetic, so this patch is a pure refactor. 2. Falling back in mana_gd_alloc_memory() to a vector of scattered order-0 coherent pages when the contiguous allocation fails. The device sees the same page-list format either way, as mana_gd_create_dma_region() already describes a ring as a list of MANA_PAGE_SIZE addresses. The HW channel stays contiguous, as advertising a scattered page list needs the HW channel itself. Throughput testing confirms no regression. Since the fallback only triggers under memory fragmentation, the scattered-page path was enabled unconditionally for all eligible GDMA queue rings during testing (iperf3, Gbit/s): Baseline Patched Patched Connections Contiguous Contiguous Scattered ----------------------------------------------- 1 46.1 46.2 46.1 16 182 182 182 32 182 182 182 64 182 182 182 ==================== Link: https://patch.msgid.link/20260807210002.1695263-1-gargaditya@linux.microsoft.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions