Messages in this thread | | | Date | Fri, 23 Jan 2009 23:49:12 -0800 | From | Andrew Morton <> | Subject | Re: [PATCH 01/11] quota: Improve locking |
| |
On Fri, 16 Jan 2009 19:08:09 +0100 Jan Kara <jack@suse.cz> wrote:
> static DEFINE_SPINLOCK(dq_list_lock); > +static DEFINE_SPINLOCK(dq_state_lock); > DEFINE_SPINLOCK(dq_data_lock);
The chances are very good that two or even three of these locks will all get placed into the same cacheline in main memory. The effects will be quite bad if different CPUs (or, worse, different nodes) are taking these locks.
For single, kernel-wide locks like these I think we should almost always pad out to a cacheline.
With __cacheline_aligned_in_smp, rather than __cacheline_aligned. Because spinlocks do take space even in uniprocessor builds.
There are probably lots of existing locks which should be converted.
| |