[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20170322.203618.972117086361436133.davem@davemloft.net>
Date: Wed, 22 Mar 2017 20:36:18 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: subashab@...eaurora.org
Cc: netdev@...r.kernel.org, eric.dumazet@...il.com,
stephen@...workplumber.org, tom@...bertland.com
Subject: Re: [PATCH net-next v4] net: Add sysctl to toggle early demux for
tcp and udp
From: David Miller <davem@...emloft.net>
Date: Wed, 22 Mar 2017 19:43:57 -0700 (PDT)
> From: Subash Abhinov Kasiviswanathan <subashab@...eaurora.org>
> Date: Wed, 22 Mar 2017 20:00:41 -0600
>
>> Certain system process significant unconnected UDP workload.
>> It would be preferrable to disable UDP early demux for those systems
>> and enable it for TCP only.
>>
>> By disabling UDP demux, we see these slight gains on an ARM64 system-
>> 782 -> 788Mbps unconnected single stream UDPv4
>> 633 -> 654Mbps unconnected UDPv4 different sources
>>
>> The performance impact can change based on CPU architecure and cache
>> sizes. There will not much difference seen if entire UDP hash table
>> is in cache.
>>
>> Both sysctls are enabled by default to preserve existing behavior.
>>
>> v1->v2: Change function pointer instead of adding conditional as
>> suggested by Stephen.
>>
>> v2->v3: Read once in callers to avoid issues due to compiler
>> optimizations. Also update commit message with the tests.
>>
>> v3>v4: Store and use read once result instead of querying pointer
>> again incorrectly.
>>
>> Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@...eaurora.org>
>> Suggested-by: Eric Dumazet <edumazet@...gle.com>
>
> Applied, thanks.
This doesn't build with ipv6 as a module:
net/built-in.o: In function `proc_tcp_early_demux':
sysctl_net_ipv4.c:(.text+0x145cfc): undefined reference to `tcp_v6_early_demux_configure'
net/built-in.o: In function `proc_udp_early_demux':
sysctl_net_ipv4.c:(.text+0x145d4c): undefined reference to `udp_v6_early_demux_configure'
Makefile:983: recipe for target 'vmlinux' failed
Powered by blists - more mailing lists