On Tue, Dec 3, 2024 at 9:43 AM Alexander Lobakin <aleksander.lobakin@xxxxxxxxx> wrote: > > Currently, page_pool_put_page_bulk() indeed takes an array of pointers > to the data, not pages, despite the name. As one side effect, when > you're freeing frags from &skb_shared_info, xdp_return_frame_bulk() > converts page pointers to virtual addresses and then > page_pool_put_page_bulk() converts them back. Moreover, data pointers > assume every frag is placed in the host memory, making this function > non-universal. > Make page_pool_put_page_bulk() handle array of netmems. Pass frag > netmems directly and use virt_to_netmem() when freeing xdpf->data, > so that the PP core will then get the compound netmem and take care > of the rest. > > Signed-off-by: Alexander Lobakin <aleksander.lobakin@xxxxxxxxx> Thank you very much. There are a handful of page_pool APIs that don't yet have netmem replacements/equivalents. Thanks for taking up this one as you look into XDP. Reviewed-by: Mina Almasry <almasrymina@xxxxxxxxxx>