Thomas Gleixner
d3ed782458
highres/dyntick: prevent xtime lock contention
...
While the !highres/!dyntick code assigns the duty of the do_timer() call to
one specific CPU, this was dropped in the highres/dyntick part during
development.
Steven Rostedt discovered the xtime lock contention on highres/dyntick due
to several CPUs trying to update jiffies.
Add the single CPU assignement back. In the dyntick case this needs to be
handled carefully, as the CPU which has the do_timer() duty must drop the
assignement and let it be grabbed by another CPU, which is active.
Otherwise the do_timer() calls would not happen during the long sleep.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Ingo Molnar <mingo@elte.hu>
Cc: Steven Rostedt <rostedt@goodmis.org>
Acked-by: Mark Lord <mlord@pobox.com>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08 11:15:10 -07:00
..
irq
Pad irq_desc to internode cacheline size
2007-05-08 11:15:09 -07:00
power
header cleaning: don't include smp_lock.h when not used
2007-05-08 11:15:07 -07:00
time
highres/dyntick: prevent xtime lock contention
2007-05-08 11:15:10 -07:00
.gitignore
acct.c
audit.c
audit: add spaces on either side of case "..." operator.
2007-05-08 11:15:09 -07:00
audit.h
auditfilter.c
auditsc.c
[PATCH] fix deadlock in audit_log_task_context()
2007-03-14 15:27:48 -07:00
capability.c
compat.c
configs.c
cpu.c
[PATCH] Fix microcode-related suspend problem
2007-04-02 10:06:09 -07:00
cpuset.c
header cleaning: don't include smp_lock.h when not used
2007-05-08 11:15:07 -07:00
delayacct.c
KMEM_CACHE(): simplify slab cache creation
2007-05-07 12:12:55 -07:00
die_notifier.c
move die notifier handling to common code
2007-05-08 11:15:04 -07:00
dma.c
exec_domain.c
exit.c
header cleaning: don't include smp_lock.h when not used
2007-05-08 11:15:07 -07:00
extable.c
fork.c
header cleaning: don't include smp_lock.h when not used
2007-05-08 11:15:07 -07:00
futex.c
futex: restartable futex_wait
2007-05-08 11:15:03 -07:00
futex_compat.c
hrtimer.c
[NET]: Fix networking compilation errors
2007-04-27 15:31:24 -07:00
itimer.c
header cleaning: don't include smp_lock.h when not used
2007-05-08 11:15:07 -07:00
kallsyms.c
kallsyms: cleanup: use seq_release_private() where appropriate
2007-05-08 11:15:09 -07:00
Kconfig.hz
Kconfig.preempt
kexec.c
kdump/kexec: calculate note size at compile time
2007-05-08 11:15:07 -07:00
kfifo.c
kmod.c
Fix kevent's childs priority greediness
2007-05-08 11:15:07 -07:00
kprobes.c
Simplify kallsyms_lookup()
2007-05-08 11:15:08 -07:00
ksysfs.c
remove "struct subsystem" as it is no longer needed
2007-05-02 18:57:59 -07:00
kthread.c
latency.c
lockdep.c
Simplify kallsyms_lookup()
2007-05-08 11:15:08 -07:00
lockdep_internals.h
lockdep_proc.c
Makefile
move die notifier handling to common code
2007-05-08 11:15:04 -07:00
module.c
Fix race between cat /proc/slab_allocators and rmmod
2007-05-08 11:15:08 -07:00
mutex-debug.c
mutex-debug.h
mutex.c
mutex.h
nsproxy.c
Merge sys_clone()/sys_unshare() nsproxy and namespace handling
2007-05-08 11:15:00 -07:00
panic.c
params.c
kernel/params.c: fix lying comment for param_array()
2007-05-08 11:15:08 -07:00
pid.c
Merge sys_clone()/sys_unshare() nsproxy and namespace handling
2007-05-08 11:15:00 -07:00
posix-cpu-timers.c
posix-timers.c
header cleaning: don't include smp_lock.h when not used
2007-05-08 11:15:07 -07:00
printk.c
header cleaning: don't include smp_lock.h when not used
2007-05-08 11:15:07 -07:00
profile.c
ptrace.c
rcupdate.c
rcutorture.c
rcutorture: Mark rcu_torture_init as __init
2007-05-08 11:15:00 -07:00
relay.c
resource.c
libata/IDE: remove combined mode quirk
2007-04-28 14:15:59 -04:00
rtmutex-debug.c
rtmutex-debug.h
rtmutex-tester.c
rtmutex.c
rtmutex.h
rtmutex_common.h
rwsem.c
Lockdep treats down_write_trylock like regular down_write
2007-05-08 11:15:09 -07:00
sched.c
add touch_all_softlockup_watchdogs()
2007-05-08 11:15:06 -07:00
seccomp.c
signal.c
header cleaning: don't include smp_lock.h when not used
2007-05-08 11:15:07 -07:00
softirq.c
softlockup.c
add touch_all_softlockup_watchdogs()
2007-05-08 11:15:06 -07:00
spinlock.c
srcu.c
stacktrace.c
stop_machine.c
Use stop_machine_run in the Intel RNG driver
2007-05-08 11:15:00 -07:00
sys.c
remove software_suspend()
2007-05-07 12:12:59 -07:00
sys_ni.c
sysctl.c
proc: maps protection
2007-05-08 11:15:02 -07:00
taskstats.c
KMEM_CACHE(): simplify slab cache creation
2007-05-07 12:12:55 -07:00
time.c
header cleaning: don't include smp_lock.h when not used
2007-05-08 11:15:07 -07:00
timer.c
Move timekeeping code to timekeeping.c
2007-05-08 11:15:06 -07:00
tsacct.c
uid16.c
header cleaning: don't include smp_lock.h when not used
2007-05-08 11:15:07 -07:00
user.c
utsname.c
Merge sys_clone()/sys_unshare() nsproxy and namespace handling
2007-05-08 11:15:00 -07:00
utsname_sysctl.c
wait.c
workqueue.c