On Thu, 11 Jul 2024 13:57:01 -0700 Mina Almasry wrote:
Sorry none of those are only used by net/core/*. Pretty much all of these are used by include/net/page_pool/helpers.h, and some have callers in net/core/devmem.c or net/core/skbuff.c
Would you like me to move these pp specific looking ones to include/net/page_pool/netmem.h or something similar?
That's because some things already in helpers have no real business being there either. Why is page_pool_set_pp_info() in helpers.h?
OK, I looked into this a bit. It looks like I can trivially move page_pool_set/clear_pp_info() to page_pool_priv.h, and that lets me move out a few of these netmem helpers to a header under net/core.
However, to move more of these netmem helpers to a private header, I think I need to move all the page pool dma helpers and reffing helpers to a private header or the .c file, which I think will uninline them as they're eventually called from drivers.
I had guessed the previous authors put those dma and ref helpers in the .h file to inline them as they're used in fast paths. Do you think the refactor and the uninling is desirable? Or should I just do with the trivial moving of the page_pool_set/clear_pp_info() to the private file?
The helpers which modify pp_magic and dma_addr should go. I don't see anything else on a quick look, but in general the public header shouldn't contain helpers which are meant for setup / init of a buffer.