aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/include/asm/spinlock_types.h
diff options
context:
space:
mode:
authorTony Luck <tony.luck@intel.com>2009-09-25 08:42:16 -0700
committerTony Luck <tony.luck@intel.com>2009-09-25 08:42:16 -0700
commit2c86963b093c1a0887dfc6b32c6e5ea3a80f2922 (patch)
treed1ed58dd0a644dd670e3724a575112fedd4b4250 /arch/ia64/include/asm/spinlock_types.h
parentMerge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 (diff)
downloadlinux-dev-2c86963b093c1a0887dfc6b32c6e5ea3a80f2922.tar.xz
linux-dev-2c86963b093c1a0887dfc6b32c6e5ea3a80f2922.zip
[IA64] implement ticket locks for Itanium
Back in January 2008 Nick Piggin implemented "ticket" spinlocks for X86 (See commit 314cdbefd1fd0a7acf3780e9628465b77ea6a836). IA64 implementation has a couple of differences because of the available atomic operations ... e.g. we have no fetchadd2 instruction that operates on a 16-bit quantity so we make ticket locks use a 32-bit word for each of the current ticket and now-serving values. Performance on uncontended locks is about 8% worse than the previous implementation, but this seems a good trade for determinism in the contended case. Performance impact on macro-level benchmarks is in the noise. Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/include/asm/spinlock_types.h')
-rw-r--r--arch/ia64/include/asm/spinlock_types.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/ia64/include/asm/spinlock_types.h b/arch/ia64/include/asm/spinlock_types.h
index 474e46f1ab4a..b61d136d9bc2 100644
--- a/arch/ia64/include/asm/spinlock_types.h
+++ b/arch/ia64/include/asm/spinlock_types.h
@@ -6,7 +6,7 @@
#endif
typedef struct {
- volatile unsigned int lock;
+ volatile unsigned long lock;
} raw_spinlock_t;
#define __RAW_SPIN_LOCK_UNLOCKED { 0 }