[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
vmlocking2 branch merged
The vmlocking2 branch was merged into -current earlier today. The global
kernel_lock is now mostly confined to the network stacks, device drivers and
a few file systems like LFS. For many paths in the kernel, it's no longer
taken. When using an machine with multiple CPUs, the system should perform
better on many workoads.
There are some known bugs which I am working on, and without doubt more
will be discovered:
- Write activity to an LFS file system can cause the system to deadlock.
- Unmounting a busy tmpfs can cause a kernel assertion to fail.
For those interested in numbers I did a quick test. The same user install,
machine, source tree etc. were used for all three runs. Note that it's not
an ideal test, the sampling is inaccurate, etc. Also note that with 4 CPUs,
user + system time is close to 4x real time for a fully loaded machine:
make -j16 cleandir:
95.13s real 147.05s user 262.35s system NetBSD 4.0
90.38s real 134.65s user 210.30s system NetBSD 4.99.47
63.94s real 135.64s user 103.73s system NetBSD 4.99.48
So on this system, the kernel part of make -j16 cleandir is now about 2.5
times quicker than NetBSD 4.
Note that a large part of this work was funded by donations to The NetBSD
Foundation - thank you to everyone who has donated. Also, thank you to
everyone who spent time to code for / test the branch, especially YAMAMOTO
Takashi who put a huge amount of time and effort into it.
Main Index |
Thread Index |