linux_old1/net
Eric Dumazet 2c8c56e15d net: introduce SO_INCOMING_CPU
Alternative to RPS/RFS is to use hardware support for multiple
queues.

Then split a set of million of sockets into worker threads, each
one using epoll() to manage events on its own socket pool.

Ideally, we want one thread per RX/TX queue/cpu, but we have no way to
know after accept() or connect() on which queue/cpu a socket is managed.

We normally use one cpu per RX queue (IRQ smp_affinity being properly
set), so remembering on socket structure which cpu delivered last packet
is enough to solve the problem.

After accept(), connect(), or even file descriptor passing around
processes, applications can use :

 int cpu;
 socklen_t len = sizeof(cpu);

 getsockopt(fd, SOL_SOCKET, SO_INCOMING_CPU, &cpu, &len);

And use this information to put the socket into the right silo
for optimal performance, as all networking stack should run
on the appropriate cpu, without need to send IPI (RPS/RFS).

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-11-11 13:00:06 -05:00
..
6lowpan ieee802154: 6lowpan: rename process_data and lowpan_process_data 2014-10-27 15:51:16 +01:00
9p 9p/trans_virtio: enable VQs early 2014-10-15 10:25:04 +10:30
802 net: set name_assign_type in alloc_netdev() 2014-07-15 16:12:48 -07:00
8021q net: better IFF_XMIT_DST_RELEASE support 2014-10-07 13:22:11 -04:00
appletalk net: Add and use skb_copy_datagram_msg() helper. 2014-11-05 16:46:40 -05:00
atm net: Add and use skb_copy_datagram_msg() helper. 2014-11-05 16:46:40 -05:00
ax25 net: Add and use skb_copy_datagram_msg() helper. 2014-11-05 16:46:40 -05:00
batman-adv batman-adv: replace strnicmp with strncasecmp 2014-10-14 02:18:24 +02:00
bluetooth Merge tag 'master-2014-11-04' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next 2014-11-10 14:34:59 -05:00
bridge Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-11-06 22:01:18 -05:00
caif net: Add and use skb_copy_datagram_msg() helper. 2014-11-05 16:46:40 -05:00
can can: add hash based access to single EFF frame filters 2014-05-19 09:38:24 +02:00
ceph Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client 2014-10-15 06:46:01 +02:00
core net: introduce SO_INCOMING_CPU 2014-11-11 13:00:06 -05:00
dcb dcbnl : Fix misleading dcb_app->priority explanation 2014-07-30 17:21:05 -07:00
dccp dccp: Convert DCCP_WARN to net_warn_ratelimited 2014-11-08 21:22:54 -05:00
decnet af_decnet: Use time_after_eq 2014-08-22 12:23:11 -07:00
dns_resolver Merge commit 'v3.16' into next 2014-10-01 00:44:04 +10:00
dsa Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-11-06 22:01:18 -05:00
ethernet net: Add function for parsing the header length out of linear ethernet frames 2014-09-05 17:47:02 -07:00
hsr net/hsr: Remove left-over never-true conditional code. 2014-07-11 15:04:40 -07:00
ieee802154 Merge tag 'master-2014-11-04' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next 2014-11-10 14:34:59 -05:00
ipv4 net: introduce SO_INCOMING_CPU 2014-11-11 13:00:06 -05:00
ipv6 net: introduce SO_INCOMING_CPU 2014-11-11 13:00:06 -05:00
ipx net: Add and use skb_copy_datagram_msg() helper. 2014-11-05 16:46:40 -05:00
irda net: Add and use skb_copy_datagram_msg() helper. 2014-11-05 16:46:40 -05:00
iucv net: Add and use skb_copy_datagram_msg() helper. 2014-11-05 16:46:40 -05:00
key net: Add and use skb_copy_datagram_msg() helper. 2014-11-05 16:46:40 -05:00
l2tp net: Add and use skb_copy_datagram_msg() helper. 2014-11-05 16:46:40 -05:00
lapb lapb: move EXPORT_SYMBOL after functions. 2014-10-24 15:51:42 -04:00
llc net: Add and use skb_copy_datagram_msg() helper. 2014-11-05 16:46:40 -05:00
mac80211 mac80211: replace restart_complete() with reconfig_complete() 2014-11-04 13:49:00 +01:00
mac802154 mac802154: add basic support for monitor 2014-10-29 23:07:46 +01:00
mpls net: Remove MPLS GSO feature. 2014-11-05 23:52:33 -08:00
netfilter ipvs: Avoid null-pointer deref in debug code 2014-10-28 09:48:31 +09:00
netlabel netlabel: kernel-doc warning fix 2014-10-09 01:40:05 -04:00
netlink net: Add and use skb_copy_datagram_msg() helper. 2014-11-05 16:46:40 -05:00
netrom net: Add and use skb_copy_datagram_msg() helper. 2014-11-05 16:46:40 -05:00
nfc net: Add and use skb_copy_datagram_msg() helper. 2014-11-05 16:46:40 -05:00
openvswitch openvswitch: Avoid NULL mask check while building mask 2014-11-05 23:52:35 -08:00
packet net: Add and use skb_copy_datagram_msg() helper. 2014-11-05 16:46:40 -05:00
phonet net: Add and use skb_copy_datagram_msg() helper. 2014-11-05 16:46:40 -05:00
rds Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-10-18 09:31:37 -07:00
rfkill net: rfkill: kernel-doc warning fixes 2014-10-09 11:16:15 +02:00
rose net: Add and use skb_copy_datagram_msg() helper. 2014-11-05 16:46:40 -05:00
rxrpc net: Add and use skb_copy_datagram_msg() helper. 2014-11-05 16:46:40 -05:00
sched sched: fix act file names in header comment 2014-11-06 15:04:41 -05:00
sctp net: introduce SO_INCOMING_CPU 2014-11-11 13:00:06 -05:00
sunrpc Merge branch 'for-3.18' of git://linux-nfs.org/~bfields/linux 2014-10-08 12:51:44 -04:00
tipc net: Add and use skb_copy_datagram_msg() helper. 2014-11-05 16:46:40 -05:00
unix net: Add and use skb_copy_datagram_msg() helper. 2014-11-05 16:46:40 -05:00
vmw_vsock net: Add and use skb_copy_datagram_msg() helper. 2014-11-05 16:46:40 -05:00
wimax wimax: convert printk to pr_foo() 2014-10-07 20:28:44 -04:00
wireless This relatively large batch of changes is comprised of the 2014-11-04 16:18:12 -05:00
x25 net: Add and use skb_copy_datagram_msg() helper. 2014-11-05 16:46:40 -05:00
xfrm net: skb_fclone_busy() needs to detect orphaned skb 2014-10-30 19:58:30 -04:00
Kconfig bpf: split eBPF out of NET 2014-10-27 19:09:59 -04:00
Makefile 6lowpan: introduce new net/6lowpan directory 2014-07-12 01:53:30 +02:00
compat.c net: sendmsg: fix NULL pointer dereference 2014-07-29 12:20:22 -07:00
nonet.c
socket.c File locking related changes for v3.18 (pile #1) 2014-10-11 13:21:34 -04:00
sysctl_net.c