Re: [RFC PATCH v3 08/12] net: support non paged skb frags

From: Mina Almasry
Date: Mon Nov 13 2023 - 01:05:52 EST


On Fri, Nov 10, 2023 at 3:19 PM Jakub Kicinski <kuba@xxxxxxxxxx> wrote:
>
> On Sun, 5 Nov 2023 18:44:07 -0800 Mina Almasry wrote:
> > #include <net/net_debug.h>
> > #include <net/dropreason-core.h>
> > +#include <net/page_pool/types.h>
> > +#include <net/page_pool/helpers.h>
>
> > /**
> > * DOC: skb checksums
> > @@ -3402,15 +3404,38 @@ static inline void skb_frag_off_copy(skb_frag_t *fragto,
> > fragto->bv_offset = fragfrom->bv_offset;
> > }
> >
> > +/* Returns true if the skb_frag contains a page_pool_iov. */
> > +static inline bool skb_frag_is_page_pool_iov(const skb_frag_t *frag)
> > +{
> > + return page_is_page_pool_iov(frag->bv_page);
> > +}
>
> Maybe we can create a new header? For skb + page pool.
>
> skbuff.h is included by 1/4th of the kernel objects, we should not
> be adding dependencies to this header, it really slows down incremental
> builds.
>

My issue here is that all these skb helpers call each other so I end
up having to move a lot of the unrelated skb helpers to this new
header (maybe that is acceptable but it feels weird).

What I could do here is move all the page_pool_page|iov_* helpers to a
minimal header, and include only that one from skbuff.h, rather than
including all of net/page_pool/helpers.h

--
Thanks,
Mina