Messages in this thread | | | Date | Thu, 2 May 2019 12:46:50 +0200 | From | Sebastian Andrzej Siewior <> | Subject | Re: [PATCH] sched: Provide a pointer to the valid CPU mask |
| |
On 2019-04-23 16:26:36 [+0200], To linux-kernel@vger.kernel.org wrote: > 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_allowed_ptr = &t->cpus_allowed; > > In -RT we then can switch the cpus_ptr to > t->cpus_allowed_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. > > I proposed this patch as a series earlier and it was shutdown due to the > migrate_disable() bits. It has been said that migrate_disable() should > only be used with RT and thus not introduced without it. > I hereby propose only the mask CPU-bits. > > Cc: Peter Zijlstra <peterz@infradead.org> > Cc: Thomas Gleixner <tglx@linutronix.de> > Cc: Ingo Molnar <mingo@kernel.org> > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
a gentle ping.
Sebastian
| |