kernel_optimize_test/kernel/sched
Andrey Ryabinin 9e0e83a1ec sched/fair: Fix multiplication overflow on 32-bit systems
Make 'r' 64-bit type to avoid overflow in 'r * LOAD_AVG_MAX'
on 32-bit systems:

	UBSAN: Undefined behaviour in kernel/sched/fair.c:2785:18
	signed integer overflow:
	87950 * 47742 cannot be represented in type 'int'

The most likely effect of this bug are bad load average numbers
resulting in weird scheduling. It's also likely that this can
persist for a longer time - until the system goes idle for
a long time so that all load avg numbers get reset.

[ This is the CFS load average metric, not the procfs output, which
  is separate. ]

Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Fixes: 9d89c257df ("sched/fair: Rewrite runnable load and utilization average tracking")
Link: http://lkml.kernel.org/r/1450097243-30137-1-git-send-email-aryabinin@virtuozzo.com
[ Improved the changelog. ]
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2016-01-06 11:01:05 +01:00
..
auto_group.c
auto_group.h
clock.c treewide: Remove old email address 2015-11-23 09:44:58 +01:00
completion.c
core.c Merge branch 'master' into for-4.4-fixes 2015-12-07 10:09:03 -05:00
cpuacct.c
cpuacct.h
cpudeadline.c
cpudeadline.h
cpupri.c
cpupri.h
cputime.c sched/cputime: Fix invalid gtime in proc 2015-12-04 10:18:49 +01:00
deadline.c
debug.c
fair.c sched/fair: Fix multiplication overflow on 32-bit systems 2016-01-06 11:01:05 +01:00
features.h
idle_task.c
idle.c
loadavg.c
Makefile
rt.c sched/rt: Hide the push_irq_work_func() declaration 2015-11-23 09:25:08 +01:00
sched.h sched/core: Better document the try_to_wake_up() barriers 2015-12-04 10:26:42 +01:00
stats.c
stats.h
stop_task.c
wait.c sched/wait: Fix the signal handling fix 2015-12-13 14:30:59 -08:00