]> git.baikalelectronics.ru Git - kernel.git/commit
ipv4: Add sysctl knob to control early socket demux
authorAlexander Duyck <alexander.h.duyck@intel.com>
Thu, 21 Jun 2012 13:58:31 +0000 (13:58 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 23 Jun 2012 00:11:13 +0000 (17:11 -0700)
commit6e56a5a131d138509322ddc18089776fb0f1a009
treee5e1fdadea6ea51b4341017c40906e71c1913774
parent963754e2e587a3cbe5480c1f7281b8a2a2cc07d7
ipv4: Add sysctl knob to control early socket demux

This change is meant to add a control for disabling early socket demux.
The main motivation behind this patch is to provide an option to disable
the feature as it adds an additional cost to routing that reduces overall
throughput by up to 5%.  For example one of my systems went from 12.1Mpps
to 11.6 after the early socket demux was added.  It looks like the reason
for the regression is that we are now having to perform two lookups, first
the one for an established socket, and then the one for the routing table.

By adding this patch and toggling the value for ip_early_demux to 0 I am
able to get back to the 12.1Mpps I was previously seeing.

[ Move local variables in ip_rcv_finish() down into the basic
  block in which they are actually used.  -DaveM ]

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/sysctl.h
include/net/ip.h
kernel/sysctl_binary.c
net/ipv4/ip_input.c
net/ipv4/sysctl_net_ipv4.c