1
linux/arch/ia64/kernel
Thomas Gleixner 8b0b1db013 remove put_cpu_no_resched()
put_cpu_no_resched() is an optimization of put_cpu() which unfortunately
can cause high latencies.

The nfs iostats code uses put_cpu_no_resched() in a code sequence where a
reschedule request caused by an interrupt between the get_cpu() and the
put_cpu_no_resched() can delay the reschedule for at least HZ.

The other users of put_cpu_no_resched() optimize correctly in interrupt
code, but there is no real harm in using the put_cpu() function which is
an alias for preempt_enable().  The extra check of the preemmpt count is
not as critical as the potential source of missing a reschedule.

Debugged in the preempt-rt tree and verified in mainline.

Impact: remove a high latency source

[akpm@linux-foundation.org: build fix]
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Ingo Molnar <mingo@elte.hu>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: "J. Bruce Fields" <bfields@fieldses.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-06-16 19:47:48 -07:00
..
cpufreq
.gitignore
acpi-ext.c
acpi-processor.c
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_dump.c
crash.c
cyclone.c clocksource: pass clocksource to read() callback 2009-04-21 13:41:47 -07:00
dma-mapping.c IA64: fix compile error on IA64_DIG_VTD 2009-01-27 15:45:21 +01:00
efi_stub.S
efi.c ia64/pv_ops/binary patch: define paravirt_dv_serialize_data() and suppress false positive warning. 2009-03-26 11:02:59 -07:00
entry.h
entry.S [IA64] wire up preadv/pwritev system calls 2009-04-08 13:46:14 -07:00
err_inject.c
esi_stub.S
esi.c
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/pv_ops/pv_time_ops: add sched_clock hook. 2009-03-26 10:50:42 -07:00
ia64_ksyms.c ftrace, ia64: IA64 static ftrace support 2009-01-14 12:11:26 +01:00
init_task.c mm: consolidate init_mm definition 2009-06-16 19:47:28 -07:00
iosapic.c irq: change ->set_affinity() to return status 2009-04-28 12:21:16 +02:00
irq_ia64.c KVM: use smp_send_reschedule in kvm_vcpu_kick 2009-06-10 11:48:53 +03:00
irq_lsapic.c
irq.c Merge branch 'core/percpu' into percpu-cpumask-x86-for-linus-2 2009-03-27 17:28:43 +01: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
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 ia64/pv_ops: gate page paravirtualization. 2009-03-26 10:51:02 -07:00
mca_asm.S
mca_drv_asm.S
mca_drv.c
mca_drv.h
mca.c page allocator: do not check NUMA node ID when the caller knows the node is valid 2009-06-16 19:47:32 -07:00
minstate.h
module.c [IA64] BUG to BUG_ON changes 2009-04-01 09:50:48 -07:00
msi_ia64.c irq: change ->set_affinity() to return status 2009-04-28 12:21:16 +02:00
nr-irqs.c
numa.c
pal.S
palinfo.c proc 2/2: remove struct proc_dir_entry::owner 2009-03-31 01:14:44 +04: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/pv_ops: gate page paravirtualization. 2009-03-26 10:51:02 -07:00
paravirt_patchlist.h ia64/pv_ops: gate page paravirtualization. 2009-03-26 10:51:02 -07:00
paravirt.c ia64: remove some warnings. 2009-03-27 11:11:04 -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 dma-mapping: replace all DMA_24BIT_MASK macro with DMA_BIT_MASK(24) 2009-04-07 08:31:12 -07:00
pci-swiotlb.c Replace all DMA_nBIT_MASK macro with DMA_BIT_MASK(n) 2009-04-13 15:04:33 -07:00
perfmon_default_smpl.c
perfmon_generic.h
perfmon_itanium.h
perfmon_mckinley.h
perfmon_montecito.h
perfmon.c remove put_cpu_no_resched() 2009-06-16 19:47:48 -07:00
process.c Simplify copy_thread() 2009-04-02 19:04:51 -07:00
ptrace.c
relocate_kernel.S
sal.c
salinfo.c cpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits.: ia64 2009-03-16 14:12:42 +10:30
setup.c [IA64] BUG to BUG_ON changes 2009-04-01 09:50:48 -07:00
sigframe.h
signal.c
smp.c [IA64] smp_flush_tlb_mm() should only send IPI's to cpus in cpu_vm_mask 2009-04-16 11:51:35 -07:00
smpboot.c cpumask: Use accessors code.: ia64 2009-03-16 14:12:43 +10:30
sys_ia64.c [CVE-2009-0029] Remove __attribute__((weak)) from sys_pipe/sys_pipe2 2009-01-14 14:15:15 +01:00
time.c clocksource: pass clocksource to read() callback 2009-04-21 13:41:47 -07:00
topology.c
traps.c
unaligned.c [IA64] dump stack on kernel unaligned warnings 2009-01-15 10:38:56 -08:00
uncached.c page allocator: do not check NUMA node ID when the caller knows the node is valid 2009-06-16 19:47:32 -07:00
unwind_decoder.c
unwind_i.h
unwind.c [IA64] Do not go beyond ARRAY_SIZE of unw.hash 2009-02-25 11:48:04 -08:00
vmlinux.lds.S Pull pvops into release branch 2009-03-31 14:25:08 -07:00