[IA64] implement ticket locks for Itanium
Back in January 2008 Nick Piggin implemented "ticket" spinlocks for X86 (See commit 314cdbef). 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>
Showing
- arch/ia64/Kconfig 1 addition, 3 deletionsarch/ia64/Kconfig
- arch/ia64/include/asm/spinlock.h 89 additions, 86 deletionsarch/ia64/include/asm/spinlock.h
- arch/ia64/include/asm/spinlock_types.h 1 addition, 1 deletionarch/ia64/include/asm/spinlock_types.h
- arch/ia64/kernel/head.S 0 additions, 89 deletionsarch/ia64/kernel/head.S
- arch/ia64/kernel/ia64_ksyms.c 0 additions, 20 deletionsarch/ia64/kernel/ia64_ksyms.c
- arch/ia64/oprofile/backtrace.c 1 addition, 19 deletionsarch/ia64/oprofile/backtrace.c
Loading
Please register or sign in to comment