All of lore.kernel.org
 help / color / mirror / Atom feed
From: Frederic Weisbecker <frederic@kernel.org>
To: Marcelo Tosatti <mtosatti@redhat.com>
Cc: linux-kernel@vger.kernel.org,
	Frederic Weisbecker <fweisbec@gmail.com>,
	Chris Friesen <chris.friesen@windriver.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Peter Zijlstra <peterz@infradead.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Jim Somerville <Jim.Somerville@windriver.com>,
	Christoph Lameter <cl@linux.com>
Subject: Re: [patch 2/3] isolcpus: affine kernel threads to specified cpumask
Date: Tue, 31 Mar 2020 02:57:08 +0200	[thread overview]
Message-ID: <20200331005706.GA24647@lenoir> (raw)
In-Reply-To: <20200328152503.225876188@redhat.com>

On Sat, Mar 28, 2020 at 12:21:19PM -0300, Marcelo Tosatti wrote:
> This is a kernel enhancement to configure the cpu affinity of kernel threads via kernel boot option isolcpus=no_kthreads,<isolcpus_params>,<cpulist>
> 
> When this option is specified, the cpumask is immediately applied upon
> thread launch. This does not affect kernel threads that specify cpu
> and node.
> 
> This allows CPU isolation (that is not allowing certain threads
> to execute on certain CPUs) without using the isolcpus=domain parameter,
> making it possible to enable load balancing on such CPUs
> during runtime (see kernel-parameters.txt).
> 
> Note-1: this is based off on Wind River's patch at
> https://github.com/starlingx-staging/stx-integ/blob/master/kernel/kernel-std/centos/patches/affine-compute-kernel-threads.patch
> 
> Difference being that this patch is limited to modifying
> kernel thread cpumask: Behaviour of other threads can
> be controlled via cgroups or sched_setaffinity.
> 
> Note-2: Wind River's patch was based off Christoph Lameter's patch at
> https://lwn.net/Articles/565932/ with the only difference being
> the kernel parameter changed from kthread to kthread_cpus.
> 
> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
> 
> ---
>  Documentation/admin-guide/kernel-parameters.txt |    8 ++++++++
>  include/linux/sched/isolation.h                 |    1 +
>  kernel/kthread.c                                |    6 ++++--
>  kernel/sched/isolation.c                        |    6 ++++++
>  4 files changed, 19 insertions(+), 2 deletions(-)
> 
> Index: linux-2.6/Documentation/admin-guide/kernel-parameters.txt
> ===================================================================
> --- linux-2.6.orig/Documentation/admin-guide/kernel-parameters.txt
> +++ linux-2.6/Documentation/admin-guide/kernel-parameters.txt
> @@ -1959,6 +1959,14 @@
>  			  the CPU affinity syscalls or cpuset.
>  			  <cpu number> begins at 0 and the maximum value is
>  			  "number of CPUs in system - 1".
> +			  When using cpusets, use the isolcpus option "kthread"
> +			  to avoid creation of kernel threads on isolated CPUs.
> +
> +			kthread
> +			  Adjust the CPU affinity mask of unbound kernel threads to
> +			  not contain CPUs on the isolated list. This complements
> +			  the isolation provided by the cpusets mechanism described
> +			  above and by managed_irq option.

So, what about what I suggested with having "unbound" instead, which
includes all the CPU-unbound work?

 HK_FLAG_WQ | HK_FLAG_TIMER | HK_FLAG_RCU | HK_FLAG_MISC | HK_FLAG_KTHREAD | HK_FLAG_SCHED

(and yes your suggestion of including HK_FLAG_SCHED is good).

Because I don't see the point of exposing kthread isolation alone as an ABI
so far.

Later I suspect I'll turn all these flags into a single HK_FLAG_UNBOUND.

Thanks.

  reply	other threads:[~2020-03-31  0:57 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-28 15:21 [patch 0/3] affine kernel threads to specified cpumask (v3) Marcelo Tosatti
2020-03-28 15:21 ` [patch 1/3] kthread: switch to cpu_possible_mask Marcelo Tosatti
2020-03-28 15:21 ` [patch 2/3] isolcpus: affine kernel threads to specified cpumask Marcelo Tosatti
2020-03-31  0:57   ` Frederic Weisbecker [this message]
2020-03-31 11:50     ` Marcelo Tosatti
2020-03-31 13:36       ` Frederic Weisbecker
2020-03-28 15:21 ` [patch 3/3] isolcpus: undeprecate on documentation Marcelo Tosatti
2020-03-31 15:22   ` Peter Zijlstra
2020-03-31 15:41     ` Marcelo Tosatti
2020-03-31 15:57       ` Peter Zijlstra
2020-04-04 23:05         ` Christopher Lameter
2020-03-31 15:43     ` Frederic Weisbecker

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=20200331005706.GA24647@lenoir \
    --to=frederic@kernel.org \
    --cc=Jim.Somerville@windriver.com \
    --cc=akpm@linux-foundation.org \
    --cc=chris.friesen@windriver.com \
    --cc=cl@linux.com \
    --cc=fweisbec@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mtosatti@redhat.com \
    --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.