Re: [PATCH 01/11] quota: Improve locking

From: Andrew Morton
Date: Sat Jan 24 2009 - 02:50:14 EST


On Fri, 16 Jan 2009 19:08:09 +0100 Jan Kara <jack@xxxxxxx> 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.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/