linux/net
Eric Dumazet c25eb3bfb9 net: Convert TCP/DCCP listening hash tables to use RCU
This is the last step to be able to perform full RCU lookups
in __inet_lookup() : After established/timewait tables, we
add RCU lookups to listening hash table.

The only trick here is that a socket of a given type (TCP ipv4,
TCP ipv6, ...) can now flight between two different tables
(established and listening) during a RCU grace period, so we
must use different 'nulls' end-of-chain values for two tables.

We define a large value :

#define LISTENING_NULLS_BASE (1U << 29)

So that slots in listening table are guaranteed to have different
end-of-chain values than slots in established table. A reader can
still detect it finished its lookup in the right chain.

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-11-23 17:22:55 -08:00
..
9p net: remove redundant argument comments 2008-11-21 17:15:03 -08:00
802 hippi: convert driver to net_device_ops 2008-11-20 20:32:15 -08:00
8021q vlan: convert to net_device_ops 2008-11-19 22:42:41 -08:00
appletalk netdevice: safe convert to netdev_priv() #part-4 2008-11-12 23:39:10 -08:00
atm netdevice: safe convert to netdev_priv() #part-4 2008-11-12 23:39:10 -08:00
ax25 net: '&' redux 2008-11-03 18:21:05 -08:00
bluetooth netdevice: safe convert to netdev_priv() #part-4 2008-11-12 23:39:10 -08:00
bridge netdev: add more functions to netdevice ops 2008-11-20 20:14:53 -08:00
can net: Remove CONFIG_KMOD from net/ (towards removing CONFIG_KMOD entirely) 2008-10-16 15:24:51 -07:00
core netdev: add more functions to netdevice ops 2008-11-20 20:14:53 -08:00
dcb DCB: Add support for DCB BCN 2008-11-20 21:10:23 -08:00
dccp dccp: Header option insertion routine for feature-negotiation 2008-11-23 16:10:23 -08:00
decnet net: remove redundant argument comments 2008-11-21 17:15:03 -08:00
dsa Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-11-11 15:43:02 -08:00
econet netns: Use net_eq() to compare net-namespaces for optimization. 2008-07-19 22:34:43 -07:00
ethernet netdev: expose ethernet address primitives 2008-11-19 22:42:31 -08:00
ipv4 net: Convert TCP/DCCP listening hash tables to use RCU 2008-11-23 17:22:55 -08:00
ipv6 net: Convert TCP/DCCP listening hash tables to use RCU 2008-11-23 17:22:55 -08:00
ipx net: '&' redux 2008-11-03 18:21:05 -08:00
irda netdevice: safe convert to netdev_priv() #part-4 2008-11-12 23:39:10 -08:00
iucv iucv: Fix mismerge again. 2008-09-30 03:03:35 -07:00
key af_key: mark policy as dead before destroying 2008-11-06 23:08:37 -08:00
lapb
llc net: remove redundant argument comments 2008-11-21 17:15:03 -08:00
mac80211 net: remove redundant argument comments 2008-11-21 17:15:03 -08:00
netfilter Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-11-11 15:43:02 -08:00
netlabel net: remove redundant argument comments 2008-11-21 17:15:03 -08:00
netlink net: af_netlink should update its inuse counter 2008-11-23 15:48:22 -08:00
netrom net: '&' redux 2008-11-03 18:21:05 -08:00
packet net: af_packet should update its inuse counter 2008-11-19 14:25:35 -08:00
phonet Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-11-20 16:44:00 -08:00
rfkill net: struct device - replace bus_id with dev_name(), dev_set_name() 2008-11-10 13:55:14 -08:00
rose net: '&' redux 2008-11-03 18:21:05 -08:00
rxrpc net: replace NIPQUAD() in net/*/ 2008-10-31 00:54:56 -07:00
sched pkt_sched: sch_drr: Fix qlen in drr_drop() 2008-11-21 04:37:27 -08:00
sctp net: sctp should update its inuse counter 2008-11-17 02:41:00 -08:00
sunrpc Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-11-20 16:44:00 -08:00
tipc tipc: trivial endian annotation in debug statement 2008-11-07 23:37:50 -08:00
unix net: af_unix should use KERN_INFO instead of KERN_DEBUG 2008-11-19 15:48:09 -08:00
wanrouter netdevice wanrouter: Convert directly reference of netdev->priv 2008-11-20 04:26:21 -08:00
wireless wireless: clean up sysfs code using %pM 2008-11-21 11:08:19 -05:00
x25 net: '&' redux 2008-11-03 18:21:05 -08:00
xfrm net: Remove unused parameter of xfrm_gen_index() 2008-11-12 23:28:15 -08:00
compat.c reintroduce accept4 2008-11-19 18:49:57 -08:00
Kconfig net/ieee80211 -> drivers/net/ipw2x00/libipw_* rename 2008-11-21 11:08:18 -05:00
Makefile net/ieee80211 -> drivers/net/ipw2x00/libipw_* rename 2008-11-21 11:08:18 -05:00
nonet.c
socket.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-11-20 16:44:00 -08:00
sysctl_net.c missing bits of net-namespace / sysctl 2008-07-27 09:45:34 -07:00
TUNABLE