Peter Williams
50ddd96917
[PATCH] sched: modify move_tasks() to improve load balancing outcomes
...
Problem:
The move_tasks() function is designed to move UP TO the amount of load it
is asked to move and in doing this it skips over tasks looking for ones
whose load weights are less than or equal to the remaining load to be
moved. This is (in general) a good thing but it has the unfortunate result
of breaking one of the original load balancer's good points: namely, that
(within the limits imposed by the active/expired array model and the fact
the expired is processed first) it moves high priority tasks before low
priority ones and this means there's a good chance (see active/expired
problem for why it's only a chance) that the highest priority task on the
queue but not actually on the CPU will be moved to the other CPU where (as
a high priority task) it may preempt the current task.
Solution:
Modify move_tasks() so that high priority tasks are not skipped when moving
them will make them the highest priority task on their new run queue.
Signed-off-by: Peter Williams <pwil3058@bigpond.com.au>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: "Siddha, Suresh B" <suresh.b.siddha@intel.com>
Cc: "Chen, Kenneth W" <kenneth.w.chen@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-06-27 17:32:44 -07:00
..
irq
[PATCH] adjust handle_IRR_event() return type
2006-06-23 07:43:08 -07:00
power
[PATCH] pm_trace is dangerous
2006-06-27 17:32:35 -07:00
time
[PATCH] time: rename clocksource functions
2006-06-26 09:58:21 -07:00
.gitignore
acct.c
[PATCH] fix kernel-doc in kernel/ dir
2006-06-27 17:32:39 -07:00
audit.c
[PATCH] spin/rwlock init cleanups
2006-06-27 17:32:39 -07:00
audit.h
[PATCH] log more info for directory entry change events
2006-06-20 05:25:28 -04:00
auditfilter.c
[PATCH] log more info for directory entry change events
2006-06-20 05:25:28 -04:00
auditsc.c
[PATCH] fix kernel-doc in kernel/ dir
2006-06-27 17:32:39 -07:00
capability.c
[PATCH] refactor capable() to one implementation, add __capable() helper
2006-03-25 08:22:56 -08:00
compat.c
[PATCH] N32 sigset and __COMPAT_ENDIAN_SWAP__
2006-06-25 10:01:15 -07:00
configs.c
cpu.c
[PATCH] cpu hotplug: make [un]register_cpu_notifier init time only
2006-06-27 17:32:41 -07:00
cpuset.c
[PATCH] proc: Use struct pid not struct task_ref
2006-06-26 09:58:26 -07:00
dma.c
exec_domain.c
[PATCH] Fix module refcount leak in __set_personality()
2006-03-24 07:33:30 -08:00
exit.c
[PATCH] proc: Rewrite the proc dentry flush on exit optimization
2006-06-26 09:58:24 -07:00
extable.c
[PATCH] symbol_put_addr() locks kernel
2006-05-15 11:20:55 -07:00
fork.c
[PATCH] coredump: copy_process: don't check SIGNAL_GROUP_EXIT
2006-06-26 09:58:27 -07:00
futex.c
[PATCH] VFS: Permit filesystem to override root dentry on mount
2006-06-23 07:42:45 -07:00
futex_compat.c
[PATCH] futex: check and validate timevals
2006-03-31 12:18:59 -08:00
hrtimer.c
[PATCH] cpu hotplug: revert initdata patch submitted for 2.6.17
2006-06-27 17:32:41 -07:00
itimer.c
[PATCH] hrtimers: remove data field
2006-03-26 08:57:03 -08:00
kallsyms.c
Kconfig.hz
Kconfig.preempt
kexec.c
[PATCH] Add a sysfs file to determine if a kexec kernel is loaded
2006-06-23 07:43:02 -07:00
kfifo.c
kmod.c
[PATCH] wait_for_helper: trivial style cleanup
2006-03-28 18:36:41 -08:00
kprobes.c
[PATCH] Notify page fault call chain
2006-06-26 09:58:22 -07:00
ksysfs.c
[PATCH] Add a sysfs file to determine if a kexec kernel is loaded
2006-06-23 07:43:02 -07:00
kthread.c
[PATCH] kthread: move kernel-doc and put it into DocBook
2006-06-25 10:01:24 -07:00
Makefile
Merge branch 'x86-64'
2006-06-26 10:51:09 -07:00
module.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild
2006-06-26 11:05:15 -07:00
mutex-debug.c
[PATCH] poison: add & use more constants
2006-06-27 17:32:38 -07:00
mutex-debug.h
[PATCH] work around ppc64 bootup bug by making mutex-debugging save/restore irqs
2006-06-26 09:58:16 -07:00
mutex.c
[PATCH] work around ppc64 bootup bug by making mutex-debugging save/restore irqs
2006-06-26 09:58:16 -07:00
mutex.h
[PATCH] work around ppc64 bootup bug by making mutex-debugging save/restore irqs
2006-06-26 09:58:16 -07:00
panic.c
[PATCH] the scheduled unexport of panic_timeout
2006-04-11 06:18:40 -07:00
params.c
[PATCH] Change dash2underscore() return value to char
2006-03-28 09:16:03 -08:00
pid.c
[PATCH] pidhash: Refactor the pid hash table
2006-03-31 12:19:00 -08:00
posix-cpu-timers.c
[PATCH] arm_timer: remove a racy and obsolete PF_EXITING check
2006-06-17 10:52:13 -07:00
posix-timers.c
[PATCH] hrtimers: remove data field
2006-03-26 08:57:03 -08:00
printk.c
[PATCH] printk time parameter
2006-06-25 10:01:13 -07:00
profile.c
[PATCH] cpu hotplug: revert init patch submitted for 2.6.17
2006-06-27 17:32:40 -07:00
ptrace.c
[PATCH] coredump: kill ptrace related stuff
2006-06-26 09:58:27 -07:00
rcupdate.c
[PATCH] cpu hotplug: revert initdata patch submitted for 2.6.17
2006-06-27 17:32:41 -07:00
rcutorture.c
[PATCH] rcutorture: add call_rcu_bh() operations
2006-06-27 17:32:40 -07:00
relay.c
resource.c
[PATCH] catch valid mem range at onlining memory
2006-06-27 17:32:36 -07:00
sched.c
[PATCH] sched: modify move_tasks() to improve load balancing outcomes
2006-06-27 17:32:44 -07:00
seccomp.c
signal.c
[PATCH] coredump: kill ptrace related stuff
2006-06-26 09:58:27 -07:00
softirq.c
[PATCH] cpu hotplug: revert initdata patch submitted for 2.6.17
2006-06-27 17:32:41 -07:00
softlockup.c
[PATCH] cpu hotplug: revert initdata patch submitted for 2.6.17
2006-06-27 17:32:41 -07:00
spinlock.c
stop_machine.c
[PATCH] kthread: convert stop_machine into a kthread
2006-06-25 10:01:22 -07:00
sys.c
[PATCH] kernel/sys.c: cleanups
2006-06-25 10:01:06 -07:00
sys_ni.c
[PATCH] sys_move_pages: 32bit support (i386, x86_64)
2006-06-23 07:42:53 -07:00
sysctl.c
[PATCH] vdso: randomize the i386 vDSO by moving it into a vma
2006-06-27 17:32:38 -07:00
time.c
[PATCH] Time: Introduce arch generic time accessors
2006-06-26 09:58:20 -07:00
timer.c
[PATCH] cpu hotplug: revert initdata patch submitted for 2.6.17
2006-06-27 17:32:41 -07:00
uid16.c
[PATCH] Add more prevent_tail_call()
2006-04-19 16:27:18 -07:00
unwind.c
[PATCH] x86_64: allow unwinder to build without module support
2006-06-26 10:48:18 -07:00
user.c
[PATCH] selinux: add hooks for key subsystem
2006-06-22 15:05:55 -07:00
wait.c
workqueue.c
[PATCH] cpu hotplug: revert init patch submitted for 2.6.17
2006-06-27 17:32:40 -07:00