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;
> +}
next prev parent 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.