On Thu, 2012-05-03 at 23:04 +0530, rajman mekaco wrote:The user_shm_lock and user_shm_unlock functions use a single global
spinlock for protecting the user->locked_shm.
Are you very sure its only protecting user state? This changelog doesn't
convince me you've gone through everything and found it good.
This is an overhead for multiple CPUs calling this code even if they
are having different user_struct.
Remove the global shmlock_user_lock and introduce and use a new
spinlock inside of the user_struct structure.
While I don't immediately see anything wrong with it, I doubt its
useful. What workload run with enough users that this makes a difference
one way or another?