On Tue, 6 May 2025 11:35:28 +0300 Gur Stavi wrote: > + page = page_pool_alloc_frag(page_pool, &page_offset, buf_len, > + GFP_ATOMIC | __GFP_COMP); No need for __GFP_COMP. page pool will add it if order > 0 > +static struct sk_buff *hinic3_fetch_rx_buffer(struct hinic3_rxq *rxq, > + u32 pkt_len) > +{ > + struct net_device *netdev = rxq->netdev; > + struct sk_buff *skb; > + u32 sge_num; > + > + skb = netdev_alloc_skb_ip_align(netdev, HINIC3_RX_HDR_SIZE); Looks like this is only called from NAPI so you can use napi_alloc_skb() it has an object cache so it is measurably faster