Re: [PATCH v3] net:Add sysctl_max_skb_frags

From: Hannes Frederic Sowa
Date: Wed Feb 03 2016 - 09:04:03 EST


On 03.02.2016 13:20, Herbert Xu wrote:
On Wed, Feb 03, 2016 at 12:36:21PM +0100, Hannes Frederic Sowa wrote:

Agreed that it feels like a hack, but a rather simple one. I would
consider this to be just a performance improvement. We certainly need
a slow-path when virtio drivers submit gso packets to the stack (and
already discussed with Hans). The sysctl can't help here. But without
the sysctl the packets would constantly hit the slow-path in case of
e.g. IPoIB and that would also be rather bad.

So you want to penalise every NIC in the system if just one of
them is broken? This is insane. Just do the partial linearisation
in that one driver that needs it and not only won't you have to
penalise anyone else but you still get the best result for that
driver that needs it.

Most normal Ethernet systems and drivers currently don't need tweating this knob at all, only some special kinds of installations. This patch referred to IPoIB as a possible user which drivers/firmware/cards seem to have this problem. Current behavior just leaves everything as-is.

If you use IPoIB you probably use it quite regular and linearizing an skbs *always* seems to be much more work than simply capping the number of frags globally.

Besides, you have to implement the linearisation anyway because
of virtualisation.

Yes, the slow-path is necessary. But instead of writing a new complicated linearizing function to just reduce the fragments we could also simply linearize it completely and ask the admin to also tune the vm guests.

I only see this tuning in kind in very specific environments where the admins now what they do.

Bye,
Hannes