• R
    net/mlx5e: XDP fast RX drop bpf programs support · 86994156
    Rana Shahout 提交于
    Add support for the BPF_PROG_TYPE_PHYS_DEV hook in mlx5e driver.
    
    When XDP is on we make sure to change channels RQs type to
    MLX5_WQ_TYPE_LINKED_LIST rather than "striding RQ" type to
    ensure "page per packet".
    
    On XDP set, we fail if HW LRO is set and request from user to turn it
    off.  Since on ConnectX4-LX HW LRO is always on by default, this will be
    annoying, but we prefer not to enforce LRO off from XDP set function.
    
    Full channels reset (close/open) is required only when setting XDP
    on/off.
    
    When XDP set is called just to exchange programs, we will update
    each RQ xdp program on the fly and for synchronization with current
    data path RX activity of that RQ, we temporally disable that RQ and
    ensure RX path is not running, quickly update and re-enable that RQ,
    for that we do:
    	- rq.state = disabled
    	- napi_synnchronize
    	- xchg(rq->xdp_prg)
    	- rq.state = enabled
    	- napi_schedule // Just in case we've missed an IRQ
    
    Packet rate performance testing was done with pktgen 64B packets and on
    TX side and, TC drop action on RX side compared to XDP fast drop.
    
    CPU: Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz
    
    Comparison is done between:
    	1. Baseline, Before this patch with TC drop action
    	2. This patch with TC drop action
    	3. This patch with XDP RX fast drop
    
    RX Cores  Baseline(TC drop)    TC drop    XDP fast Drop
    --------------------------------------------------------------
    1            5.3Mpps           5.3Mpps     16.5Mpps
    2           10.2Mpps          10.2Mpps     31.3Mpps
    4           20.5Mpps          19.9Mpps     36.3Mpps*
    
    *My xmitter was limited to 36.3Mpps, so it is the bottleneck.
    It seems that receive side can handle more.
    Signed-off-by: NRana Shahout <ranas@mellanox.com>
    Signed-off-by: NSaeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: NTariq Toukan <tariqt@mellanox.com>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    86994156
en_stats.h 15.4 KB