linux-stable/arch/mips
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
..
alchemy MIPS: Alchemy: DB1300: Add touch penirq support 2014-09-22 13:35:47 +02:00
ar7 MIPS: Restore init.h usage to arch/mips/ar7/time.c 2014-03-26 23:09:23 +01:00
ath79 MIPS: ath79: Fix compilation error when CONFIG_PCI is disabled 2014-10-22 23:16:59 +02:00
bcm47xx Merge tag 'master-2014-09-16' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next 2014-09-26 15:39:24 -04:00
bcm63xx MIPS: BCM63xx: delete double assignment 2014-08-26 02:18:58 +02:00
boot MIPS: ralink: Move device-trees to arch/mips/boot/dts/ 2014-09-22 13:35:50 +02:00
cavium-octeon MIPS: Octeon: Remove special case for simulator command line. 2014-10-22 19:37:03 +02:00
cobalt
configs Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2014-10-18 14:24:36 -07:00
dec Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2014-06-09 18:10:34 -07:00
emma
fw MIPS: DEC/SNI: O32 wrapper stack switching fixes 2014-05-13 00:29:35 +02:00
include net: introduce SO_INCOMING_CPU 2014-11-11 13:00:06 -05:00
jazz
jz4740 This is the bulk of GPIO changes for the v3.17 development 2014-08-08 18:00:35 -07:00
kernel MIPS: idle: Remove leftover __pastwait symbol and its references 2014-10-23 19:24:05 +02:00
kvm KVM: remove garbage arg to *hardware_{en,dis}able 2014-08-29 16:35:55 +02:00
lantiq Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2014-10-18 14:24:36 -07:00
lasat MIPS: Lasat: Add missing CONFIG_PROC_FS dependency to PICVUE_PROC 2014-10-21 17:35:44 +02:00
lib MIPS: Use WSBH/DSBH/DSHD on Loongson 3A 2014-09-22 13:35:46 +02:00
loongson MIPS: loongson2_cpufreq: Fix CPU clock rate setting mismerge 2014-10-22 19:10:42 +02:00
loongson1 MIPS: Disable MIPS16/microMIPS crap for platforms not supporting these ASEs. 2014-05-23 15:12:37 +02:00
math-emu MIPS: cp1emu: Fix ISA restrictions for cop1x_op instructions 2014-10-21 16:34:41 +02:00
mm MIPS: tlbex: Properly fix HUGE TLB Refill exception handler 2014-10-22 19:29:08 +02:00
mti-malta MIPS: Malta: Do not build the malta-amon.c file if CMP is not enabled 2014-10-23 20:05:55 +02:00
mti-sead3 MIPS: SEAD3: Fix I2C device registration. 2014-10-24 13:34:42 +02:00
net Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2014-10-18 14:24:36 -07:00
netlogic MIPS: Netlogic: Move device-trees to arch/mips/boot/dts/ 2014-09-22 13:35:50 +02:00
oprofile MIPS: Add support for the M5150 processor 2014-03-26 23:09:22 +01:00
paravirt mips: Update the email address of Geert Uytterhoeven 2014-06-02 16:34:41 +02:00
pci pci: pci-lantiq: remove duplicate check on resource 2014-10-22 18:14:04 +02:00
pmcs-msp71xx MIPS: MSP71xx: Fix build error 2014-10-24 02:37:18 +02:00
pnx833x MIPS: PNX833x: Remove checks for CONFIG_I2C_PNX0105 2014-05-23 15:12:39 +02:00
power nosave: consolidate __nosave_{begin,end} in <asm/sections.h> 2014-10-09 22:26:04 -04:00
ralink MIPS: ralink: remove deprecated IRQF_DISABLED 2014-09-29 19:46:32 +02:00
rb532 Merge branch '3.16-fixes' into mips-for-linux-next 2014-08-02 00:07:03 +02:00
sgi-ip22 MIPS: IP22: Add missing put_device call 2014-07-30 13:27:51 +02:00
sgi-ip27 MIPS: SMP: Remove plat_smp_ops cpus_done method. 2014-05-27 11:06:42 +02:00
sgi-ip32
sibyte MIPS: Sibyte: Include the swarm subdir to the sb1250 LittleSur builds 2014-10-23 13:52:49 +02:00
sni
txx9 driver:gpio remove all usage of gpio_remove retval in driver 2014-09-18 11:03:10 -07:00
vr41xx
Kbuild MIPS: net: Add BPF JIT 2014-05-30 16:10:20 +02:00
Kbuild.platforms MIPS: Enable build for new system 'paravirt' 2014-06-02 12:34:20 +02:00
Kconfig MIPS: Kconfig: Add missing MIPS_CPS dependencies to PM and cpuidle 2014-10-23 19:58:05 +02:00
Kconfig.debug MIPS: MT: Remove SMTC support 2014-05-24 00:07:01 +02:00
Makefile MIPS: Add support for building device-tree binaries 2014-09-22 13:35:49 +02:00