On 27.01.2016 16:15, Eric Dumazet wrote:
On Wed, 2016-01-27 at 14:20 +0100, Hans Westgaard Ry wrote:
Devices may have limits on the number of fragments in an skb they support.
Current codebase uses a constant as maximum for number of fragments one
skb can hold and use.
When enabling scatter/gather and running traffic with many small messages
the codebase uses the maximum number of fragments and may thereby violate
the max for certain devices.
The patch introduces a global variable as max number of fragments in
scatter/gather.
Principle looks good, but we have to ask if other skb providers [1] will
add other sysctl, or if we could share a common one ?
If it is a common one, it should be /proc/sys/net/core/... instead
of /proc/sys/net/ipv4/tcp_....
>
Other providers include :
1) GRO stack
2) callers of sock_alloc_send_pskb(), alloc_skb_with_frags(),
sock_alloc_send_skb() ..
I agree, this knob should get a generic name and live in a generic net/
directory to control this globally, so things don't break during
forwarding etc.
It does not solve the problem completely, e.g. when VMs send gso packets
through a vhost-net onto IPoIB, no?
Thanks,
Hannes