[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Name cache locking issue?
Hm, ok... False sharing of the lock itself. I can buy that. However,
I think this strategy is going to need a review as soon as we support
processors coming and going.
On Apr 12, 2008, at 7:23 AM, Andrew Doran <ad%netbsd.org@localhost> wrote:
On Fri, Apr 11, 2008 at 07:21:11PM -0700, Jason Thorpe wrote:
We should make it MI.
But why not just use an rwlock?
rwlocks are slow on MP systems. The below is output from a test
have, running on a dual core Intel chip. It creates one thread per
each thread does the same task in a loop. It's using the pthread
for the purposes of the test the locks work the same way as the
281814791 function calls / sec
32194373 thread private, uncontested mutex acquire/release / sec
20950637 thread private, uncontested rwlock acquire/release / sec
5605204 dummy systems calls / sec
3420158 global, uncontested rwlock acquire/release / sec
On Apr 11, 2008, at 4:59 PM, Andrew Doran <ad%netbsd.org@localhost> wrote:
On Fri, Apr 11, 2008 at 04:21:17PM -0700, Jason Thorpe wrote:
On Apr 11, 2008, at 8:25 AM, Andrew Doran wrote:
Module Name: src
Committed By: ad
Date: Fri Apr 11 15:25:24 UTC 2008
src/sys/kern: kern_cpu.c vfs_cache.c
src/sys/sys: cpu_data.h namei.src
Restructure the name cache code to eliminate most lock contention
resulting from forward lookups. Discussed on tech-kern@.
Hm, is cache_lock_cpus() safe if CPU_INFO_ITERATOR() happens to
the CPUs in a different order on different CPUs?
A quick check shows that they all start from the same point (the
so it should be OK. I guess we should document that somewhere, and
rid of the MD macro altogether.
Main Index |
Thread Index |