One correspondent wondered how representative the AIM7 workload is,
fearing that my discovery of the awful scaling without that
"pagecache_lock patch" might be peculiar to a non-Real World system
workload. So I performed another set of tests of the 2.4.2 kernel vs.
2.4.2+"pagecache_lock patch". This time I did the classic kernel make,
using -jN to parallelize as much as possible.
Specifically: make ARCH=mips -j<N> MAKE="make ARCH=mips -j<N>"
(That should do it, right?)
The 2.4.2+pagecache_lock kernel is 19% faster than the baseline 2.4.2
kernel for -j4, and 37% faster for -j8. By comparison, with AIM7 at 8p
the 2.4.2+pagecache_lock kernel is 63% faster. Okay, 37% isn't 63%, but
the kernel 'make' runs with some idle time and it's a different workload
than AIM7. The point still remains: the "pagecache_lock patch" is a
significant improvement to scaling above 4p.
For some reason, the kernel make misbehaves above -j8. It's as though
'make' believes I've asked for something like -j500. Hundreds of
processes appear on the runqueue and the system grinds. Otherwise, I
would have liked to do -j16 and -j32, which I believe would have
demonstrated significantly better scaling for the "pagecache_lock patch"