diff options
author | Hans Schillstrom <hans.schillstrom@ericsson.com> | 2011-01-03 14:44:57 +0100 |
---|---|---|
committer | Simon Horman <horms@verge.net.au> | 2011-01-13 10:30:28 +0900 |
commit | 6e67e586e7289c144d5a189d6e0fa7141d025746 (patch) | |
tree | 33a064ac5fa2e2ac4270c6361d5566bc99c671e6 /include/net/netns | |
parent | b17fc9963f837ef1acfe36e193108fb16ed58647 (diff) | |
download | op-kernel-dev-6e67e586e7289c144d5a189d6e0fa7141d025746.zip op-kernel-dev-6e67e586e7289c144d5a189d6e0fa7141d025746.tar.gz |
IPVS: netns, connection hash got net as param.
Connection hash table is now name space aware.
i.e. net ptr >> 8 is xor:ed to the hash,
and this is the first param to be compared.
The net struct is 0xa40 in size ( a little bit smaller for 32 bit arch:s)
and cache-line aligned, so a ptr >> 5 might be a more clever solution ?
All lookups where net is compared uses net_eq() which returns 1 when netns
is disabled, and the compiler seems to do something clever in that case.
ip_vs_conn_fill_param() have *net as first param now.
Three new inlines added to keep conn struct smaller
when names space is disabled.
- ip_vs_conn_net()
- ip_vs_conn_net_set()
- ip_vs_conn_net_eq()
*v3
moved net compare to the end in "fast path"
Signed-off-by: Hans Schillstrom <hans.schillstrom@ericsson.com>
Acked-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: Simon Horman <horms@verge.net.au>
Diffstat (limited to 'include/net/netns')
-rw-r--r-- | include/net/netns/ip_vs.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/net/netns/ip_vs.h b/include/net/netns/ip_vs.h index bd1dad8..1acfb33 100644 --- a/include/net/netns/ip_vs.h +++ b/include/net/netns/ip_vs.h @@ -66,6 +66,8 @@ struct netns_ipvs { struct ip_vs_cpu_stats __percpu *cpustats; /* Stats per cpu */ seqcount_t *ustats_seq; /* u64 read retry */ + /* ip_vs_conn */ + atomic_t conn_count; /* connection counter */ /* ip_vs_lblc */ int sysctl_lblc_expiration; struct ctl_table_header *lblc_ctl_header; |