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
[AF_IUCV]: postpone receival of iucv-packets
2007-10-10 16:54:51 -07:00
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
[PKT_SCHED]: Add stateless NAT
2007-10-10 16:53:11 -07:00
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_RXRPC]: Add an interface to the AF_RXRPC module for the AFS filesystem to use
2007-04-26 15:50:17 -07:00
af_unix.h
[AF_UNIX]: Remove unused declaration of sysctl_unix_max_dgram_qlen.
2008-01-28 14:57:13 -08:00
ah.h
[IPSEC]: Get rid of ipv6_{auth,esp,comp}_hdr
2007-10-10 16:55:55 -07:00
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
ax88796: add 93cx6 eeprom support
2007-10-10 16:53:56 -07:00
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
[NetLabel]: consolidate the struct socket/sock handling to just struct sock
2007-06-08 13:33:09 -07:00
compat.h
datalink.h
dn.h
[DECNET]: Another unnecessary net/tcp.h inclusion in net/dn.h
2007-07-10 23:02:12 -07:00
dn_dev.h
dn_fib.h
[DECNet]: Use rtnl registration interface
2007-04-25 22:27:12 -07:00
dn_neigh.h
dn_nsp.h
dn_route.h
[NET]: Wrap netdevice hardware header creation.
2007-10-10 16:52:50 -07:00
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
[GENETLINK]: Dynamic multicast groups.
2007-07-18 15:47:52 -07:00
icmp.h
[IPV4]: Add ICMPMsgStats MIB (RFC 4293)
2007-10-10 16:51:28 -07:00
ieee80211.h
ieee80211: fix misannotations
2008-01-28 15:08:48 -08:00
ieee80211_crypt.h
[PATCH] Update my email address from jkmaline@cc.hut.fi to j@w1.fi
2007-04-28 11:01:01 -04:00
ieee80211_radiotap.h
[MAC80211]: Add get_unaligned to ieee80211_get_radiotap_len
2007-10-10 16:47:40 -07:00
ieee80211softmac.h
[IEEE80211]: Fix softmac lockdep reports.
2007-10-10 16:52:22 -07:00
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
[IPSEC]: Get rid of ipv6_{auth,esp,comp}_hdr
2007-10-10 16:55:55 -07:00
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
[NL80211]: add netlink interface to cfg80211
2007-10-10 16:52:14 -07:00
lapb.h
llc.h
llc_c_ac.h
llc_c_ev.h
llc_c_st.h
llc_conn.h
[NET]: Make socket creation namespace safe.
2007-10-10 16:49:07 -07:00
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
[IPV6] MIP6: Loadable module support for MIPv6.
2007-07-10 22:15:42 -07:00
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
[NET_SCHED]: turn PSCHED_GET_TIME into inline function
2007-04-25 22:27:55 -07:00
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
[ROSE]: Fix rose.ko oops on unload
2007-10-07 23:44:17 -07:00
route.h
[IPV4] route cache: Introduce rt_genid for smooth cache invalidation
2008-01-31 19:28:27 -08:00
rtnetlink.h
[NET]: Make the device list and device lookups per namespace.
2007-10-10 16:49:10 -07:00
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
[NET]: Make the device list and device lookups per namespace.
2007-10-10 16:49:10 -07:00
wireless.h
[WIRELESS] cfg80211: New wireless config infrastructure.
2007-04-25 22:29:41 -07:00
x25.h
x25device.h
xfrm.h
[IPSEC]: Fix bogus usage of u64 on input sequence number
2008-02-12 22:50:35 -08:00