Files
kernel_arpi/kernel
Stephen Dickey 1093a9bfdb ANDROID: sched: select fallback rq must check for allowed cpus
select_fallback_rq() must return a cpu that is valid for the task.
However, when nid is not -1, it skips checking for
task_cpu_possible_mask().

This causes a problem when execve-ing 32 bit apps on an asymmetric
system where not all cpus are 32 bit capable. During execve-ing
the task is marked as 32 bit long before its affinity mask is
restricted.

If the cpu goes offline during this time, select_fallback_rq()
could return a 64 bit only cpu, which __migrate_tasks()/
is_cpu_allowed() rejects.

migrate_tasks() will therefore continue to pick the same task
repeatedly, where __migrate_tasks() rejects the cpu chosen
by select_fallback_rq() every time, leading to an infinite loop.

Correct the issue by updating select_fallback_rq() for the case
where nid is not -1, ensuring that the returned cpu is always
valid for this task.

Bug: 192050156
Change-Id: Ia073a8395a02485f6d1c1daa0f3ce9e2029cb1f4
Signed-off-by: Stephen Dickey <dickey@codeaurora.org>
2021-06-29 10:57:22 +00:00
..
2021-06-12 14:48:14 +02:00
2021-05-13 14:22:11 +02:00
2021-04-14 08:41:58 +02:00
2021-05-27 08:36:46 +02:00
2021-05-15 09:28:55 +02:00
2021-06-12 14:48:14 +02:00
2020-08-26 09:10:39 -04:00
2021-05-13 14:22:11 +02:00
2020-08-12 10:58:02 -07:00
2020-11-14 11:26:04 -08:00
2021-01-13 10:28:55 +01:00
2020-07-27 14:31:12 -04:00
2021-06-03 18:47:38 +02:00
2021-05-15 09:28:55 +02:00
2021-02-07 15:37:17 +01:00
2021-05-20 15:35:25 +02:00
2021-04-15 14:23:41 +02:00