Files
android_kernel_xiaomi_sm8450/kernel
Peter Zijlstra e2912009fb sched: Ensure set_task_cpu() is never called on blocked tasks
In order to clean up the set_task_cpu() rq dependencies we need
to ensure it is never called on blocked tasks because such usage
does not pair with consistent rq->lock usage.

This puts the migration burden on ttwu().

Furthermore we need to close a race against changing
->cpus_allowed, since select_task_rq() runs with only preemption
disabled.

For sched_fork() this is safe because the child isn't in the
tasklist yet, for wakeup we fix this by synchronizing
set_cpus_allowed_ptr() against TASK_WAKING, which leaves
sched_exec to be a problem

This also closes a hole in (6ad4c1888 sched: Fix balance vs
hotplug race) where ->select_task_rq() doesn't validate the
result against the sched_domain/root_domain.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Mike Galbraith <efault@gmx.de>
LKML-Reference: <20091216170517.807938893@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-12-16 19:01:56 +01:00
..
2009-09-21 14:29:21 +02:00
2009-12-14 23:55:34 +01:00
2009-12-15 08:53:10 -08:00
2009-06-24 00:02:38 -04:00
2009-10-29 07:39:25 -07:00
2009-12-06 21:10:56 +01:00
2009-09-18 09:48:52 -07:00
2009-12-14 23:55:33 +01:00
2009-12-14 23:55:33 +01:00
2009-06-16 19:47:48 -07:00
2009-12-14 23:55:34 +01:00
2009-09-19 13:13:17 -07:00
2009-07-24 10:53:29 +02:00
2009-01-14 18:09:02 +01:00
2009-06-18 13:03:56 -07:00
2009-12-09 10:03:07 +01:00
2009-10-26 09:40:30 +01:00
2009-07-12 14:03:27 -07:00
2009-09-23 18:13:10 -07:00
2009-11-02 16:02:39 +01:00
2009-06-18 13:03:55 -07:00