On Fri, Aug 30, 2013 at 03:20:48PM -0400, Waiman Long wrote:
There are more contention in the lglock than I remember for the runSpeaking of lglock, there's a low-hanging fruit in that area: we have
in 3.10. This is an area that I need to look at. In fact, lglock is
becoming a problem for really large machine with a lot of cores. We
have a prototype 16-socket machine with 240 cores under development.
The cost of doing a lg_global_lock will be very high in that type of
machine given that it is already high in this 80-core machine. I
have been thinking about instead of per-cpu spinlocks, we could
change the locking to per-node level. While there will be more
contention for lg_local_lock, the cost of doing a lg_global_lock
will be much lower and contention within the local die should not be
too bad. That will require either a per-node variable infrastructure
or simulated with the existing per-cpu subsystem.
no reason whatsoever to put anything but regular files with FMODE_WRITE
on the damn per-superblock list - the *only* thing it's used for is
mark_files_ro(), which will skip everything except those. And since
read opens normally outnumber the writes quite a bit... Could you
try the diff below and see if it changes the picture? files_lglock
situation ought to get better...