• Maciej Fijalkowski's avatar
    ice: propagate xdp_ring onto rx_ring · eb087cd8
    Maciej Fijalkowski authored
    With rings being split, it is now convenient to introduce a pointer to
    XDP ring within the Rx ring. For XDP_TX workloads this means that
    xdp_rings array access will be skipped, which was executed per each
    processed frame.
    
    Also, read the XDP prog once per NAPI and if prog is present, set up the
    local xdp_ring pointer. Reading prog a single time was discussed in [1]
    with some concern raised by Toke around dispatcher handling and having
    the need for going through the RCU grace period in the ndo_bpf driver
    callback, but ice currently is torning down NAPI instances regardless of
    the prog presence on VSI.
    
    Although the pointer to XDP ring introduced to Rx ring makes things a
    lot slimmer/simpler, I still feel that single prog read per NAPI
    lifetime is beneficial.
    
    Further patch that will introduce the fallback path will also get a
    profit from that as xdp_ring pointer will be set during the XDP rings
    setup.
    
    [1]: https://lore.kernel.org/bpf/87k0oseo6e.fsf@toke.dk/Signed-off-by: default avatarMaciej Fijalkowski <maciej.fijalkowski@intel.com>
    Tested-by: default avatarGeorge Kuruvinakunnel <george.kuruvinakunnel@intel.com>
    Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
    eb087cd8
ice_xsk.c 20.1 KB