On a second thought, do you think we still need one rwlock per hash chain ?
>

TCP established hash table entries: 1048576 (order: 12, 16777216 bytes)

On this x86_64 machine, we 'waste' 8 MB of ram for those rwlocks.

With RCU, we touch these rwlocks only on TCP connection creation/deletion, maybe we could reduce to one rwlock or a hashed array of 2^N rwlocks (2^N depending on NR_CPUS), like in net/ipv4/route.c ?

TCP connection/deletion can be a rather frequent occurance. Web servers and all, even with persistent connections. Contention there would show-up in a SPECweb benchmark just as an example. SPECweb is a bit involved - especially SPECweb2005. The netperf TCP_CRR or TCP_CC test could be used - likely aggregates of them - to measure things, but it might take more than a small CPU count system to see contention going to a "too small" number of locks.

I suspect that one rwlock would be too small :) Hashed locks might work - would it introduce more cache misses?

rick jones

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to