From: David Miller <da...@davemloft.net> Date: Wed, 22 Mar 2017 19:43:57 -0700 (PDT)
> From: Subash Abhinov Kasiviswanathan <subas...@codeaurora.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 <subas...@codeaurora.org> >> Suggested-by: Eric Dumazet <eduma...@google.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