diff options
author | Jan Kara <jack@suse.cz> | 2009-01-26 15:32:46 +0100 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2009-03-26 02:18:35 +0100 |
commit | c516610cfec5c50f84ff8cc315628548481f4990 (patch) | |
tree | 82d1a46721528dfd088a3edcfe5761a4d62fac26 | |
parent | 884d179dff3aa98a73c3ba9dee05fd6050d664f0 (diff) | |
download | op-kernel-dev-c516610cfec5c50f84ff8cc315628548481f4990.zip op-kernel-dev-c516610cfec5c50f84ff8cc315628548481f4990.tar.gz |
quota: Make global quota locks cacheline aligned
Andrew Morton has suggested that three global quota locks can end up in the
same cacheline which can result in bad cacheline ping-pong on SMP machines.
Make locks cacheline aligned so that we avoid this problem (thanks goes to
Andrew for the idea).
Signed-off-by: Jan Kara <jack@suse.cz>
CC: Andrew Morton <akpm@linux-foundation.org>
-rw-r--r-- | fs/quota/dquot.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c index 28aa146..e840fa2 100644 --- a/fs/quota/dquot.c +++ b/fs/quota/dquot.c @@ -129,9 +129,9 @@ * i_mutex on quota files is special (it's below dqio_mutex) */ -static DEFINE_SPINLOCK(dq_list_lock); -static DEFINE_SPINLOCK(dq_state_lock); -DEFINE_SPINLOCK(dq_data_lock); +static __cacheline_aligned_in_smp DEFINE_SPINLOCK(dq_list_lock); +static __cacheline_aligned_in_smp DEFINE_SPINLOCK(dq_state_lock); +__cacheline_aligned_in_smp DEFINE_SPINLOCK(dq_data_lock); EXPORT_SYMBOL(dq_data_lock); static char *quotatypes[] = INITQFNAMES; |