All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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.