1
linux/arch/mips/include/asm
Peter Zijlstra c88d591089 sched: Merge select_task_rq_fair() and sched_balance_self()
The problem with wake_idle() is that is doesn't respect things like
cpu_power, which means it doesn't deal well with SMT nor the recent
RT interaction.

To cure this, it needs to do what sched_balance_self() does, which
leads to the possibility of merging select_task_rq_fair() and
sched_balance_self().

Modify sched_balance_self() to:

  - update_shares() when walking up the domain tree,
    (it only called it for the top domain, but it should
     have done this anyway), which allows us to remove
    this ugly bit from try_to_wake_up().

  - do wake_affine() on the smallest domain that contains
    both this (the waking) and the prev (the wakee) cpu for
    WAKE invocations.

Then use the top-down balance steps it had to replace wake_idle().

This leads to the dissapearance of SD_WAKE_BALANCE and
SD_WAKE_IDLE_FAR, with SD_WAKE_IDLE replaced with SD_BALANCE_WAKE.

SD_WAKE_AFFINE needs SD_BALANCE_WAKE to be effective.

Touch all topology bits to replace the old with new SD flags --
platforms might need re-tuning, enabling SD_BALANCE_WAKE
conditionally on a NUMA distance seems like a good additional
feature, magny-core and small nehalem systems would want this
enabled, systems with slow interconnects would not.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <new-submission>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-09-15 16:01:05 +02:00
..
dec
emma MIPS: Eleminate filenames from comments 2009-08-03 17:52:40 +01:00
fw
ip32
lasat
mach-ar7 MIPS: Add support for Texas Instruments AR7 System-on-a-Chip 2009-07-03 15:45:23 +01:00
mach-au1x00 MIPS: Alchemy: Rewrite GPIO support. 2009-06-17 11:06:28 +01:00
mach-bcm47xx MIPS: BCM47xx: Fix gpio_direction_output 2009-06-17 11:06:28 +01:00
mach-cavium-octeon MIPS: Move Cavium CP0 hwrena impl bits to cpu-feature-overrides.h 2009-06-17 11:06:31 +01:00
mach-cobalt Update Yoichi Yuasa's e-mail address 2009-07-03 15:45:29 +01:00
mach-db1x00
mach-dec
mach-emma2rh
mach-excite
mach-generic MIPS: Pass struct device to plat_dma_addr_to_phys() 2009-06-17 11:06:24 +01:00
mach-ip22 MIPS: IP22/28: Switch over to RTC class driver 2008-10-15 12:46:51 +01:00
mach-ip27 sched: Merge select_task_rq_fair() and sched_balance_self() 2009-09-15 16:01:05 +02:00
mach-ip28 MIPS: IP22/28: Switch over to RTC class driver 2008-10-15 12:46:51 +01:00
mach-ip32 MIPS: Pass struct device to plat_dma_addr_to_phys() 2009-06-17 11:06:24 +01:00
mach-jazz MIPS: Pass struct device to plat_dma_addr_to_phys() 2009-06-17 11:06:24 +01:00
mach-lasat
mach-lemote MIPS: Pass struct device to plat_dma_addr_to_phys() 2009-06-17 11:06:24 +01:00
mach-malta
mach-mipssim
mach-pb1x00
mach-pnx833x MIPS: Add support for NXP PNX833x (STB222/5) into linux kernel 2008-10-27 16:18:29 +00:00
mach-pnx8550
mach-rc32434 MIPS: RB532: Cleanup cpu-features-overrides 2009-06-17 11:06:26 +01:00
mach-rm
mach-sibyte
mach-tx39xx
mach-tx49xx MIPS: RBTX4939: Add smc91x support 2008-10-27 16:18:27 +00:00
mach-vr41xx
mach-wrppmc
mach-yosemite
mips-boards MIPS: Malta: make a needlessly global integer variable static 2009-03-30 14:49:45 +02:00
octeon MIPS: Reorganize Cavium OCTEON PCI support. 2009-07-03 15:45:29 +01:00
pci
pmc-sierra/msp71xx MIPS: MSPxxxx: define MIPS34K_MISSED_ITLB_WAR for other PMC-Sierra SoC 2009-08-03 17:52:43 +01:00
sgi
sibyte
sn MIPS: Build fix - include <linux/smp.h> into all smp_processor_id() users. 2009-06-24 18:34:39 +01:00
txx9 MIPS: TXx9: Add TX4939 RNG support 2009-06-17 11:06:27 +01:00
vr41xx Update Yoichi Yuasa's e-mail address 2009-07-03 15:45:29 +01:00
xtalk
abi.h
addrspace.h
amon.h MIPS: CMP: activate CMP support 2009-07-03 15:45:26 +01:00
asm.h
asmmacro-32.h
asmmacro-64.h
asmmacro.h MIPS: Use EI/DI for MIPS R2. 2008-12-12 18:12:23 +00:00
atomic.h asm-generic: rename atomic.h to atomic-long.h 2009-06-11 21:02:17 +02:00
auxvec.h
barrier.h
bcache.h
bitops.h MIPS: Enable CLO / CLZ instructions via separate CPU property 2009-05-14 13:50:26 +01:00
bitsperlong.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
bootinfo.h
branch.h
break.h MIPS: Switch FPU emulator trap to BREAK instruction. 2008-10-30 14:44:34 +00:00
bug.h MIPS: bug.h Build fix - include <linux/compiler.h>. 2009-06-24 18:34:38 +01:00
bugs.h MIPS: Build fix - include <linux/smp.h> into all smp_processor_id() users. 2009-06-24 18:34:39 +01:00
byteorder.h byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
cache.h
cachectl.h
cacheflush.h
cacheops.h
cevt-r4k.h MIPS: Have a heart for a lonely, lost header file ... 2008-10-15 12:46:49 +01:00
checksum.h MIPS: uaccess: Switch lock annotations to might_fault(). 2009-05-14 13:50:28 +01:00
cmp.h
cmpxchg.h
compat-signal.h
compat.h MIPS: Do not include seccomp.h from compat.h 2009-05-14 13:50:26 +01:00
compiler.h
cpu-features.h MIPS: Allow CPU specific overriding of CP0 hwrena impl bits. 2009-06-17 11:06:31 +01:00
cpu-info.h MIPS: Outline udelay and fix a few issues. 2009-06-08 16:57:51 +01:00
cpu.h MIPS: Alchemy: unify CPU model constants. 2009-03-30 14:49:45 +02:00
cputime.h
current.h
debug.h
delay.h MIPS: Fix typo resulting in far too long ndelay times. 2009-06-17 11:06:23 +01:00
device.h
div64.h MIPS: Rewrite <asm/div64.h> to work with gcc 4.4.0. 2009-05-14 13:50:29 +01:00
dma-mapping.h MIPS: Synchronize dma_map_page and dma_map_single 2009-05-14 13:50:26 +01:00
dma.h
ds1287.h Update Yoichi Yuasa's e-mail address 2009-07-03 15:45:29 +01:00
dsp.h
edac.h
elf.h MIPS: 64-bit: Fix o32 core dump 2009-07-03 15:45:27 +01:00
emergency-restart.h
errno.h cfg80211: errno.h: define ERFKILL 2009-06-07 05:01:00 -07:00
fb.h
fcntl.h
fixmap.h MIPS: Fix highmem. 2009-05-14 13:50:29 +01:00
floppy.h
fpregdef.h
fpu_emulator.h MIPS: Switch FPU emulator trap to BREAK instruction. 2008-10-30 14:44:34 +00:00
fpu.h
ftrace.h tracing: make CALLER_ADDRx overwriteable 2009-03-02 16:49:37 -05:00
futex.h
gcmpregs.h MIPS: CMP: Move gcmp_probe to before the SMP ops 2009-07-03 15:45:26 +01:00
gic.h MIPS: Fix compile for !CONFIG_SMP 2009-08-03 17:52:40 +01:00
gpio.h
gt64120.h
hardirq.h
hazards.h MIPS: Loongson 2 needs no hazard barriers. 2009-05-14 13:50:26 +01:00
highmem.h MIPS: Fix highmem. 2009-05-14 13:50:29 +01:00
hugetlb.h MIPS: Add support files for hugetlbfs. 2009-06-17 11:06:30 +01:00
hw_irq.h
i8253.h time: move PIT_TICK_RATE to linux/timex.h 2009-06-16 19:47:27 -07:00
i8259.h
ide.h
inst.h
io.h MIPS: Modify core io.h macros to account for the Octeon Errata Core-301. 2009-01-11 09:57:22 +00:00
ioctl.h MIPS: ioctl.h: Cleanup. 2009-06-17 11:06:28 +01:00
ioctls.h
ipcbuf.h
irq_cpu.h
irq_gt641xx.h Update Yoichi Yuasa's e-mail address 2009-07-03 15:45:29 +01:00
irq_regs.h
irq.h MIPS: Build fix - include <linux/smp.h> into all smp_processor_id() users. 2009-06-24 18:34:39 +01:00
irqflags.h
isadep.h
jazz.h
jazzdma.h
Kbuild byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
kdebug.h
kexec.h
kgdb.h
kmap_types.h kmap_types: make most arches use generic header file 2009-06-16 19:47:51 -07:00
kspd.h
linkage.h
local.h
m48t37.h
mc146818-time.h mips: use bcd2bin/bin2bcd 2008-10-20 08:52:41 -07:00
mc146818rtc.h
mips_mt.h
mipsmtregs.h
mipsprom.h
mipsregs.h MIPS: Add hugetlbfs page defines. 2009-06-17 11:06:30 +01:00
mman.h
mmu_context.h MIPS: Build fix - include <linux/smp.h> into all smp_processor_id() users. 2009-06-24 18:34:39 +01:00
mmu.h
mmzone.h
module.h MIPS: Add Cavium OCTEON processor constants and CPU probe. 2009-01-11 09:57:22 +00:00
msc01_ic.h
msgbuf.h
mutex.h
nile4.h
paccess.h
page.h MIPS: Fix HPAGE_SIZE redefinition 2009-08-17 17:27:57 +01:00
param.h
parport.h
pci.h Delete pcibios_select_root 2009-06-17 14:04:42 -07:00
percpu.h
pgalloc.h mm: Remove duplicate definitions in MIPS and SH 2009-07-27 17:26:44 -07:00
pgtable-32.h
pgtable-64.h MIPS: Cavium: Add support for 8k and 32k page sizes. 2009-05-14 13:50:27 +01:00
pgtable-bits.h MIPS: Add hugetlbfs page defines. 2009-06-17 11:06:30 +01:00
pgtable.h MIPS: Add hugetlbfs page defines. 2009-06-17 11:06:30 +01:00
pmon.h
poll.h
posix_types.h
prefetch.h MIPS: NEC VR5500 processor support fixup 2009-03-11 21:11:07 +01:00
processor.h MIPS: Avoid clobbering struct pt_regs in kthreads 2009-08-03 17:52:41 +01:00
ptrace.h MIPS: Fix a typo in watchpoint register structure. 2009-01-30 21:32:58 +00:00
r4k-timer.h
r4kcache.h MIPS: Support 64-byte D-cache line size 2009-06-17 11:06:24 +01:00
reboot.h
reg.h MIPS: 64-bit: Fix o32 core dump 2009-07-03 15:45:27 +01:00
regdef.h
resource.h
rm9k-ocd.h
rtlx.h
scatterlist.h
seccomp.h MIPS: Fix TIF_32BIT undefined problem when seccomp is disabled 2009-03-13 23:07:59 +01:00
sections.h
segment.h
sembuf.h
serial.h
setup.h
sgialib.h
sgiarcs.h
sgidefs.h
shmbuf.h
shmparam.h
sigcontext.h headers_check fix: mips, sigcontext.h 2009-02-01 11:01:26 +05:30
siginfo.h
signal.h asm-generic: rename termios.h, signal.h and mman.h 2009-06-11 21:01:52 +02:00
sim.h
smp-ops.h MIPS: Add arch generic CPU hotplug 2009-06-24 18:34:40 +01:00
smp.h MIPS: Cavium: Add CPU hotplugging code. 2009-06-24 18:34:40 +01:00
smtc_ipi.h
smtc_proc.h
smtc.h
smvp.h
sni.h
socket.h net: new user space API for time stamping of incoming and outgoing packets 2009-02-15 22:43:33 -08:00
sockios.h
sparsemem.h
spinlock_types.h
spinlock.h Allow rwlocks to re-enable interrupts 2009-04-02 19:05:11 -07:00
stackframe.h MIPS: Cavium OCTEON multiplier state preservation. 2009-01-11 09:57:24 +00:00
stacktrace.h
stat.h
statfs.h
string.h
suspend.h MIPS: Add hibernation support 2009-06-17 11:06:31 +01:00
swab.h MIPS: Define __arch_swab64 for all mips r2 cpus 2009-07-03 15:45:25 +01:00
sysmips.h
system.h
termbits.h
termios.h MIPS: Add return value checks to user_termio_to_kernel_termios() 2009-01-30 21:32:57 +00:00
thread_info.h KEYS: Extend TIF_NOTIFY_RESUME to (almost) all architectures [try #6] 2009-09-02 21:29:19 +10:00
time.h MIPS: Fix build error if CONFIG_CEVT_R4K is undefined. 2009-05-14 13:50:25 +01:00
timex.h
titan_dep.h
tlb.h
tlbdebug.h
tlbflush.h
topology.h
traps.h
txx9irq.h
txx9pio.h
txx9tmr.h
types.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
uaccess.h MIPS: Fix sparse warning in incompatiable argument type of clear_user. 2009-05-22 13:52:05 +01:00
ucontext.h
unaligned.h
unistd.h MIPS: Wire up accept4 syscall. 2009-08-03 17:52:50 +01:00
user.h
vga.h
vpe.h
war.h
watch.h
wbflush.h
xor.h