android_kernel_xiaomi_sdm845/arch/ia64
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
..
configs sgi-gru: remove SGI_GRU as a valid config option for ia64 configs with SGI_UV 2009-04-02 19:05:07 -07:00
dig x86, ia64: convert to use generic dma_map_ops struct 2009-01-06 14:06:57 +01:00
hp Pull for-2.6.31 into release 2009-06-17 09:35:24 -07:00
ia32 generic compat_sys_ustat 2009-03-27 14:43:57 -04:00
include/asm sched: Merge select_task_rq_fair() and sched_balance_self() 2009-09-15 16:01:05 +02:00
kernel Merge branch 'next' into for-linus 2009-09-11 08:04:49 +10:00
kvm KVM: ia64: fix build failures due to ia64/unsigned long mismatches 2009-08-05 15:04:16 +03:00
lib [IA64] fix csum_ipv6_magic() 2009-09-02 09:14:48 -07:00
mm Move FAULT_FLAG_xyz into handle_mm_fault() callers 2009-06-21 13:08:22 -07:00
oprofile oprofile: more whitespace fixes 2008-10-15 20:55:51 +02:00
pci ia64/PCI: adjust section annotation for pcibios_setup() 2009-06-30 16:26:53 -07:00
scripts ia64/pv_ops/pvchecker: support mov = ar.itc paravirtualization 2009-03-26 10:50:09 -07:00
sn [IA64] sprintf should not be used with same source & destination address 2009-06-30 14:02:00 -07:00
uv [IA64] Simplify SGI uv vs. sn2 driver issues 2008-11-04 11:29:39 -08:00
xen rcu: Simplify rcu_pending()/rcu_check_callbacks() API 2009-08-23 10:32:39 +02:00
install.sh
Kconfig dma-mapping: ia64: add CONFIG_DMA_API_DEBUG support 2009-06-18 13:03:58 -07:00
Kconfig.debug
Makefile arch/ia64/Makefile: Remove -mtune=merced in IA64 kernel build 2009-08-11 14:52:11 -07:00
module.lds