All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@kernel.org>
To: Frederic Weisbecker <frederic@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>,
	LKML <linux-kernel@vger.kernel.org>, Tejun Heo <tj@kernel.org>,
	Juri Lelli <juri.lelli@redhat.com>,
	Alex Belits <abelits@marvell.com>, Nitesh Lal <nilal@redhat.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Nicolas Saenz <nsaenzju@redhat.com>,
	Christoph Lameter <cl@gentwo.de>,
	Marcelo Tosatti <mtosatti@redhat.com>,
	Zefan Li <lizefan.x@bytedance.com>,
	Paul Gortmaker <paul.gortmaker@windriver.com>
Subject: Re: [PATCH 7/8] sched/isolation: Fix housekeeping_mask memory leak
Date: Wed, 5 Jan 2022 15:30:34 -0800	[thread overview]
Message-ID: <20220105233034.GA977207@paulmck-ThinkPad-P17-Gen-1> (raw)
In-Reply-To: <20220104144944.1278663-8-frederic@kernel.org>

On Tue, Jan 04, 2022 at 03:49:43PM +0100, Frederic Weisbecker wrote:
> If "nohz_full=" or "isolcpus=nohz" are called with CONFIG_NO_HZ_FULL=n,
> housekeeping_mask doesn't get freed despite it being unused if
> housekeeping_setup() is called for the first time.
> 
> Check this scenario first to fix this, so that no useless allocation
> is performed.
> 
> Signed-off-by: Frederic Weisbecker <frederic@kernel.org>

Reviewed-by: Paul E. McKenney <paulmck@kernel.org>

> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Juri Lelli <juri.lelli@redhat.com>
> Cc: Marcelo Tosatti <mtosatti@redhat.com>
> Cc: Nitesh Lal <nilal@redhat.com>
> Cc: Nicolas Saenz <nsaenzju@redhat.com>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Cc: Christoph Lameter <cl@gentwo.de>
> Cc: Tejun Heo <tj@kernel.org>
> Cc: Zefan Li <lizefan.x@bytedance.com>
> Cc: Alex Belits <abelits@marvell.com>
> ---
>  kernel/sched/isolation.c | 19 ++++++++++---------
>  1 file changed, 10 insertions(+), 9 deletions(-)
> 
> diff --git a/kernel/sched/isolation.c b/kernel/sched/isolation.c
> index 828dacec483e..883eee9fae22 100644
> --- a/kernel/sched/isolation.c
> +++ b/kernel/sched/isolation.c
> @@ -94,6 +94,14 @@ static int __init housekeeping_setup(char *str, enum hk_flags flags)
>  	cpumask_var_t non_housekeeping_mask, housekeeping_staging;
>  	int err = 0;
>  
> +	if ((flags & HK_FLAG_TICK) && !(housekeeping_flags & HK_FLAG_TICK)) {
> +		if (!IS_ENABLED(CONFIG_NO_HZ_FULL)) {
> +			pr_warn("Housekeeping: nohz unsupported."
> +				" Build with CONFIG_NO_HZ_FULL\n");
> +			return 0;
> +		}
> +	}
> +
>  	alloc_bootmem_cpumask_var(&non_housekeeping_mask);
>  	if (cpulist_parse(str, non_housekeeping_mask) < 0) {
>  		pr_warn("Housekeeping: nohz_full= or isolcpus= incorrect CPU range\n");
> @@ -123,15 +131,8 @@ static int __init housekeeping_setup(char *str, enum hk_flags flags)
>  		}
>  	}
>  
> -	if ((flags & HK_FLAG_TICK) && !(housekeeping_flags & HK_FLAG_TICK)) {
> -		if (IS_ENABLED(CONFIG_NO_HZ_FULL)) {
> -			tick_nohz_full_setup(non_housekeeping_mask);
> -		} else {
> -			pr_warn("Housekeeping: nohz unsupported."
> -				" Build with CONFIG_NO_HZ_FULL\n");
> -			goto free_housekeeping_staging;
> -		}
> -	}
> +	if ((flags & HK_FLAG_TICK) && !(housekeeping_flags & HK_FLAG_TICK))
> +		tick_nohz_full_setup(non_housekeeping_mask);
>  
>  	housekeeping_flags |= flags;
>  	err = 1;
> -- 
> 2.25.1
> 

  reply	other threads:[~2022-01-05 23:30 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-04 14:49 [PATCH 0/8] sched/isolation: Split housekeeping cpumask Frederic Weisbecker
2022-01-04 14:49 ` [PATCH 1/8] pci: Decouple HK_FLAG_WQ and HK_FLAG_DOMAIN cpumask fetch Frederic Weisbecker
2022-01-04 14:49 ` [PATCH 2/8] workqueue: " Frederic Weisbecker
2022-01-07 21:22   ` Tejun Heo
2022-01-04 14:49 ` [PATCH 3/8] net: " Frederic Weisbecker
2022-01-04 14:49 ` [PATCH 4/8] sched/isolation: Use single feature type while referring to housekeeping cpumask Frederic Weisbecker
2022-01-04 14:49 ` [PATCH 5/8] sched/isolation: Consolidate check for housekeeping minimum service Frederic Weisbecker
2022-01-04 14:49 ` [PATCH 6/8] sched/isolation: Consolidate error handling Frederic Weisbecker
2022-01-04 14:49 ` [PATCH 7/8] sched/isolation: Fix housekeeping_mask memory leak Frederic Weisbecker
2022-01-05 23:30   ` Paul E. McKenney [this message]
2022-01-04 14:49 ` [PATCH 8/8] sched/isolation: Split housekeeping cpumask per isolation features Frederic Weisbecker
2022-01-06 13:43 ` [PATCH 0/8] sched/isolation: Split housekeeping cpumask Marcelo Tosatti
2022-01-07 14:59 ` Phil Auld
2022-01-10 16:51 ` Juri Lelli
2022-02-04 13:04 [PATCH 0/8] sched/isolation: Split housekeeping cpumask v2 Frederic Weisbecker
2022-02-04 13:04 ` [PATCH 7/8] sched/isolation: Fix housekeeping_mask memory leak Frederic Weisbecker
2022-02-07 15:59 [PATCH 0/8] sched/isolation: Split housekeeping cpumask v3 Frederic Weisbecker
2022-02-07 15:59 ` [PATCH 7/8] sched/isolation: Fix housekeeping_mask memory leak 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=20220105233034.GA977207@paulmck-ThinkPad-P17-Gen-1 \
    --to=paulmck@kernel.org \
    --cc=abelits@marvell.com \
    --cc=cl@gentwo.de \
    --cc=frederic@kernel.org \
    --cc=juri.lelli@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lizefan.x@bytedance.com \
    --cc=mtosatti@redhat.com \
    --cc=nilal@redhat.com \
    --cc=nsaenzju@redhat.com \
    --cc=paul.gortmaker@windriver.com \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=tj@kernel.org \
    /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.