Nick Piggin
8102679447
[PATCH] sched: improve load balancing pinned tasks
...
John Hawkes explained the problem best:
A large number of processes that are pinned to a single CPU results
in every other CPU's load_balance() seeing this overloaded CPU as
"busiest", yet move_tasks() never finds a task to pull-migrate. This
condition occurs during module unload, but can also occur as a
denial-of-service using sys_sched_setaffinity(). Several hundred
CPUs performing this fruitless load_balance() will livelock on the
busiest CPU's runqueue lock. A smaller number of CPUs will livelock
if the pinned task count gets high.
Expanding slightly on John's patch, this one attempts to work out whether the
balancing failure has been due to too many tasks pinned on the runqueue. This
allows it to be basically invisible to the regular blancing paths (ie. when
there are no pinned tasks). We can use this extra knowledge to shut down the
balancing faster, and ensure the migration threads don't start running which
is another problem observed in the wild.
Signed-off-by: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-25 16:24:40 -07:00
..
irq
[PATCH] make various thing static
2005-06-24 00:06:43 -07:00
power
[PATCH] swsusp: only allow it when it makes sense
2005-06-25 16:24:34 -07:00
acct.c
audit.c
AUDIT: Unify auid reporting, put arch before syscall number
2005-05-23 21:35:28 +01:00
auditsc.c
AUDIT: Record working directory when syscall arguments are pathnames
2005-05-27 12:17:28 +01:00
capability.c
compat.c
[PATCH] Fix get_compat_sigevent()
2005-04-16 15:24:01 -07:00
configs.c
cpu.c
[PATCH] i386 CPU hotplug
2005-06-25 16:24:29 -07:00
cpuset.c
[PATCH] remove duplicate get_dentry functions in various places
2005-06-23 09:45:20 -07:00
dma.c
exec_domain.c
exit.c
[PATCH] Optimize sys_times for a single thread process
2005-06-23 09:45:30 -07:00
extable.c
fork.c
[PATCH] dup_mmap: update comment on new vma
2005-06-21 18:46:19 -07:00
futex.c
[PATCH] convert that currently tests _NSIG directly to use valid_signal()
2005-05-01 08:59:14 -07:00
intermodule.c
itimer.c
[PATCH] setitimer timer expires too early
2005-05-05 16:36:41 -07:00
kallsyms.c
[PATCH] ppc32: platform-specific functions missing from kallsyms.
2005-05-05 16:36:31 -07:00
Kconfig.hz
[PATCH] i386: Selectable Frequency of the Timer Interrupt
2005-06-23 09:45:10 -07:00
kfifo.c
kmod.c
[PATCH] Keys: Pass session keyring to call_usermodehelper()
2005-06-24 00:05:18 -07:00
kprobes.c
[PATCH] jprobes: allow a jprobe to coexist with muliple kprobes
2005-06-23 09:45:25 -07:00
ksysfs.c
kthread.c
[PATCH] use smp_mb/wmb/rmb where possible
2005-05-01 08:58:47 -07:00
Makefile
[PATCH] ppc64: remove hidden -fno-omit-frame-pointer for schedule.c
2005-05-05 16:36:32 -07:00
module.c
[PATCH] make various thing static
2005-06-24 00:06:43 -07:00
panic.c
[SPARC]: Stop-A printk cleanup
2005-04-24 20:38:02 -07:00
params.c
[PATCH] sysfs: (rest) if show/store is missing return -EIO
2005-06-20 15:15:03 -07:00
pid.c
posix-cpu-timers.c
posix-timers.c
[PATCH] posix-timers: use try_to_del_timer_sync()
2005-06-23 09:45:17 -07:00
printk.c
[PATCH] CPU hotplug printk fix
2005-06-25 16:24:34 -07:00
profile.c
[PATCH] profile.c: `schedule' parsing fix
2005-05-17 07:59:21 -07:00
ptrace.c
[PATCH] convert that currently tests _NSIG directly to use valid_signal()
2005-05-01 08:59:14 -07:00
rcupdate.c
[PATCH] Deprecate synchronize_kernel, GPL replacement
2005-05-01 08:59:04 -07:00
resource.c
[PATCH] pci enumeration on ixp2000: overflow in kernel/resource.c
2005-04-16 15:25:58 -07:00
sched.c
[PATCH] sched: improve load balancing pinned tasks
2005-06-25 16:24:40 -07:00
seccomp.c
signal.c
[PATCH] Software suspend and recalc sigpending bug fix
2005-06-23 09:45:27 -07:00
softirq.c
spinlock.c
[PATCH] spin_unlock_bh() and preempt_check_resched()
2005-05-21 10:46:48 -07:00
stop_machine.c
[PATCH] smp_processor_id() cleanup
2005-06-21 18:46:13 -07:00
sys.c
[PATCH] properly stop devices before poweroff
2005-06-25 16:24:33 -07:00
sys_ni.c
[PATCH] VM: early zone reclaim
2005-06-21 18:46:14 -07:00
sysctl.c
[PATCH] setuid core dump
2005-06-23 09:45:26 -07:00
time.c
[PATCH] time interpolator: Fix settimeofday inaccuracy
2005-04-28 08:13:58 -07:00
timer.c
[PATCH] preempt_count is int - remove cast and don't assign to unsigned type
2005-06-23 09:45:19 -07:00
uid16.c
user.c
wait.c
workqueue.c
[PATCH] re-export cancel_rearming_delayed_workqueue
2005-04-16 15:23:59 -07:00