android_kernel_xiaomi_sm8350/arch/sparc/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
..
agp.h
apb.h
apc.h
asi.h
asm.h sparc: Add asm/asm.h 2008-12-09 00:50:13 -08:00
asmmacro.h sparc: remove CONFIG_SUN4 2008-08-31 20:59:37 -07:00
atomic_32.h asm-generic: rename atomic.h to atomic-long.h 2009-06-11 21:02:17 +02:00
atomic_64.h asm-generic: rename atomic.h to atomic-long.h 2009-06-11 21:02:17 +02:00
atomic.h
auxio_32.h
auxio_64.h
auxio.h
auxvec.h
backoff.h
bbc.h
bitext.h
bitops_32.h sparc: asm/bitops.h should define __fls 2008-12-03 16:04:52 -08:00
bitops_64.h sparc64: Stop using memory barriers for atomics and locks. 2008-12-04 09:16:47 -08:00
bitops.h
bitsperlong.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
btfixup.h
bug.h
bugs.h sparc64: Implement SSTATE purely using notifiers and initcalls. 2008-09-02 00:49:38 -07: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
cacheflush_32.h
cacheflush_64.h
cacheflush.h
chafsr.h
checksum_32.h
checksum_64.h
checksum.h
chmctrl.h
clock.h
cmt.h
compat_signal.h
compat.h x86-64: seccomp: fix 32/64 syscall hole 2009-03-02 15:41:30 -08:00
contregs.h
cpudata_32.h
cpudata_64.h sparc64: Move trap_block[] definitions into a new header file. 2009-06-16 04:56:08 -07:00
cpudata.h
cputime.h
current.h
cypress.h
dcr.h
dcu.h
delay_32.h
delay_64.h
delay.h
device.h powerpc and sparc: Introduce dev_archdata node accessors 2008-12-03 21:03:54 +11:00
display7seg.h
div64.h
dma-mapping.h sparc: Add CONFIG_DMA_API_DEBUG support 2009-08-10 09:35:00 +02:00
dma.h sparc: Kill now spurious includes of sbus.h 2008-08-29 02:15:23 -07:00
ebus_dma.h sparc: Move EBUS DMA interfaces into seperate header file. 2008-08-29 23:10:21 -07:00
ecc.h
eeprom.h
elf_32.h [PATCH] remove unused ibcs2/PER_SVR4 in SET_PERSONALITY 2008-10-16 15:40:05 +02:00
elf_64.h sparc64: Fix SET_PERSONALITY to not clip bits outside of PER_MASK. 2009-05-07 15:36:13 -07:00
elf.h
emergency-restart.h
envctrl.h
errno.h cfg80211: errno.h: define ERFKILL 2009-06-07 05:01:00 -07:00
estate.h
fb.h
fbio.h
fcntl.h
fhc.h sparc64: Rewrite central driver. 2008-08-31 20:56:15 -07:00
fixmap.h
floppy_32.h sparc: Convert remaining sbus_ioremap() and sbus_iounmap() users. 2008-08-29 02:15:13 -07:00
floppy_64.h sparc64: Convert EBUS floppy support to pure OF driver. 2008-08-29 23:26:23 -07:00
floppy.h
fpumacro.h
ftrace.h sparc64: Add proper dynamic ftrace support. 2009-06-16 04:56:53 -07:00
futex_32.h
futex_64.h sparc64: FUTEX_OP_ANDN fix 2008-07-30 15:40:50 -07:00
futex.h
gpio.h sparc: Add GPIO layer support. 2008-08-24 20:33:56 -07:00
hardirq_32.h
hardirq_64.h
hardirq.h
head_32.h
head_64.h
head.h
highmem.h
hugetlb.h
hvtramp.h
hw_irq.h
hypervisor.h sparc64: Add performance counter hypervisor calls for sun4v. 2008-12-04 09:17:09 -08:00
ide.h
idprom.h
intr_queue.h
io_32.h sparc: Kill sbus_ioremap() and sbus_iounmap(). 2008-08-29 02:15:13 -07:00
io_64.h sparc: Kill sbus_ioremap() and sbus_iounmap(). 2008-08-29 02:15:13 -07:00
io-unit.h sparc32: Kill iounit_map_dma_*(). 2008-08-29 02:15:23 -07:00
io.h
ioctl.h
ioctls.h
iommu_32.h sparc: Remove generic SBUS probing layer. 2008-08-29 02:15:21 -07:00
iommu_64.h sparc64: Get rid of pci_controller_info. 2008-09-10 23:07:41 -07:00
iommu.h
ipcbuf.h sparc: unify ipcbuf.h 2009-01-04 15:44:52 -08:00
irq_32.h sparc: fix sparse warnings in irq_32.c 2008-12-08 01:08:24 -08:00
irq_64.h debug lockups: Improve lockup detection, fix generic arch fallback 2009-08-03 09:56:52 +02:00
irq_regs.h
irq.h
irqflags_32.h
irqflags_64.h sparc64: Make %pil level 15 a pseudo-NMI. 2008-12-04 09:17:02 -08:00
irqflags.h
jsflash.h sparc: fix warning in userspace header jsflash.h 2009-01-02 21:31:13 -08:00
Kbuild byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
kdebug_32.h sparc32: kernel/trace/trace.c wants DIE_OOPS 2008-11-01 21:44:01 -07:00
kdebug_64.h sparc64: Implement NMI watchdog on capable cpus. 2009-01-30 00:03:53 -08:00
kdebug.h
kgdb.h
kmap_types.h kmap_types: make most arches use generic header file 2009-06-16 19:47:51 -07:00
kprobes.h
ldc.h
linkage.h
lmb.h
local.h
lsu.h
machines.h
mbus.h
mc146818rtc_32.h
mc146818rtc_64.h sparc64: Use generic CMOS driver. 2008-08-29 14:16:48 -07:00
mc146818rtc.h
mdesc.h sparc64: Make mdesc_fill_in_cpu_data take a cpumask_t pointer. 2009-06-16 04:56:21 -07:00
memctrl.h sparc64: Add generic interface for registering a dimm printing handler. 2008-08-24 22:08:34 -07:00
memreg.h
mman.h asm-generic: rename termios.h, signal.h and mman.h 2009-06-11 21:01:52 +02:00
mmu_32.h
mmu_64.h
mmu_context_32.h
mmu_context_64.h cpumask: use mm_cpumask() wrapper: sparc 2009-03-16 14:40:39 +10:30
mmu_context.h
mmu.h
mmzone.h numa, cpumask: move numa_node_id default implementation to topology.h, fix 2009-03-19 12:51:25 +01:00
module.h sparc: unify module.h 2008-12-26 15:35:41 -08:00
mpmbox.h
msgbuf.h
msi.h
mutex.h
mxcc.h
nmi.h sparc64: Implement NMI watchdog on capable cpus. 2009-01-30 00:03:53 -08:00
ns87303.h
obio.h sparc32: Move sun4d show_leds() out of asm/obio.h 2008-09-08 15:40:45 -07:00
of_device.h sparc: Add OF archdata propagation helper. 2008-08-29 02:15:20 -07:00
of_platform.h sparc: Kill ebus_bus_type. 2008-08-30 00:37:36 -07:00
openprom.h sparc: unify openprom.h 2009-01-02 21:15:25 -08:00
openpromio.h
oplib_32.h sparc: Kill exports of prom internal functions 2009-01-08 16:58:42 -08:00
oplib_64.h sparc: Kill exports of prom internal functions 2009-01-08 16:58:42 -08:00
oplib.h
page_32.h asm-generic: rename page.h and uaccess.h 2009-06-11 21:02:17 +02:00
page_64.h asm-generic: rename page.h and uaccess.h 2009-06-11 21:02:17 +02:00
page.h
param.h
parport.h parport: Fix various uses of parport_pc 2009-04-14 08:48:50 -07:00
pbm.h
pci_32.h sparc: Use asm-generic/pci-dma-compat 2009-08-10 09:35:00 +02:00
pci_64.h sparc: Use asm-generic/pci-dma-compat 2009-08-10 09:35:00 +02:00
pci.h sparc: Use asm-generic/pci-dma-compat 2009-08-10 09:35:00 +02:00
pcic.h
pcr.h sparc64: Implement NMI watchdog on capable cpus. 2009-01-30 00:03:53 -08:00
percpu_32.h
percpu_64.h sparc64: Get rid of real_setup_per_cpu_areas(). 2009-06-16 04:56:23 -07:00
percpu.h
perfctr.h
pgalloc_32.h mm: Pass virtual address to [__]p{te,ud,md}_free_tlb() 2009-07-27 12:10:38 -07:00
pgalloc_64.h
pgalloc.h
pgtable_32.h sparc: remove CONFIG_SUN4 2008-08-31 20:59:37 -07:00
pgtable_64.h sparc64: Validate linear D-TLB misses. 2009-08-25 16:47:46 -07:00
pgtable.h
pgtsrmmu.h
pgtsun4.h
pgtsun4c.h
pil.h sparc64: Reschedule KGDB capture to a software interrupt. 2009-03-18 23:51:57 -07:00
poll.h
posix_types.h sparc: unify posix_types.h 2009-01-02 18:35:29 -08:00
processor_32.h sparc: add '32' suffix to reg_window, sigcontext, __siginfo_t 2009-01-02 19:32:59 -08:00
processor_64.h sparc64: Kill annoying warning when building compat_binfmt_elf.o 2008-11-02 00:15:38 -07:00
processor.h
prom.h sparc: Call OF and MD cpu scanning explicitly from paging_init() 2009-06-16 04:56:19 -07:00
psr.h
psrcompat.h
pstate.h
ptrace.h sparc: unify ptrace.h 2009-01-02 19:42:12 -08:00
resource.h
ross.h
rwsem-const.h
rwsem.h
sbi.h
scatterlist.h sparc: use sparc64 version of scatterlist.h 2008-12-11 20:24:58 -08:00
scratchpad.h
seccomp.h x86-64: seccomp: fix 32/64 syscall hole 2009-03-02 15:41:30 -08:00
sections.h sparc: unify sections.h 2008-12-27 00:35:12 -08:00
sembuf.h
serial.h serial: allow 8250 to be used on sparc 2008-10-13 09:51:40 -07:00
setup.h
sfafsr.h
sfp-machine_32.h
sfp-machine_64.h
sfp-machine.h
shmbuf.h
shmparam_32.h
shmparam_64.h
shmparam.h
sigcontext.h sparc: unify sigcontext.h 2009-01-02 19:34:46 -08:00
siginfo.h sparc: unify siginfo.h 2009-01-02 21:10:04 -08:00
signal.h asm-generic: rename termios.h, signal.h and mman.h 2009-06-11 21:01:52 +02:00
smp_32.h sparc: remove NO_PROC_ID - it is no longer used 2009-01-02 21:33:54 -08:00
smp_64.h cpumask: arch_send_call_function_ipi_mask: sparc 2009-03-16 14:40:22 +10:30
smp.h
smpprim.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_32.h locking, sparc: Rename __spin_try_lock() and friends 2009-08-31 18:08:48 +02:00
spinlock_64.h locking, sparc: Rename __spin_try_lock() and friends 2009-08-31 18:08:48 +02:00
spinlock_types.h
spinlock.h
spitfire.h sparc: unify kernel/cpu 2008-12-07 00:04:30 -08:00
stacktrace.h
starfire.h sparc64: Delete starfire_cpu_setup(). 2008-08-31 01:40:12 -07:00
stat.h sparc: unify stat.h 2009-01-02 18:48:21 -08:00
statfs.h SPARC: Use <asm-generic/statfs.h> 2008-09-06 19:30:17 +01:00
string_32.h
string_64.h
string.h
sunbpp.h
swab.h sparc: introduce asm/swab.h 2009-01-06 18:10:27 -08:00
swift.h
syscall.h sparc: Add asm/syscall.h 2008-07-27 17:31:48 -07:00
syscalls.h
sysen.h
system_32.h cpumask: use mm_cpumask() wrapper: sparc 2009-03-16 14:40:39 +10:30
system_64.h sparc64: Add write_pic() helper. 2008-12-04 09:17:05 -08:00
system.h
termbits.h sparc: Fix tty compile warnings. 2008-11-12 23:51:54 -08:00
termios.h
thread_info_32.h sched: INIT_PREEMPT_COUNT 2009-07-10 14:24:05 -07:00
thread_info_64.h sched: INIT_PREEMPT_COUNT 2009-07-10 14:24:05 -07:00
thread_info.h
timer_32.h sparc32: Delete master_l10_limit. 2008-09-19 21:18:03 -07:00
timer_64.h sparc64: Use unsigned long long for u64. 2009-01-06 13:19:28 -08:00
timer.h
timex_32.h
timex_64.h
timex.h
tlb_32.h
tlb_64.h mm: Pass virtual address to [__]p{te,ud,md}_free_tlb() 2009-07-27 12:10:38 -07:00
tlb.h
tlbflush_32.h
tlbflush_64.h
tlbflush.h
topology_32.h
topology_64.h sched: Merge select_task_rq_fair() and sched_balance_self() 2009-09-15 16:01:05 +02:00
topology.h
trap_block.h sparc64: Store per-cpu offset in trap_block[] 2009-06-16 04:56:11 -07:00
traps.h sparc: drop get_tbr() in traps.h 2009-01-02 21:33:05 -08:00
tsb.h sparc64: Stop using memory barriers for atomics and locks. 2008-12-04 09:16:47 -08:00
tsunami.h
ttable.h sparc64: Make special trap return path for TRAP_NMI(). 2008-12-04 09:17:03 -08:00
turbosparc.h
types.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
uaccess_32.h module: trim exception table on init free. 2009-06-12 21:47:04 +09:30
uaccess_64.h asm-generic: rename page.h and uaccess.h 2009-06-11 21:02:17 +02:00
uaccess.h
uctx.h
unaligned.h
unistd.h sparc: Wire up sys_rt_tgsigqueueinfo(). 2009-06-16 04:56:58 -07:00
upa.h
user.h
utrap.h
vac-ops.h sparc: remove CONFIG_SUN4 2008-08-31 20:59:37 -07:00
vaddrs.h
vga.h
viking.h
vio.h
visasm.h sparc64: Fix sparse warnings in visemul.c 2008-09-11 23:46:40 -07:00
watchdog.h
winmacro.h
xor_32.h
xor_64.h
xor.h