Peter Zijlstra
9e81889c76
sched: Fix affine_move_task() self-concurrency
...
Consider:
sched_setaffinity(p, X); sched_setaffinity(p, Y);
Then the first will install p->migration_pending = &my_pending; and
issue stop_one_cpu_nowait(pending); and the second one will read
p->migration_pending and _also_ issue: stop_one_cpu_nowait(pending),
the _SAME_ @pending.
This causes stopper list corruption.
Add set_affinity_pending::stop_pending, to indicate if a stopper is in
progress.
Fixes: 6d337eab041d ("sched: Fix migrate_disable() vs set_cpus_allowed_ptr()")
Cc: stable@kernel.org
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Valentin Schneider <valentin.schneider@arm.com>
Link: https://lkml.kernel.org/r/20210224131355.649146419@infradead.org
2021-03-06 12:40:21 +01:00
..
2021-02-23 13:39:45 -08:00
2021-02-23 13:39:45 -08:00
2021-01-06 17:39:38 +01:00
2021-02-26 09:41:05 -08:00
2021-02-26 13:59:32 -08:00
2021-02-17 14:12:43 +01:00
2021-02-26 09:41:03 -08:00
2021-02-05 11:03:47 -08:00
2021-02-24 10:13:55 -08:00
2021-01-04 14:39:07 -08:00
2021-02-08 12:22:08 +01:00
2021-02-26 09:41:03 -08:00
2021-02-15 18:50:01 +01:00
2021-02-22 13:43:55 +01:00
2021-02-21 12:35:04 -08:00
2021-03-06 12:40:21 +01:00
2021-02-21 12:04:41 -08:00
2021-03-04 09:51:25 -05:00
2020-03-25 11:50:48 +01:00
2020-12-15 22:46:15 -08:00
2020-07-16 12:35:15 -07:00
2021-02-23 10:25:27 -05:00
2020-12-03 14:58:35 +01:00
2020-12-03 14:58:35 +01:00
2021-01-15 11:58:10 -05:00
2020-08-17 20:26:58 -04:00
2020-08-23 17:36:59 -05:00
2021-02-23 13:39:45 -08:00
2020-07-30 11:15:58 -07:00
2021-01-24 14:27:16 +01:00
2020-08-23 17:36:59 -05:00
2020-02-04 03:05:26 +00:00
2020-06-11 15:14:36 +02:00
2020-09-01 09:58:03 +02:00
2021-01-06 16:24:59 -08:00
2020-12-15 22:46:18 -08:00
2020-04-15 11:21:54 +02:00
2020-05-20 14:44:21 -05:00
2020-12-30 19:36:54 -07:00
2020-04-07 10:43:42 -07:00
2020-12-15 22:46:19 -08:00
2021-03-04 15:45:03 -07:00
2021-02-12 12:54:58 +01:00
2020-06-06 23:42:01 +09:00
2021-02-26 09:41:03 -08:00
2020-11-02 12:14:19 -08:00
2020-11-24 16:47:49 +01:00
2020-12-18 16:53:12 +01:00
2021-02-08 12:24:04 +01:00
2020-12-15 19:36:48 -08:00
2021-02-17 14:12:24 +01:00
2020-11-02 18:00:20 -08:00
2021-02-21 09:29:23 -08:00
2021-02-10 15:49:38 -05:00
2021-02-22 12:33:26 +00:00
2020-10-05 13:37:03 +02:00
2020-08-12 10:58:01 -07:00
2021-02-19 14:57:12 -05:00
2021-01-24 10:09:20 -08:00
2020-04-27 02:07:40 -04:00
2021-02-16 09:59:41 +01:00
2021-01-19 10:24:45 +01:00
2021-01-19 10:24:45 +01:00
2021-02-10 16:57:04 +01:00
2020-09-01 09:58:03 +02:00
2020-12-14 16:40:27 -08:00
2020-09-04 17:51:55 +10:00
2020-11-14 11:26:04 -08:00
2020-12-17 13:01:31 -08:00
2020-12-14 16:40:27 -08:00
2020-12-15 19:36:48 -08:00
2020-02-04 03:05:26 +00:00
2021-02-21 17:25:22 -07:00
2020-10-16 11:11:19 -07:00
2020-12-15 22:46:19 -08:00
2020-07-27 14:31:12 -04:00
2020-12-15 22:46:18 -08:00
2020-11-25 18:52:35 +01:00
2021-01-12 14:26:31 +01:00
2021-01-04 13:53:41 -08:00
2020-12-01 10:30:28 +00:00
2021-02-10 12:40:11 -08:00
2021-02-21 17:25:22 -07:00
2021-02-17 14:12:42 +01:00
2021-01-22 15:09:42 +01:00
2021-02-10 23:34:16 +01:00
2020-09-19 13:13:39 -07:00
2020-09-18 14:24:16 +01:00
2021-02-17 14:12:42 +01:00
2020-11-27 11:10:50 +01:00
2020-12-19 11:18:38 -08:00
2021-02-25 10:17:31 -08:00
2021-02-26 09:41:03 -08:00
2020-12-12 09:17:38 -07:00
2020-11-16 08:08:54 -08:00
2021-01-06 17:17:22 -08:00
2021-02-09 12:27:29 -05:00
2020-04-07 21:51:27 +02:00
2020-10-06 10:31:52 -07:00
2020-02-07 15:34:12 +01:00
2020-12-14 16:40:27 -08:00
2020-08-19 14:14:12 +02:00
2020-07-07 11:58:59 -05:00
2020-04-27 02:07:40 -04:00
2020-08-19 14:13:20 +02:00
2021-01-26 11:16:34 +00:00
2020-11-14 11:26:03 -08:00
2021-02-22 17:06:54 -08:00