Peter Zijlstra
58c644ba51
sched/idle: Fix arch_cpu_idle() vs tracing
...
We call arch_cpu_idle() with RCU disabled, but then use
local_irq_{en,dis}able(), which invokes tracing, which relies on RCU.
Switch all arch_cpu_idle() implementations to use
raw_local_irq_{en,dis}able() and carefully manage the
lockdep,rcu,tracing state like we do in entry.
(XXX: we really should change arch_cpu_idle() to not return with
interrupts enabled)
Reported-by: Sven Schnelle <svens@linux.ibm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Mark Rutland <mark.rutland@arm.com>
Tested-by: Mark Rutland <mark.rutland@arm.com>
Link: https://lkml.kernel.org/r/20201120114925.594122626@infradead.org
2020-11-24 16:47:35 +01:00
..
2020-10-18 09:27:10 -07:00
2020-03-25 11:50:48 +01:00
2019-06-19 17:09:52 +02:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2020-08-23 17:36:59 -05:00
2020-10-25 14:51:49 -07:00
2020-08-23 17:36:59 -05:00
2017-11-02 11:10:55 +01:00
2019-05-21 10:50:45 +02:00
2017-11-02 11:10:55 +01:00
2020-06-09 09:39:13 -07:00
2020-05-07 18:49:04 -07:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2020-05-07 18:49:04 -07:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2018-03-18 07:38:45 -07:00
2020-06-23 10:49:56 +02:00
2017-11-02 11:10:55 +01:00
2018-03-18 07:38:48 -07:00
2017-11-02 11:10:55 +01:00
2018-11-27 20:31:46 -05:00
2017-11-02 11:10:55 +01:00
2020-05-13 15:32:00 -07:00
2020-06-09 09:39:13 -07:00
2019-05-21 10:50:45 +02:00
2018-01-22 08:17:15 -08:00
2018-01-22 08:17:15 -08:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2018-12-06 06:56:40 -08:00
2020-09-03 18:12:15 +02:00
2020-10-06 07:07:03 +02:00
2020-10-06 07:07:06 +02:00
2017-11-02 11:10:55 +01:00
2018-11-18 13:35:21 -08:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2019-01-06 09:46:51 +09:00
2020-06-23 10:49:56 +02:00
2020-08-23 17:36:59 -05:00
2020-08-23 17:36:59 -05:00
2020-09-08 11:52:35 +02:00
2017-11-02 11:10:55 +01:00
2020-06-09 09:39:13 -07:00
2018-05-09 06:54:27 +02:00
2020-02-04 03:05:26 +00:00
2018-11-18 13:35:22 -08:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2018-05-22 07:54:06 -05:00
2020-11-24 16:47:35 +01:00
2020-08-07 11:33:26 -07:00
2020-06-23 10:49:56 +02:00
2019-06-02 22:15:35 -07:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2019-05-21 10:50:45 +02:00
2018-11-18 13:35:22 -08:00
2018-11-18 13:35:22 -08:00
2020-04-02 18:11:55 -07:00
2017-11-02 11:10:55 +01:00
2018-05-22 07:54:06 -05:00
2019-03-05 21:07:14 -08:00
2018-02-15 15:07:30 -06:00
2018-05-22 07:54:06 -05:00
2017-11-02 11:10:55 +01:00
2018-11-18 13:35:21 -08:00
2019-03-05 21:07:14 -08:00
2017-11-02 11:10:55 +01:00
2020-10-06 07:07:03 +02:00
2017-11-02 11:10:55 +01:00
2020-06-09 09:39:13 -07:00
2018-05-22 07:54:06 -05:00
2020-08-23 17:36:59 -05:00
2019-06-02 22:16:33 -07:00
2017-11-02 11:10:55 +01:00
2018-11-18 13:35:20 -08:00
2020-11-24 16:47:35 +01:00
2020-11-24 16:47:35 +01:00
2020-08-20 13:12:58 +02:00
2020-08-23 17:36:59 -05:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2018-11-18 13:35:21 -08:00
2017-11-02 11:10:55 +01:00
2019-03-05 21:07:14 -08:00
2017-11-02 11:10:55 +01:00
2020-07-27 14:31:08 -04:00
2020-07-27 14:31:08 -04:00
2018-11-18 13:35:21 -08:00
2017-11-02 11:10:55 +01:00
2019-12-08 14:37:35 +01:00
2019-03-05 21:07:14 -08:00
2020-07-30 08:22:33 +02:00
2020-07-30 08:22:33 +02:00
2020-08-23 17:36:59 -05:00
2020-10-17 15:04:36 -06:00
2020-10-17 15:04:36 -06:00
2019-01-03 18:57:57 -08:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2020-08-07 11:33:26 -07:00
2020-09-16 12:24:37 +10:00
2016-08-07 23:55:43 -04:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2019-05-21 10:50:45 +02:00
2017-11-02 11:10:55 +01:00
2018-11-18 13:35:21 -08:00
2017-11-02 11:10:55 +01:00
2020-08-07 11:33:26 -07:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2019-06-19 17:09:52 +02:00
2017-11-02 11:10:55 +01:00
2020-07-19 18:16:40 -07:00
2020-06-02 18:41:48 -07:00
2019-05-29 09:31:43 -05:00
2020-02-02 11:54:41 +01:00
2020-06-23 10:49:54 +02:00
2017-11-02 11:10:55 +01:00
2018-11-18 18:52:22 -08:00
2018-11-18 18:52:22 -08:00
2018-03-20 12:05:17 -04:00
2017-11-02 11:10:55 +01:00
2019-05-10 12:20:36 +02:00
2017-11-02 11:10:55 +01:00
2020-06-09 09:39:13 -07:00
2020-06-09 09:39:13 -07:00
2020-06-09 09:39:13 -07:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2018-03-18 07:38:45 -07:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2019-01-03 18:57:57 -08:00
2017-11-02 11:10:55 +01:00
2019-05-21 11:28:45 +02:00
2018-03-18 07:38:48 -07:00
2017-11-02 11:10:55 +01:00
2020-08-06 16:13:13 +02:00
2020-05-13 15:35:58 -07:00
2018-10-07 22:42:00 -07:00
2017-11-02 11:10:55 +01:00
2020-09-01 09:50:35 +02:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00