On Wed, Jul 26, 2023 at 8:50 AM Jakub Kicinski <kuba@xxxxxxxxxx> wrote: > > On Wed, 26 Jul 2023 08:39:43 -0700 Alexander Duyck wrote: > > > > I suppose the above suggestion is about splitting or naming by > > > > the user as the discussed in the below thread? > > > > https://lore.kernel.org/all/20230721182942.0ca57663@xxxxxxxxxx/ > > > > > > Actually my suggestion is more about defining boundaries for what is > > > meant to be used by drivers and what isn't. The stuff you could keep > > > in net/core/page_pool.h would only be usable by the files in net/core/ > > > whereas the stuff you are keeping in the include/net/ folder is usable > > > by drivers. It is meant to prevent things like what you were > > > complaining about with the Mellanox drivers making use of interfaces > > > you didn't intend them to use. > > FWIW moving stuff which is only supposed to be used by core (xdp, skb, > etc.) to net/core/page_pool.h is a good idea, too. > Seems a bit independent from splitting the main header, tho. It seems a bit independent, but I was reacting only because I feel like this ijust adding to the technical debt on this. Basically before we can really just go ahead and split it the header file itself should probably be cleaned up a bit. The reason why it occurred to me is that I noticed things like page_pool_use_xdp_mem and the forward declaration for xdp_mem_info was being picked up and moved into the types.h file in the move. The whole block was in a #if/#else statement w/ definitions for the PAGE_POOL and non-PAGE_POOL cases. We also have functions that don't really need to be included such as page_pool_unlink_napi which is exported but not used outside of page_pool.c from what I can tell.