android_kernel_oneplus_msm8998/net
Subash Abhinov Kasiviswanathan 03a5bcaa7e net: ipv6: Add early demux handler for UDP unicast
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

CRs-Fixed: 1114946
Change-Id: I2a59058656863c2e20629fe30fbbe3847319f439
Git-commit: 5425077d73e0c8e7e9267ca8397cc0e2293c1fb9
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-03-29 16:01:49 -07:00
..
6lowpan
9p
802
8021q net: add recursion limit to GRO 2016-11-15 07:46:38 +01:00
appletalk
atm
ax25 ax25: Fix segfault after sock connection timeout 2017-02-04 09:45:09 +01:00
batman-adv batman-adv: Check for alloc errors when preparing TT local data 2016-12-15 08:49:23 -08:00
bluetooth Merge branch 'v4.4-16.09-android-tmp' into lsk-v4.4-16.09-android 2016-12-16 13:52:17 -08:00
bridge Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2017-02-06 12:03:08 +08:00
caif net: caif: fix misleading indentation 2016-09-30 10:18:35 +02:00
can can: Fix kernel panic at security_sock_rcv_skb 2017-02-18 16:39:26 +01:00
ceph libceph: verify authorize reply on connect 2017-01-09 08:07:52 +01:00
core Merge tag v4.4.55 into branch 'msm-4.4' 2017-03-23 03:22:14 -07:00
dcb
dccp dccp: fix freeing skb too early for IPV6_RECVPKTINFO 2017-02-26 11:07:50 +01:00
decnet Revert "Merge remote-tracking branch 'msm-4.4/tmp-510d0a3f' into msm-4.4" 2016-08-26 14:34:05 -07:00
dns_resolver
dsa net: dsa: Bring back device detaching in dsa_slave_suspend() 2017-02-04 09:45:10 +01:00
ethernet net: introduce device min_header_len 2017-02-18 16:39:27 +01:00
hsr
ieee802154
ipc_router net: ipc_router: Register services only on client port 2016-12-15 08:16:35 -07:00
ipv4 Merge tag v4.4.55 into branch 'msm-4.4' 2017-03-23 03:22:14 -07:00
ipv6 net: ipv6: Add early demux handler for UDP unicast 2017-03-29 16:01:49 -07:00
ipx
irda irda: Fix lockdep annotations in hashbin_delete(). 2017-02-26 11:07:50 +01:00
iucv
key
l2tp Merge tag v4.4.55 into branch 'msm-4.4' 2017-03-23 03:22:14 -07:00
l3mdev
lapb
llc net/llc: avoid BUG_ON() in skb_orphan() 2017-02-26 11:07:49 +01:00
mac80211 Merge tag v4.4.55 into branch 'msm-4.4' 2017-03-23 03:22:14 -07:00
mac802154
mpls mpls: find_outdev: check for err ptr in addition to NULL check 2016-04-20 15:42:07 +09:00
netfilter Merge tag 'lsk-v4.4-16.12-android' into branch 'msm-4.4' 2017-02-28 17:10:49 -08:00
netlabel netlabel: add address family checks to netlbl_{sock,req}_delattr() 2016-08-20 18:09:22 +02:00
netlink Merge tag 'lsk-v4.4-16.12-android' into branch 'msm-4.4' 2017-02-28 17:10:49 -08:00
netrom
nfc
openvswitch openvswitch: maintain correct checksum state in conntrack actions 2017-02-04 09:45:09 +01:00
packet packet: Do not call fanout_release from atomic contexts 2017-02-26 11:07:50 +01:00
phonet
rds rds: fix an infoleak in rds_inc_info_copy 2016-09-15 08:27:51 +02:00
rfkill Merge remote-tracking branch 'origin/tmp-917a9a9133a6' into lsk 2016-07-12 11:40:49 -07:00
rmnet_data net: rmnet_data: Add support to configure custom device name 2017-03-22 12:55:20 -06:00
rose rose: limit sk_filter trim to payload 2016-11-15 14:54:51 -07:00
rxrpc
sched Merge tag 'lsk-v4.4-17.02-android' into branch 'msm-4.4' 2017-03-18 08:55:10 -07:00
sctp sctp: avoid BUG_ON on sctp_wait_for_sndbuf 2017-02-18 16:39:27 +01:00
sunrpc svcrpc: fix oops in absence of krb5 module 2017-02-09 08:02:45 +01:00
switchdev switchdev: pass pointer to fib_info instead of copy 2016-06-24 10:18:16 -07:00
tipc tipc: fix NULL pointer dereference in shutdown() 2016-09-30 10:18:36 +02:00
unix af_unix: move unix_mknod() out of bindlock 2017-02-04 09:45:09 +01:00
vmw_vsock Revert "Merge remote-tracking branch 'msm-4.4/tmp-510d0a3f' into msm-4.4" 2016-08-26 14:34:05 -07:00
wimax
wireless msm: wlan: Change EIRP value for country China 2017-03-23 16:02:02 +05:30
x25 Revert "Merge remote-tracking branch 'msm-4.4/tmp-510d0a3f' into msm-4.4" 2016-08-26 14:34:05 -07:00
xfrm net: Revert upstream changes which break routing in tunnel scenarios 2016-07-21 10:58:54 -06:00
compat.c
Kconfig Revert "net: activity_stats: Add statistics for network transmission activity" 2016-07-28 19:47:52 -07:00
Makefile Revert "net: activity_stats: Add statistics for network transmission activity" 2016-07-28 19:47:52 -07:00
socket.c Merge tag v4.4.55 into branch 'msm-4.4' 2017-03-23 03:22:14 -07:00
sysctl_net.c net: Use ns_capable_noaudit() when determining net sysctl permissions 2016-09-15 08:27:50 +02:00