On 2023/5/12 21:08, Lorenzo Bianconi wrote: > In order to reduce page_pool memory footprint, rely on > page_pool_dev_alloc_frag routine and reduce buffer size > (VETH_PAGE_POOL_FRAG_SIZE) to PAGE_SIZE / 2 in order to consume one page Is there any performance improvement beside the memory saving? As it should reduce TLB miss, I wonder if the TLB miss reducing can even out the cost of the extra frag reference count handling for the frag support? > for two 1500B frames. Reduce VETH_XDP_PACKET_HEADROOM to 192 from 256 > (XDP_PACKET_HEADROOM) to fit max_head_size in VETH_PAGE_POOL_FRAG_SIZE. > Please note, using default values (CONFIG_MAX_SKB_FRAGS=17), maximum > supported MTU is now reduced to 36350B. Maybe we don't need to limit the frag size to VETH_PAGE_POOL_FRAG_SIZE, and use different frag size depending on the mtu or packet size? Perhaps the page_pool_dev_alloc_frag() can be improved to return non-frag page if the requested frag size is larger than a specified size too. I will try to implement it if the above idea makes sense.