• Saeed Mahameed's avatar
    net/mlx5e: Build RX SKB on demand · 1bfecfca
    Saeed Mahameed authored
    For non-striding RQ configuration before this patch we had a ring
    with pre-allocated SKBs and mapped the SKB->data buffers for
    device.
    
    For robustness and better RX data buffers management, we allocate a
    page per packet and build_skb around it.
    
    This patch (which is a prerequisite for XDP) will actually reduce
    performance for normal stack usage, because we are now hitting a bottleneck
    in the page allocator. We use the page-cache to restore or even improve
    performance in comparison to the old RX scheme.
    
    Packet rate performance testing was done with pktgen 64B packets on xmit
    side and TC ingress dropping action on RX side.
    
    CPU: Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz
    
    Comparison is done between:
     1.Baseline, before 'net/mlx5e: Build RX SKB on demand'
     2.Build SKB with RX page cache (This patch)
    
    RX Cores  Baseline    Build SKB+page-cache    Improvement
    -----------------------------------------------------------
    1          4.16Mpps       5.33Mpps                28%
    2          7.16Mpps      10.24Mpps                43%
    4         13.61Mpps      20.51Mpps                51%
    8         25.32Mpps      32.00Mpps                26%
    
    All respective cores were 100% utilized.
    Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    1bfecfca
en.h 25.3 KB