lkml.org 
[lkml]   [2021]   [Dec]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 net-next 8/9] ixgbe: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skb
    Date
    {__,}napi_alloc_skb() allocates and reserves additional NET_SKB_PAD
    + NET_IP_ALIGN for any skb.
    OTOH, ixgbe_construct_skb_zc() currently allocates and reserves
    additional `xdp->data - xdp->data_hard_start`, which is
    XDP_PACKET_HEADROOM for XSK frames.
    There's no need for that at all as the frame is post-XDP and will
    go only to the networking stack core.
    Pass the size of the actual data only to __napi_alloc_skb() and
    don't reserve anything. This will give enough headroom for stack
    processing.

    Fixes: d0bcacd0a130 ("ixgbe: add AF_XDP zero-copy Rx support")
    Signed-off-by: Alexander Lobakin <alexandr.lobakin@intel.com>
    Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
    ---
    drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c | 4 +---
    1 file changed, 1 insertion(+), 3 deletions(-)

    diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c
    index 1d74a7980d81..db20dc4c2488 100644
    --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c
    +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c
    @@ -214,13 +214,11 @@ static struct sk_buff *ixgbe_construct_skb_zc(struct ixgbe_ring *rx_ring,
    struct sk_buff *skb;

    /* allocate a skb to store the frags */
    - skb = __napi_alloc_skb(&rx_ring->q_vector->napi,
    - xdp->data_end - xdp->data_hard_start,
    + skb = __napi_alloc_skb(&rx_ring->q_vector->napi, datasize,
    GFP_ATOMIC | __GFP_NOWARN);
    if (unlikely(!skb))
    return NULL;

    - skb_reserve(skb, xdp->data - xdp->data_hard_start);
    memcpy(__skb_put(skb, datasize), xdp->data, datasize);
    if (metasize)
    skb_metadata_set(skb, metasize);
    --
    2.33.1
    \
     
     \ /
      Last update: 2021-12-08 15:08    [W:2.641 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site