All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chris Friesen <chris.friesen@windriver.com>
To: Marcelo Tosatti <mtosatti@redhat.com>, linux-kernel@vger.kernel.org
Cc: Christoph Lameter <cl@linux.com>, Vu Tran <vu.tran@windriver.com>,
	Jim Somerville <Jim.Somerville@windriver.com>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH] affine kernel threads to specified cpumask
Date: Mon, 23 Mar 2020 09:29:23 -0600	[thread overview]
Message-ID: <e76aedad-8c55-1651-007d-6e17882403cb@windriver.com> (raw)
In-Reply-To: <20200323135414.GA28634@fuller.cnet>

On 3/23/2020 7:54 AM, Marcelo Tosatti wrote:
> 
> This is a kernel enhancement to configure the cpu affinity of kernel
> threads via kernel boot option kthread_cpus=<cpulist>.
> 
> With kthread_cpus 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= parameter,
> making it possible to enable load balancing on such CPUs
> during runtime.
> 
> Note-1: this is based off on MontaVista's patch at
> https://github.com/starlingx-staging/stx-integ/blob/master/kernel/kernel-std/centos/patches/affine-compute-kernel-threads.patch

It's Wind River, not MontaVista. :)

> Difference being that this patch is limited to modifying
> kernel thread cpumask: Behaviour of other threads can
> be controlled via cgroups or sched_setaffinity.

What cgroup would the usermode helpers called by the kernel end up in?
Same as init?

Assuming that's covered, I'm good with this patch.

<snip>

> +static struct cpumask user_cpu_kthread_mask __read_mostly;
> +static int user_cpu_kthread_mask_valid __read_mostly;

Would it be cleaner to get rid of user_cpu_kthread_mask_valid and just
move the "if (!cpumask_empty" check into init_kthread_cpumask()?  I'm
not really opinionated, just thinking out loud.

> +int __init init_kthread_cpumask(void)
> +{
> +	if (user_cpu_kthread_mask_valid == 1)
> +		cpumask_copy(&__cpu_kthread_mask, &user_cpu_kthread_mask);
> +	else
> +		cpumask_copy(&__cpu_kthread_mask, cpu_all_mask);
> +
> +	return 0;
> +}
> +
> +static int __init kthread_setup(char *str)
> +{
> +	cpulist_parse(str, &user_cpu_kthread_mask);
> +	if (!cpumask_empty(&user_cpu_kthread_mask))
> +		user_cpu_kthread_mask_valid = 1;
> +
> +	return 1;
> +}

  reply	other threads:[~2020-03-23 15:29 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-23 13:54 [PATCH] affine kernel threads to specified cpumask Marcelo Tosatti
2020-03-23 15:29 ` Chris Friesen [this message]
2020-03-24 15:07   ` Marcelo Tosatti
2020-03-23 16:22 ` Thomas Gleixner
2020-03-23 17:02   ` Chris Friesen
2020-03-23 20:31     ` Thomas Gleixner
2020-03-24 11:38       ` Marcelo Tosatti
2020-03-24 15:20       ` [PATCH v2] isolcpus: " Marcelo Tosatti
2020-03-24 15:56         ` Chris Friesen
2020-03-24 16:50           ` Marcelo Tosatti
2020-03-25  0:30         ` Frederic Weisbecker
2020-03-25 11:47           ` Marcelo Tosatti
2020-03-26 16:20             ` Frederic Weisbecker
2020-03-26 16:52               ` Frederic Weisbecker
2020-03-27 12:07               ` Marcelo Tosatti
2020-03-25 18:05         ` David Laight
2020-03-26 11:28           ` Marcelo Tosatti
2020-03-26 16:22           ` Frederic Weisbecker
2020-03-26 16:32             ` Chris Friesen
2020-03-26 16:51               ` 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=e76aedad-8c55-1651-007d-6e17882403cb@windriver.com \
    --to=chris.friesen@windriver.com \
    --cc=Jim.Somerville@windriver.com \
    --cc=akpm@linux-foundation.org \
    --cc=cl@linux.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mtosatti@redhat.com \
    --cc=vu.tran@windriver.com \
    /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.