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>
This commit is contained in:
committed by
Simon Horman
parent
b17fc9963f
commit
6e67e586e7
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user