Messages in this thread |  | | From | Mina Almasry <> | | Date | Thu, 22 May 2025 16:09:35 -0700 | | Subject | Re: [PATCH net-next V2 02/11] net: Add skb_can_coalesce for netmem |
| |
On Thu, May 22, 2025 at 2:43 PM Tariq Toukan <tariqt@nvidia.com> wrote: > > From: Dragos Tatulea <dtatulea@nvidia.com> > > Allow drivers that have moved over to netmem to do fragment coalescing. > > Signed-off-by: Dragos Tatulea <dtatulea@nvidia.com> > Signed-off-by: Cosmin Ratiu <cratiu@nvidia.com> > Signed-off-by: Tariq Toukan <tariqt@nvidia.com> > --- > include/linux/skbuff.h | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h > index 5520524c93bf..e8e2860183b4 100644 > --- a/include/linux/skbuff.h > +++ b/include/linux/skbuff.h > @@ -3887,6 +3887,18 @@ static inline bool skb_can_coalesce(struct sk_buff *skb, int i, > return false; > } > > +static inline bool skb_can_coalesce_netmem(struct sk_buff *skb, int i, > + const netmem_ref netmem, int off) > +{ > + if (i) { > + const skb_frag_t *frag = &skb_shinfo(skb)->frags[i - 1]; > + > + return netmem == skb_frag_netmem(frag) && > + off == skb_frag_off(frag) + skb_frag_size(frag); > + } > + return false; > +} > +
Can we limit the code duplication by changing skb_can_coalesce to call skb_can_coalesce_netmem? Or is that too bad for perf?
static inline bool skb_can_coalesce(struct sk_buff *skb, int i, const struct page *page, int off) { skb_can_coalesce_netmem(skb, i, page_to_netmem(page), off); }
It's always safe to cast a page to netmem.
-- Thanks, Mina
|  |