Thread (42 messages) 42 messages, 5 authors, 2009-02-20

Re: 32 core net-next stack/netfilter "scaling"

From: Rick Jones <hidden>
Date: 2009-01-27 19:09:01
Also in: netfilter-devel

Rick Jones wrote:
Patrick McHardy wrote:
quoted
Eric Dumazet wrote:
quoted
[PATCH] netfilter: Get rid of central rwlock in tcp conntracking

TCP connection tracking suffers of huge contention on a global rwlock,
used to protect tcp conntracking state.

As each tcp conntrack state have no relations between each others, we
can switch to fine grained lock. Using an array of spinlocks avoids
enlarging size of connection tracking structures, yet giving reasonable
fanout.

tcp_print_conntrack() doesnt need to lock anything to read
ct->proto.tcp.state, so speedup /proc/net/ip_conntrack as well.

nf_conntrack_hash_rnd_initted & nf_conntrack_hash_rnd declared 
read_mostly
 


This looks good to me. Rick, would you like to give it a try?

I'll convert the remaining conntrack protocols when applying it.

I will give it a try and let folks know the results - unless told 
otherwise, I will ass-u-me I only need rerun the "full_iptables" test case.
The runemomniagg2.sh script is still running, but the initial cycles profile 
suggests that the main change is converting the write_lock time into spinlock 
contention time with 78.39% of the cycles spent in ia64_spinlock_contention. 
When the script completes I'll upload the profiles and the netperf results to the 
same base URL as in the basenote under "contrack01/"

rick jones
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help