David S. Miller
7adc3830f9
[TCP]: Improve ipv4 established hash function.
...
If all of the entropy is in the local and foreign addresses,
but xor'ing together would cancel out that entropy, the
current hash performs poorly.
Suggested by Cosmin Ratiu:
Basically, the situation is as follows: There is a client
machine and a server machine. Both create 15000 virtual
interfaces, open up a socket for each pair of interfaces and
do SIP traffic. By profiling I noticed that there is a lot of
time spent walking the established hash chains with this
particular setup.
The addresses were distributed like this: client interfaces
were 198.18.0.1/16 with increments of 1 and server interfaces
were 198.18.128.1/16 with increments of 1. As I said, there
were 15000 interfaces. Source and destination ports were 5060
for each connection. So in this case, ports don't matter for
hashing purposes, and the bits from the address pairs used
cancel each other, meaning there are no differences in the
whole lot of pairs, so they all end up in the same hash chain.
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-03-04 14:28:41 -08:00
..
9p
9p: add support for sticky bit
2008-02-06 19:25:06 -06:00
bluetooth
[NET]: Remove FASTCALL macro
2008-01-28 14:57:23 -08:00
irda
[IrDA]: Irport removal - part 1
2008-01-28 15:08:10 -08:00
iucv
netfilter
[NETFILTER]: nf_conntrack: fix ct_extend ->move operation
2008-02-07 17:56:34 -08:00
netns
[NETFILTER]: arp_tables: per-netns arp_tables FILTER
2008-01-31 19:27:41 -08:00
sctp
[SCTP]: Update AUTH structures to match declarations in draft-16.
2008-02-28 16:45:04 -05:00
tc_act
tipc
[TIPC]: Kill unused static inline (x5)
2008-02-07 18:17:13 -08:00
act_api.h
[NET_SCHED]: act_api: use PTR_ERR in tcf_action_init/tcf_action_get
2008-01-28 15:11:17 -08:00
addrconf.h
[IPV4]: Enable use of 240/4 address space.
2008-01-28 15:08:44 -08:00
af_rxrpc.h
af_unix.h
[AF_UNIX]: Remove unused declaration of sysctl_unix_max_dgram_qlen.
2008-01-28 14:57:13 -08:00
ah.h
arp.h
[NETFILTER]: ebtables: remove casts, use consts
2008-01-31 19:27:33 -08:00
atmclip.h
ax25.h
[AX25] ax25_ds_timer: use mod_timer instead of add_timer
2008-02-12 17:53:34 -08:00
ax88796.h
cfg80211.h
cfg80211/nl80211: implement station attribute retrieval
2008-01-28 14:59:52 -08:00
checksum.h
[NET]: Move netfilter checksum helpers to net/core/utils.c
2008-01-28 14:55:14 -08:00
cipso_ipv4.h
compat.h
datalink.h
dn.h
dn_dev.h
dn_fib.h
dn_neigh.h
dn_nsp.h
dn_route.h
dsfield.h
[NET]: Constify include/net/dsfield.h
2008-01-28 14:55:58 -08:00
dst.h
[DST]: shrinks sizeof(struct rtable) by 64 bytes on x86_64
2008-01-28 15:10:41 -08:00
esp.h
[IPSEC]: Use crypto_aead and authenc in ESP
2008-01-31 19:27:02 -08:00
fib_rules.h
[NETNS]: Process FIB rule action in the context of the namespace.
2008-01-28 15:08:14 -08:00
flow.h
[IPV4]: Remove unused multipath cached routing defintion in net/flow.h
2008-01-28 15:00:20 -08:00
gen_stats.h
[NET_SCHED]: Convert packet schedulers from rtnetlink to new netlink API
2008-01-28 15:11:10 -08:00
genetlink.h
icmp.h
ieee80211.h
ieee80211: fix misannotations
2008-01-28 15:08:48 -08:00
ieee80211_crypt.h
ieee80211_radiotap.h
ieee80211softmac.h
ieee80211softmac_wx.h
if_inet6.h
[IPV6]: Reorg struct ifmcaddr6 to save some bytes
2008-02-03 04:28:54 -08:00
inet6_connection_sock.h
inet6_hashtables.h
[SOCK] proto: Add hashinfo member to struct proto
2008-02-03 04:28:52 -08:00
inet_common.h
[INET]: Remove leftover prototypes from include/net/inet_common.h
2007-11-12 21:02:51 -08:00
inet_connection_sock.h
[SOCK] proto: Add hashinfo member to struct proto
2008-02-03 04:28:52 -08:00
inet_ecn.h
[INET]: Give outer DSCP directly to ip*_copy_dscp
2008-01-28 14:53:45 -08:00
inet_frag.h
[NETNS][FRAGS]: Make the pernet subsystem for fragments.
2008-01-28 15:10:40 -08:00
inet_hashtables.h
[INET]: Fix accidentally broken inet(6)_hash_connect's port offset calculations.
2008-02-05 03:14:44 -08:00
inet_sock.h
[TCP]: Improve ipv4 established hash function.
2008-03-04 14:28:41 -08:00
inet_timewait_sock.h
[INET_TIMEWAIT_SOCK]: Reorganize struct inet_timewait_sock to save some bytes
2008-02-03 04:28:54 -08:00
inetpeer.h
[INET]: Use list_head-s in inetpeer.c
2007-11-12 21:27:28 -08:00
ip.h
[NETNS][FRAGS]: Make the mem counter per-namespace.
2008-01-28 15:10:36 -08:00
ip6_checksum.h
ip6_fib.h
[IPV6] Minor cleanup: remove unused definitions in net/ip6_fib.h
2008-02-07 18:11:49 -08:00
ip6_route.h
[IPV6] Minor clenup: remove two unused definitions in net/ip6_route.h
2008-02-07 18:10:19 -08:00
ip6_tunnel.h
[IP_TUNNEL]: Don't limit the number of tunnels with generic name explicitly.
2008-02-23 20:19:20 -08:00
ip_fib.h
[IPV4]: Fix compile error building without CONFIG_FS_PROC
2008-02-05 02:54:16 -08:00
ip_vs.h
[IPVS]: Switch to using ctl_paths.
2008-01-28 15:01:08 -08:00
ipcomp.h
ipconfig.h
ipip.h
[IPV4]: Add ip_local_out
2008-01-28 14:53:47 -08:00
ipv6.h
[IPV6]: Fix sysctl compilation error.
2008-02-05 02:57:59 -08:00
ipx.h
iw_handler.h
lapb.h
llc.h
llc_c_ac.h
llc_c_ev.h
llc_c_st.h
llc_conn.h
llc_if.h
llc_pdu.h
llc_s_ac.h
llc_s_ev.h
llc_s_st.h
llc_sap.h
mac80211.h
mac80211: add unified BSS configuration
2008-01-28 15:09:43 -08:00
mip6.h
ndisc.h
[IPV6]: remove unused method declaration (net/ndisc.h).
2008-02-12 22:06:53 -08:00
neighbour.h
[ARP]: neigh_parms_put(destroy) are essentially local to core/neighbour.c.
2008-01-28 15:02:11 -08:00
net_namespace.h
[NETFILTER]: x_tables: per-netns xt_tables
2008-01-31 19:27:35 -08:00
netdma.h
netevent.h
[NET]: Remove unnecessary inclusion of dst.h
2008-01-28 14:53:38 -08:00
netlabel.h
NetLabel: introduce a new kernel configuration API for NetLabel
2008-02-05 09:44:20 -08:00
netlink.h
[NETLINK]: Add nla_append()
2008-01-28 15:11:09 -08:00
netrom.h
nexthop.h
p8022.h
pkt_cls.h
[NET_SCHED]: Constify struct tcf_ext_map
2008-01-31 19:28:34 -08:00
pkt_sched.h
[NET_SCHED]: Convert packet schedulers from rtnetlink to new netlink API
2008-01-28 15:11:10 -08:00
protocol.h
[IPV6]: make inet6_register_protosw to return an error code
2008-01-28 14:57:12 -08:00
psnap.h
raw.h
[RAW]: Wrong content of the /proc/net/raw6.
2008-01-31 19:27:26 -08:00
rawv6.h
[IPv6] RAW: Compact the API for the kernel
2008-01-28 14:54:29 -08:00
red.h
request_sock.h
[INET]: Fix potential kfree on vmalloc-ed area of request_sock_queue
2007-11-15 02:57:06 -08:00
rose.h
route.h
[IPV4] route cache: Introduce rt_genid for smooth cache invalidation
2008-01-31 19:28:27 -08:00
rtnetlink.h
sch_generic.h
[NET_SCHED]: Convert classifiers from rtnetlink to new netlink API
2008-01-28 15:11:11 -08:00
scm.h
pid namespaces: changes to show virtual ids to user
2007-10-19 11:53:40 -07:00
slhc_vj.h
snmp.h
[XFRM]: Define packet dropping statistics.
2008-01-28 14:59:38 -08:00
sock.h
net: fix kernel-doc warnings in header files
2008-02-18 20:52:13 -08:00
syncppp.h
tcp.h
[TCP]: Uninline tcp_is_cwnd_limited
2008-01-28 15:01:48 -08:00
tcp_states.h
timewait_sock.h
transp_v6.h
[IPV6]: make the protocol initialization to return an error code
2008-01-28 14:57:13 -08:00
udp.h
[NET]: prot_inuse cleanups and optimizations
2008-01-28 15:00:36 -08:00
udplite.h
[UDP]: Restore missing inDatagrams increments
2008-01-28 14:56:33 -08:00
wext.h
wireless.h
x25.h
x25device.h
xfrm.h
[IPSEC]: Fix bogus usage of u64 on input sequence number
2008-02-12 22:50:35 -08:00