mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Phil Auld <pauld@redhat.com>
To: Waiman Long <longman@redhat.com>
Cc: Ingo Molnar <mingo@redhat.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Juri Lelli <juri.lelli@redhat.com>,
	Vincent Guittot <vincent.guittot@linaro.org>,
	Dietmar Eggemann <dietmar.eggemann@arm.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Ben Segall <bsegall@google.com>, Mel Gorman <mgorman@suse.de>,
	Valentin Schneider <vschneid@redhat.com>,
	Frederic Weisbecker <frederic@kernel.org>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 2/2] sched/isolation: Consolidate housekeeping cpumasks that are always identical
Date: Wed, 4 Sep 2024 13:19:49 -0400	[thread overview]
Message-ID: <20240904171949.GC136544@pauld.westford.csb> (raw)
In-Reply-To: <20240904171441.1048072-3-longman@redhat.com>

On Wed, Sep 04, 2024 at 01:14:41PM -0400 Waiman Long wrote:
> The housekeeping cpumasks are only set by two boot commandline
> parameters: "nohz_full" and "isolcpus". When there is more than one of
> "nohz_full" or "isolcpus", the extra ones must have the same CPU list
> or the setup will fail partially.
> 
> The HK_TYPE_TICK, HK_TYPE_DOMAIN and HK_TYPE_MANAGED_IRQ types are
> settable by "isolcpus" and they can be set individually. The other
> housekeeping types are all set by "nohz_full" without a way to set them
> individually. So they all have identical cpumasks.
> 
> There is actually no point in having different cpumasks for these
> "nohz_full" only housekeeping types. Consolidate these types to use the
> same cpumask by aliasing them to the same value. If there is a need to
> set any of them independently in the future, we can break them out to
> their own cpumasks again.
> 
> With this change, the number of cpumasks in the housekeeping structure
> drops from 9 to 4.
> 
> Signed-off-by: Waiman Long <longman@redhat.com>
> ---
>  include/linux/sched/isolation.h | 18 ++++++++++++------
>  kernel/sched/isolation.c        |  9 ++-------
>  2 files changed, 14 insertions(+), 13 deletions(-)
> 
> diff --git a/include/linux/sched/isolation.h b/include/linux/sched/isolation.h
> index 499d5e480882..e2c42172de82 100644
> --- a/include/linux/sched/isolation.h
> +++ b/include/linux/sched/isolation.h
> @@ -7,15 +7,21 @@
>  #include <linux/tick.h>
>  
>  enum hk_type {
> -	HK_TYPE_TIMER,
> -	HK_TYPE_RCU,
> -	HK_TYPE_MISC,
>  	HK_TYPE_TICK,
>  	HK_TYPE_DOMAIN,
> -	HK_TYPE_WQ,
>  	HK_TYPE_MANAGED_IRQ,
> -	HK_TYPE_KTHREAD,
> -	HK_TYPE_MAX
> +	HK_TYPE_KERNEL_NOISE,
> +	HK_TYPE_MAX,
> +
> +	/*
> +	 * The following housekeeping types are only set by the nohz_full
> +	 * boot commandline option. So they can share the same value.
> +	 */
> +	HK_TYPE_TIMER   = HK_TYPE_KERNEL_NOISE,
> +	HK_TYPE_RCU     = HK_TYPE_KERNEL_NOISE,
> +	HK_TYPE_MISC    = HK_TYPE_KERNEL_NOISE,
> +	HK_TYPE_WQ      = HK_TYPE_KERNEL_NOISE,
> +	HK_TYPE_KTHREAD = HK_TYPE_KERNEL_NOISE
>  };
>  
>  #ifdef CONFIG_CPU_ISOLATION
> diff --git a/kernel/sched/isolation.c b/kernel/sched/isolation.c
> index 5345e11f3d44..2b654272edcd 100644
> --- a/kernel/sched/isolation.c
> +++ b/kernel/sched/isolation.c
> @@ -9,14 +9,10 @@
>   */
>  
>  enum hk_flags {
> -	HK_FLAG_TIMER		= BIT(HK_TYPE_TIMER),
> -	HK_FLAG_RCU		= BIT(HK_TYPE_RCU),
> -	HK_FLAG_MISC		= BIT(HK_TYPE_MISC),
>  	HK_FLAG_TICK		= BIT(HK_TYPE_TICK),
>  	HK_FLAG_DOMAIN		= BIT(HK_TYPE_DOMAIN),
> -	HK_FLAG_WQ		= BIT(HK_TYPE_WQ),
>  	HK_FLAG_MANAGED_IRQ	= BIT(HK_TYPE_MANAGED_IRQ),
> -	HK_FLAG_KTHREAD		= BIT(HK_TYPE_KTHREAD),
> +	HK_FLAG_KERNEL_NOISE	= BIT(HK_TYPE_KERNEL_NOISE),
>  };
>  
>  DEFINE_STATIC_KEY_FALSE(housekeeping_overridden);
> @@ -194,8 +190,7 @@ static int __init housekeeping_nohz_full_setup(char *str)
>  {
>  	unsigned long flags;
>  
> -	flags = HK_FLAG_TICK | HK_FLAG_WQ | HK_FLAG_TIMER | HK_FLAG_RCU |
> -		HK_FLAG_MISC | HK_FLAG_KTHREAD;
> +	flags = HK_FLAG_KERNEL_NOISE;
>

This does not look equivalent. HK_FLAG_TICK seems to be lost?




Cheers,
Phil


>  	return housekeeping_setup(str, flags);
>  }
> -- 
> 2.43.5
> 

-- 


  reply	other threads:[~2024-09-04 17:20 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-04 17:14 [PATCH v2 0/2] sched: Miscellaneous isolation related cleanups Waiman Long
2024-09-04 17:14 ` [PATCH v2 1/2] sched/core: Remove HK_TYPE_SCHED Waiman Long
2024-09-04 17:14 ` [PATCH v2 2/2] sched/isolation: Consolidate housekeeping cpumasks that are always identical Waiman Long
2024-09-04 17:19   ` Phil Auld [this message]
2024-09-04 18:20     ` Waiman Long

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=20240904171949.GC136544@pauld.westford.csb \
    --to=pauld@redhat.com \
    --cc=bsegall@google.com \
    --cc=dietmar.eggemann@arm.com \
    --cc=frederic@kernel.org \
    --cc=juri.lelli@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=longman@redhat.com \
    --cc=mgorman@suse.de \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=vincent.guittot@linaro.org \
    --cc=vschneid@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®