Re: [RFC] net: add TCP fraglist GRO support

From: David Ahern
Date: Tue Apr 23 2024 - 11:03:48 EST


On 4/23/24 4:15 AM, Eric Dumazet wrote:
> I think we should push hard to not use frag_list in drivers :/

why is that? I noticed significant gains for local delivery after adding
frag_list support for H/W GRO. Fewer skbs going up the stack is
essential for high throughput and reducing CPU load.

>
> And GRO itself could avoid building frag_list skbs
> in hosts where forwarding is enabled.

But if the egress device supports SG and the driver understands
frag_list, walking the frag_list should be cheaper than multiple skbs
traversing the forwarding path.

>
> (Note that we also can increase MAX_SKB_FRAGS to 45 these days)

Using 45 frags has other side effects and not something that can be done
universally (hence why it is a config option).

45 frags is for Big TCP at 4kB and that is ~ 3 skbs at the default
setting of 17 which means an skb chain 2 deep. 1 skb going up the stack
vs 3 skbs - that is a big difference.

Was there a conference talk or a discussion around tests performed
comparing use of frag_list with MAX_SKB_FRAGS at 17 vs expanding
MAX_SKB_FRAGS to 45?