linux/arch/ia64/kernel
Tony Luck 2c86963b09 [IA64] implement ticket locks for Itanium
Back in January 2008 Nick Piggin implemented "ticket" spinlocks
for X86 (See commit 314cdbefd1).

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>
2009-09-25 08:42:16 -07:00
..
cpufreq
.gitignore
acpi-ext.c
acpi-processor.c ACPI: pdc init related memory leak with physical CPU hotplug 2009-06-20 00:50:52 -04:00
acpi.c irq: change ACPI GSI APIs to also take a device argument 2009-04-28 12:21:17 +02:00
asm-offsets.c ia64/pv_ops/xen: paravirtualize read/write ar.itc and ar.itm 2009-03-26 10:50:32 -07:00
audit.c
brl_emu.c
crash.c [IA64] kdump: Short path to freeze CPUs 2009-09-14 16:19:24 -07:00
crash_dump.c
cyclone.c clocksource: pass clocksource to read() callback 2009-04-21 13:41:47 -07:00
dma-mapping.c [IA64] Fix warning in dma-mapping.c 2009-09-02 09:12:21 -07:00
efi.c [IA64] Convert ia64 to use int-ll64.h 2009-06-17 09:33:49 -07:00
efi_stub.S
entry.h
entry.S [IA64] hook up new rt_tgsigqueueinfo syscall 2009-06-16 13:13:41 -07:00
err_inject.c
esi.c [IA64] Remove unnecessary semicolons 2009-06-30 14:18:32 -07:00
esi_stub.S
fsys.S ia64/pv_ops: paravirtualize mov = ar.itc. 2009-03-26 10:50:22 -07:00
fsyscall_gtod_data.h
ftrace.c ftrace, ia64: IA64 dynamic ftrace support 2009-01-14 12:11:31 +01:00
gate-data.S
gate.lds.S ia64/pv_ops: gate page paravirtualization. 2009-03-26 10:51:02 -07:00
gate.S ia64/pv_ops: paravirtualize gate.S. 2009-03-26 11:01:46 -07:00
head.S [IA64] implement ticket locks for Itanium 2009-09-25 08:42:16 -07:00
ia64_ksyms.c [IA64] implement ticket locks for Itanium 2009-09-25 08:42:16 -07:00
init_task.c Use new __init_task_data macro in arch init_task.c files. 2009-09-21 06:27:08 +02:00
iosapic.c arch/ia64/kernel/iosapic: missing test after ioremap() 2009-08-11 14:52:11 -07:00
irq.c [IA64] remove obsolete irq_desc_t typedef 2009-06-15 14:34:31 -07:00
irq_ia64.c [IA64] remove obsolete irq_desc_t typedef 2009-06-15 14:34:31 -07:00
irq_lsapic.c [IA64] remove obsolete hw_interrupt_type 2009-06-15 14:35:10 -07:00
ivt.S ia64/pv_ops: paravirtualize mov = ar.itc. 2009-03-26 10:50:22 -07:00
jprobes.S
kprobes.c kprobes: check CONFIG_FREEZER instead of CONFIG_PM 2009-01-16 14:32:17 -05:00
machine_kexec.c [IA64] kexec: Unregister MCA handler before kexec 2009-09-14 16:18:17 -07:00
machvec.c x86, ia64: convert to use generic dma_map_ops struct 2009-01-06 14:06:57 +01:00
Makefile Merge branch 'tracing-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-04-05 11:04:19 -07:00
Makefile.gate kbuild: rename ld-option to cc-ldoption 2009-09-20 12:27:42 +02:00
mca.c [IA64] kdump: Short path to freeze CPUs 2009-09-14 16:19:24 -07:00
mca_asm.S [IA64] kexec: Make INIT safe while transition to 2009-09-14 16:18:02 -07:00
mca_drv.c
mca_drv.h
mca_drv_asm.S
minstate.h
module.c [IA64] Convert ia64 to use int-ll64.h 2009-06-17 09:33:49 -07:00
msi_ia64.c [IA64] msi_ia64.c dmar_msi_type should be static 2009-06-15 14:35:54 -07:00
nr-irqs.c
numa.c
pal.S
palinfo.c [IA64] Convert ia64 to use int-ll64.h 2009-06-17 09:33:49 -07:00
paravirt.c ia64: remove some warnings. 2009-03-27 11:11:04 -07:00
paravirt_inst.h
paravirt_patch.c ia64/pv_op/binarypatch: add helper functions to support binary patching for paravirt_ops. 2009-03-26 11:02:31 -07:00
paravirt_patchlist.c [IA64] Fix build error in paravirt_patchlist.c 2009-06-17 09:04:40 -07:00
paravirt_patchlist.h ia64/pv_ops: gate page paravirtualization. 2009-03-26 10:51:02 -07:00
paravirtentry.S ia64/pv_ops: implement binary patching optimization for native. 2009-03-26 11:02:42 -07:00
patch.c ia64: remove some warnings. 2009-03-27 11:11:04 -07:00
pci-dma.c Bug Fix arch/ia64/kernel/pci-dma.c: fix recursive dma_supported() call in iommu_dma_supported() 2009-08-11 14:52:10 -07:00
pci-swiotlb.c ia64: IOMMU passthrough mode shouldn't trigger swiotlb init 2009-08-13 18:18:00 +01:00
perfmon.c [IA64] address compiler warnings perfmon.c/salinfo.c 2009-06-30 14:26:34 -07:00
perfmon_default_smpl.c
perfmon_generic.h
perfmon_itanium.h
perfmon_mckinley.h
perfmon_montecito.h
process.c cleanup console_print() 2009-09-14 17:41:42 -07:00
ptrace.c headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
relocate_kernel.S [IA64] kdump: Mask INIT first in panic-kdump path 2009-09-14 16:18:54 -07:00
sal.c
salinfo.c [IA64] address compiler warnings perfmon.c/salinfo.c 2009-06-30 14:26:34 -07:00
setup.c ia64: Fix setup_per_cpu_areas() compilation error 2009-07-15 11:46:34 +09:00
sigframe.h
signal.c
smp.c ia64: convert last user of smp_call_function_mask 2009-09-24 09:34:40 +09:30
smpboot.c [IA64] Convert ia64 to use int-ll64.h 2009-06-17 09:33:49 -07:00
sys_ia64.c [CVE-2009-0029] Remove __attribute__((weak)) from sys_pipe/sys_pipe2 2009-01-14 14:15:15 +01:00
time.c [IA64] Convert ia64 to use int-ll64.h 2009-06-17 09:33:49 -07:00
topology.c ia64/topology.c: exit cache_add_dev when kobject_init_and_add fails 2009-08-11 14:52:11 -07:00
traps.c
unaligned.c [IA64] dump stack on kernel unaligned warnings 2009-01-15 10:38:56 -08:00
uncached.c Pull for-2.6.31 into release 2009-06-17 09:35:24 -07:00
unwind.c [IA64] Do not go beyond ARRAY_SIZE of unw.hash 2009-02-25 11:48:04 -08:00
unwind_decoder.c
unwind_i.h
vmlinux.lds.S Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 2009-09-18 09:33:07 -07:00