Sebastian Andrzej Siewior
3bd3706251
sched/core: Provide a pointer to the valid CPU mask
...
In commit:
4b53a3412d66 ("sched/core: Remove the tsk_nr_cpus_allowed() wrapper")
the tsk_nr_cpus_allowed() wrapper was removed. There was not
much difference in !RT but in RT we used this to implement
migrate_disable(). Within a migrate_disable() section the CPU mask is
restricted to single CPU while the "normal" CPU mask remains untouched.
As an alternative implementation Ingo suggested to use:
struct task_struct {
const cpumask_t *cpus_ptr;
cpumask_t cpus_mask;
};
with
t->cpus_ptr = &t->cpus_mask;
In -RT we then can switch the cpus_ptr to:
t->cpus_ptr = &cpumask_of(task_cpu(p));
in a migration disabled region. The rules are simple:
- Code that 'uses' ->cpus_allowed would use the pointer.
- Code that 'modifies' ->cpus_allowed would use the direct mask.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20190423142636.14347-1-bigeasy@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2019-06-03 11:49:37 +02:00
..
2019-05-30 11:29:21 -07:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-05-30 11:26:32 -07:00
2019-05-24 17:37:52 +02:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-05-30 20:52:40 -07:00
2019-05-24 17:27:11 +02:00
2019-05-30 11:29:21 -07:00
2019-05-31 13:49:50 -07:00
2019-05-30 11:26:32 -07:00
2019-05-31 08:34:32 -07:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-05-24 17:37:52 +02:00
2019-05-30 11:29:21 -07:00
2019-05-30 11:26:35 -07:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-05-25 15:03:12 -07:00
2019-05-21 10:50:46 +02:00
2019-05-30 11:29:53 -07:00
2019-05-21 10:50:46 +02:00
2019-05-30 11:26:32 -07:00
2019-05-21 10:50:46 +02:00
2019-05-22 08:31:09 -07:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-05-12 17:52:13 -04:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-05-30 11:25:17 -07:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-05-30 11:26:35 -07:00
2019-05-21 10:50:46 +02:00
2019-05-31 09:43:26 -04:00
2019-05-21 10:50:46 +02:00
2019-05-30 11:26:32 -07:00
2019-05-21 10:50:46 +02:00
2019-05-21 11:28:39 +02:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-05-24 17:39:02 +02:00
2019-05-24 17:37:53 +02:00
2019-06-01 15:51:31 -07:00
2019-05-30 11:29:53 -07:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-06-03 11:49:37 +02:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-05-30 11:26:32 -07:00
2019-05-21 10:50:46 +02:00
2019-05-30 11:26:32 -07:00
2019-05-24 17:39:02 +02:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-05-23 11:18:18 -07:00
2019-04-04 20:13:59 -04:00
2019-05-21 10:50:45 +02:00
2019-05-21 10:50:45 +02:00
2019-05-30 11:26:32 -07:00
2019-05-21 10:50:45 +02:00
2019-05-21 10:50:45 +02:00
2019-05-21 10:50:45 +02:00
2019-05-21 10:50:45 +02:00
2019-05-27 07:35:02 -06:00
2019-05-21 10:50:45 +02:00
2019-04-02 17:49:58 +02:00
2019-05-30 11:29:21 -07:00
2018-10-29 14:29:58 -07:00
2019-05-14 09:47:48 -07:00
2019-05-21 10:50:45 +02:00
2019-05-21 10:50:45 +02:00
2019-05-21 10:50:45 +02:00
2019-02-01 15:46:24 -08:00
2019-05-21 10:50:45 +02:00
2019-05-30 11:26:32 -07:00
2019-05-21 10:50:45 +02:00
2019-04-08 18:21:02 -05:00
2019-05-21 10:50:45 +02:00
2019-03-08 14:48:40 -08:00
2019-02-28 03:29:26 -05:00
2019-05-24 17:27:11 +02:00
2019-05-24 17:27:11 +02:00
2019-05-21 10:50:45 +02:00
2019-01-21 17:48:13 +01:00
2019-05-21 10:50:45 +02:00
2019-05-24 17:27:11 +02:00
2019-05-21 10:50:45 +02:00
2019-05-30 11:26:32 -07:00
2019-05-26 09:25:06 -06:00
2019-01-03 18:57:57 -08:00
2019-05-07 18:14:36 -07:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:45 +02:00
2019-05-21 10:50:45 +02:00
2019-05-07 21:12:44 -07:00
2019-05-21 10:50:45 +02:00
2019-01-30 17:44:07 -05:00
2019-04-30 09:26:13 -06:00
2019-05-07 21:28:04 -07:00
2019-05-30 11:29:53 -07:00
2019-05-30 11:26:32 -07:00
2019-04-09 19:20:57 -04:00
2019-05-21 10:50:45 +02:00
2019-04-14 15:09:40 -07:00
2019-05-30 11:29:53 -07:00
2019-05-30 11:29:53 -07:00
2019-05-21 10:50:45 +02:00
2019-05-06 17:46:52 +03:00
2019-01-03 18:57:57 -08:00
2019-02-07 00:13:27 +01:00
2019-04-08 18:21:02 -05:00
2019-04-08 18:21:02 -05:00
2019-05-21 10:50:45 +02:00
2019-05-21 10:50:45 +02:00
2019-02-01 01:55:45 -05:00
2019-02-07 16:38:35 +01:00
2019-04-28 21:34:21 -04:00
2019-05-14 09:47:50 -07:00
2019-02-07 00:13:27 +01:00
2019-05-14 09:47:45 -07:00
2019-02-07 00:13:27 +01:00
2019-05-21 10:50:45 +02:00