From: Ingo Molnar <mingo@kernel.org>
To: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: linux-kernel@vger.kernel.org,
Peter Zijlstra <peterz@infradead.org>,
Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [PATCH] sched: Provide a pointer to the valid CPU mask
Date: Thu, 2 May 2019 17:10:55 +0200 [thread overview]
Message-ID: <20190502151055.GA50195@gmail.com> (raw)
In-Reply-To: <20190423142636.14347-1-bigeasy@linutronix.de>
* Sebastian Andrzej Siewior <bigeasy@linutronix.de> 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>
> ---
> arch/ia64/kernel/mca.c | 2 +-
> arch/mips/include/asm/switch_to.h | 4 +--
> arch/mips/kernel/mips-mt-fpaff.c | 2 +-
> arch/mips/kernel/traps.c | 6 ++--
> arch/powerpc/platforms/cell/spufs/sched.c | 2 +-
> arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 2 +-
> drivers/infiniband/hw/hfi1/affinity.c | 6 ++--
> drivers/infiniband/hw/hfi1/sdma.c | 3 +-
> drivers/infiniband/hw/qib/qib_file_ops.c | 7 ++--
> fs/proc/array.c | 4 +--
> include/linux/sched.h | 5 +--
> init/init_task.c | 3 +-
> kernel/cgroup/cpuset.c | 2 +-
> kernel/fork.c | 2 ++
> kernel/sched/core.c | 40 +++++++++++-----------
> kernel/sched/cpudeadline.c | 4 +--
> kernel/sched/cpupri.c | 4 +--
> kernel/sched/deadline.c | 6 ++--
> kernel/sched/fair.c | 34 +++++++++---------
> kernel/sched/rt.c | 4 +--
> kernel/trace/trace_hwlat.c | 2 +-
> lib/smp_processor_id.c | 2 +-
> samples/trace_events/trace-events-sample.c | 2 +-
> 23 files changed, 75 insertions(+), 73 deletions(-)
Looks good to me in principle - Peter, Thomas, any fundamental
objections?
Thanks,
Ingo
next prev parent reply other threads:[~2019-05-02 15:11 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-23 14:26 [PATCH] sched: Provide a pointer to the valid CPU mask Sebastian Andrzej Siewior
2019-05-02 10:46 ` Sebastian Andrzej Siewior
2019-05-02 15:10 ` Ingo Molnar [this message]
2019-05-06 19:12 ` Thomas Gleixner
2019-05-08 9:47 ` Peter Zijlstra
2019-06-03 13:00 ` [tip:sched/core] sched/core: " tip-bot for Sebastian Andrzej Siewior
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190502151055.GA50195@gmail.com \
--to=mingo@kernel.org \
--cc=bigeasy@linutronix.de \
--cc=linux-kernel@vger.kernel.org \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.