From: Subash Abhinov Kasiviswanathan <subas...@codeaurora.org> Date: Wed, 8 Mar 2017 16:36:49 -0700
> While running a single stream UDPv6 test, we observed that amount > of CPU spent in NET_RX softirq was much greater than UDPv4 for an > equivalent receive rate. The test here was run on an ARM64 based > Android system. On further analysis with perf, we found that UDPv6 > was spending significant time in the statistics netfilter targets > which did socket lookup per packet. These statistics rules perform > a lookup when there is no socket associated with the skb. Since > there are multiple instances of these rules based on UID, there > will be equal number of lookups per skb. > > By introducing early demux for UDPv6, we avoid the redundant lookups. > This also helped to improve the performance (800Mbps -> 870Mbps) on a > CPU limited system in a single stream UDPv6 receive test with 1450 > byte sized datagrams using iperf. > > v1->v2: Use IPv6 cookie to validate dst instead of 0 as suggested > by Eric > > Signed-off-by: Subash Abhinov Kasiviswanathan <subas...@codeaurora.org> Applied, thanks.