Vincent Guittot
4ad4e481bd
sched/fair: Fix rounding bug for asym packing
...
When check_asym_packing() is triggered, the imbalance is set to:
busiest_stat.avg_load * busiest_stat.group_capacity / SCHED_CAPACITY_SCALE
But busiest_stat.avg_load equals:
sgs->group_load * SCHED_CAPACITY_SCALE / sgs->group_capacity
These divisions can generate a rounding that will make imbalance
slightly lower than the weighted load of the cfs_rq. But this is
enough to skip the rq in find_busiest_queue() and prevents asym
migration from happening.
Directly set imbalance to busiest's sgs->group_load to remove the
rounding.
Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: valentin.schneider@arm.com
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2019-01-27 12:29:37 +01:00
..
autogroup.c
sched/autogroup: Fix possible Spectre-v1 indexing for sched_prio_to_weight[]
2018-05-05 08:34:42 +02:00
autogroup.h
sched/headers: Simplify and clean up header usage in the scheduler
2018-03-04 12:39:29 +01:00
clock.c
sched/clock: Disable interrupts when calling generic_sched_clock_init()
2018-07-30 19:33:35 +02:00
completion.c
sched/Documentation: Update wake_up() & co. memory-barrier guarantees
2018-07-17 09:30:34 +02:00
core.c
jump_label: move 'asm goto' support test to Kconfig
2019-01-06 09:46:51 +09:00
cpuacct.c
sched/headers: Simplify and clean up header usage in the scheduler
2018-03-04 12:39:29 +01:00
cpudeadline.c
sched/headers: Simplify and clean up header usage in the scheduler
2018-03-04 12:39:29 +01:00
cpudeadline.h
sched/headers: Simplify and clean up header usage in the scheduler
2018-03-04 12:39:29 +01:00
cpufreq.c
sched/cpufreq: Add the SPDX tags
2018-12-11 11:35:25 +01:00
cpufreq_schedutil.c
Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2018-12-26 14:56:10 -08:00
cpupri.c
sched/headers: Simplify and clean up header usage in the scheduler
2018-03-04 12:39:29 +01:00
cpupri.h
sched/headers: Simplify and clean up header usage in the scheduler
2018-03-04 12:39:29 +01:00
cputime.c
sched: Fix various typos in comments
2018-12-03 11:55:42 +01:00
deadline.c
sched/core: Remove unnecessary unlikely() in push_*_task()
2018-12-11 15:16:57 +01:00
debug.c
jump_label: move 'asm goto' support test to Kconfig
2019-01-06 09:46:51 +09:00
fair.c
sched/fair: Fix rounding bug for asym packing
2019-01-27 12:29:37 +01:00
features.h
sched/fair: Disable LB_BIAS by default
2018-10-02 09:45:01 +02:00
idle.c
x86/stackprotector: Remove the call to boot_init_stack_canary() from cpu_startup_entry()
2018-10-22 04:07:24 +02:00
isolation.c
sched: Fix various typos in comments
2018-12-03 11:55:42 +01:00
loadavg.c
sched: loadavg: make calc_load_n() public
2018-10-26 16:26:32 -07:00
Makefile
psi: pressure stall information for CPU, memory, and IO
2018-10-26 16:26:32 -07:00
membarrier.c
sched/membarrier: synchronize_sched() with synchronize_rcu()
2018-11-27 09:21:43 -08:00
pelt.c
sched/fair: Remove setting task's se->runnable_weight during PELT update
2018-10-02 09:45:03 +02:00
pelt.h
sched/pelt: Fix warning and clean up IRQ PELT config
2018-10-02 09:45:00 +02:00
psi.c
psi: make disabling/enabling easier for vendor kernels
2018-11-30 14:56:14 -08:00
rt.c
sched/core: Remove unnecessary unlikely() in push_*_task()
2018-12-11 15:16:57 +01:00
sched-pelt.h
sched.h
sched/core: Give DCE a fighting chance
2019-01-27 12:29:37 +01:00
stats.c
proc: introduce proc_create_seq{,_data}
2018-05-16 07:23:35 +02:00
stats.h
psi: make disabling/enabling easier for vendor kernels
2018-11-30 14:56:14 -08:00
stop_task.c
swait.c
kernel/sched/: remove caller signal_pending branch predictions
2019-01-04 13:13:48 -08:00
topology.c
sched/core: Give DCE a fighting chance
2019-01-27 12:29:37 +01:00
wait.c
kernel/sched/: remove caller signal_pending branch predictions
2019-01-04 13:13:48 -08:00
wait_bit.c
sched/wait: Improve __var_waitqueue() code generation
2018-03-20 08:23:25 +01:00