Hi Dave, In this series, we refactor our Striding RQ receive-flow to always use fragmented WQEs (Work Queue Elements) using order-0 pages, omitting the flow that allocates and splits high-order pages which would fragment and deplete high-order pages in the system.
The first patch gives a slight degradation, but opens the opportunity to using a simple page-cache mechanism of a fair size. The page-cache, implemented in patch 3, not only closes the performance gap but even gives a gain. In patch 2 we re-organize the code to better manage the calls for alloc/de-alloc pages in the RX flow. Series generated against net-next commit: bed806cb266e "Merge branch 'mlxsw-ethtool'" Thanks, Tariq Tariq Toukan (3): net/mlx5e: Single flow order-0 pages for Striding RQ net/mlx5e: Introduce API for RX mapped pages net/mlx5e: Implement RX mapped page cache for page recycle drivers/net/ethernet/mellanox/mlx5/core/en.h | 70 ++-- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 149 +++++++-- drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 359 +++++++-------------- drivers/net/ethernet/mellanox/mlx5/core/en_stats.h | 20 +- drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c | 2 +- 5 files changed, 291 insertions(+), 309 deletions(-) -- 1.8.3.1