• Shannon Nelson's avatar
    ionic: use per-queue xdp_prog · 7b4ec51f
    Shannon Nelson authored
    We originally were using a per-interface xdp_prog variable to track
    a loaded XDP program since we knew there would never be support for a
    per-queue XDP program.  With that, we only built the per queue rxq_info
    struct when an XDP program was loaded and removed it on XDP program unload,
    and used the pointer as an indicator in the Rx hotpath to know to how build
    the buffers.  However, that's really not the model generally used, and
    makes a conversion to page_pool Rx buffer cacheing a little problematic.
    
    This patch converts the driver to use the more common approach of using
    a per-queue xdp_prog pointer to work out buffer allocations and need
    for bpf_prog_run_xdp().  We jostle a couple of fields in the queue struct
    in order to keep the new xdp_prog pointer in a warm cacheline.
    Signed-off-by: default avatarShannon Nelson <shannon.nelson@amd.com>
    Signed-off-by: default avatarBrett Creeley <brett.creeley@amd.com>
    Link: https://patch.msgid.link/20240906232623.39651-4-brett.creeley@amd.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    7b4ec51f
ionic_txrx.c 44.2 KB