Siddha, Suresh B
46cb4b7c88
sched: dynticks idle load balancing
...
Fix the process idle load balancing in the presence of dynticks. cpus for
which ticks are stopped will sleep till the next event wakes it up.
Potentially these sleeps can be for large durations and during which today,
there is no periodic idle load balancing being done.
This patch nominates an owner among the idle cpus, which does the idle load
balancing on behalf of the other idle cpus. And once all the cpus are
completely idle, then we can stop this idle load balancing too. Checks added
in fast path are minimized. Whenever there are busy cpus in the system, there
will be an owner(idle cpu) doing the system wide idle load balancing.
Open items:
1. Intelligent owner selection (like an idle core in a busy package).
2. Merge with rcu's nohz_cpu_mask?
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Acked-by: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08 11:15:17 -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
sched: dynticks idle load balancing
2007-05-08 11:15:17 -07:00
.gitignore
acct.c
[PATCH] kernel: change uses of f_{dentry, vfsmnt} to use f_path
2006-12-08 08:28:42 -08:00
audit.c
audit: add spaces on either side of case "..." operator.
2007-05-08 11:15:09 -07:00
audit.h
auditfilter.c
[PATCH] minor update to rule add/delete messages (ver 2)
2007-02-17 21:30:09 -05:00
auditsc.c
[PATCH] fix deadlock in audit_log_task_context()
2007-03-14 15:27:48 -07:00
capability.c
[PATCH] pid: replace do/while_each_task_pid with do/while_each_pid_task
2007-02-12 09:48:32 -08:00
compat.c
[PATCH] Common compat_sys_sysinfo
2007-02-11 10:51:32 -08:00
configs.c
[PATCH] struct seq_operations and struct file_operations constification
2006-12-07 08:39:46 -08:00
cpu.c
[PATCH] Fix microcode-related suspend problem
2007-04-02 10:06:09 -07:00
cpuset.c
cpusets: allow empty {cpus,mems}_allowed to be set for unpopulated cpuset
2007-05-08 11:15:14 -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
[PATCH] struct seq_operations and struct file_operations constification
2006-12-07 08:39:46 -08:00
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
export hrtimer_forward
2007-05-08 11:15:15 -07:00
itimer.c
The scheduled -EINVAL for invalid timevals in setitimer
2007-05-08 11:15:13 -07:00
kallsyms.c
kallsyms: cleanup: use seq_release_private() where appropriate
2007-05-08 11:15:09 -07:00
Kconfig.hz
[PATCH] HZ: 300Hz support
2006-12-07 08:39:36 -08:00
Kconfig.preempt
kexec.c
kdump/kexec: calculate note size at compile time
2007-05-08 11:15:07 -07:00
kfifo.c
[PATCH] Numerous fixes to kernel-doc info in source files.
2007-02-11 10:51:32 -08:00
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
[PATCH] Numerous fixes to kernel-doc info in source files.
2007-02-11 10:51:32 -08:00
latency.c
lockdep.c
lockdep: removed unused ip argument in mark_lock & mark_held_locks
2007-05-08 11:15:13 -07:00
lockdep_internals.h
[PATCH] lockdep: more chains
2006-12-07 08:39:43 -08:00
lockdep_proc.c
[PATCH] remove many unneeded #includes of sched.h
2007-02-14 08:09:54 -08:00
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
[PATCH] remove many unneeded #includes of sched.h
2007-02-14 08:09:54 -08:00
mutex-debug.h
mutex.c
[PATCH] lockdep: avoid lockdep warning in md
2006-12-08 08:28:39 -08:00
mutex.h
nsproxy.c
Merge sys_clone()/sys_unshare() nsproxy and namespace handling
2007-05-08 11:15:00 -07:00
panic.c
[PATCH] Add TAINT_USER and ability to set taint flags from userspace
2007-02-11 10:51:29 -08:00
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
Introduce a handy list_first_entry macro
2007-05-08 11:15:11 -07:00
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
[PATCH] proc: remove useless (and buggy) ->nlink settings
2007-02-11 10:51:32 -08:00
ptrace.c
rcupdate.c
[PATCH] rcu: add a prefetch() in rcu_do_batch()
2006-12-07 08:39:40 -08:00
rcutorture.c
rcutorture: Mark rcu_torture_init as __init
2007-05-08 11:15:00 -07:00
relay.c
[PATCH] kernel-doc fixes for 2.6.20-git15 (non-drivers)
2007-03-01 14:53:37 -08:00
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
[PATCH] hrtimers: namespace and enum cleanup
2007-02-16 08:13:58 -08:00
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
sched: dynticks idle load balancing
2007-05-08 11:15:17 -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
[PATCH] tick-management: dyntick / highres functionality
2007-02-16 08:13:59 -08:00
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
CPU time limit patch / setrlimit(RLIMIT_CPU, 0) cheat fix
2007-05-08 11:15:12 -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
Introduce a handy list_first_entry macro
2007-05-08 11:15:11 -07:00
tsacct.c
[PATCH] time: x86_64: split x86_64/kernel/time.c up
2007-02-16 08:14:00 -08:00
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
[PATCH] sysctl: remove insert_at_head from register_sysctl
2007-02-14 08:09:59 -08:00
wait.c
workqueue.c
[PATCH] Add debugging feature /proc/timer_stat
2007-02-16 08:13:59 -08:00