Re: gso: Handle new frag_list of frags GRO packets

Eric Dumazet
2013-11-13T02:14:30Z

On Wed, 2013-11-13 at 09:29 +0800, Herbert Xu wrote:
> On Tue, Nov 12, 2013 at 05:13:43PM -0800, Eric Dumazet wrote:
> >
> > Note this pskb_trim() will reallocate/copy nskb head completely, since
> > nskb is a clone. (And increment page counts of frags, then eventually
> > decrement them)
> >
> > I tested this patch one 'router', and it seems fine, although we consume
> > ~90% more cpu doing the skb_segment() than not doing it.
>
> I presume this is on a NIC that produces completely linear packets?

Yes, I used one host with a Mellanox (mlx4 driver), as the bnx2x 'GRO'
is partially done by the hardware...

> I wonder what happens if we don't convert head_frag to frags and just
> use frag_lists like we used to?

Yep, but this needs quite invasive changes in the GSO stack in general ?

skb_segment() callers would need to know how many MSS are stuffed per
skb, instead of assuming its 1 MSS.