All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Xu <peterx@redhat.com>
To: Paul Gortmaker <paul.gortmaker@windriver.com>
Cc: linux-kernel@vger.kernel.org, Ingo Molnar <mingo@redhat.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Peter Zijlstra <peterz@infradead.org>,
	Frederic Weisbecker <frederic@kernel.org>,
	Marcelo Tosatti <mtosatti@redhat.com>
Subject: Re: [PATCH] sched/isolation: don't do unbounded chomp on bootarg string
Date: Mon, 19 Apr 2021 16:38:55 -0400	[thread overview]
Message-ID: <20210419203855.GX4440@xz-x1> (raw)
In-Reply-To: <20210418215426.1086941-1-paul.gortmaker@windriver.com>

On Sun, Apr 18, 2021 at 05:54:26PM -0400, Paul Gortmaker wrote:
> After commit 3662daf02350 ("sched/isolation: Allow "isolcpus=" to skip
> unknown sub-parameters") the isolcpus= string is walked to skip over what
> might be any future flag comma separated additions.
> 
> However, there is a logic error, and so as can clearly be seen below, it
> will ignore its own arg len and search to the end of the bootarg string.
> 
>  $ dmesg|grep isol
>  Command line: BOOT_IMAGE=/boot/bzImage isolcpus=xyz pleasedontparseme=1 root=/dev/sda1 ro
>  isolcpus: Skipped unknown flag xyz
>  isolcpus: Invalid flag pleasedontparseme=1 root=/dev/sda1 ro
> 
> This happens because the flag "skip" code does an unconditional
> increment, which skips over the '\0' check the loop body looks for. If
> the isolcpus= happens to be the last bootarg, then you'd never notice?
> 
> So we only increment if the skipped flag is followed by a comma, as per
> what the existing "continue" flag matching code does.
> 
> Note that isolcpus= was declared deprecated as of v4.15 (b0d40d2b22fe),
> so we might want to revisit that if we are trying to future-proof it
> as recently as a year ago for as yet unseen new flags.

Thanks for report the issue.

Is cpuset going to totally replace "isolcpus="?  It seems most hk_flags will be
handled by nohz_full=, and HK_FLAG_DOMAIN can be done by cpuset.  However it
seems still the only place to set the new flag HK_FLAG_MANAGED_IRQ.  If one day
we'll finally obsolete isolcpus= we may need to think about where to put it?

When I looked at it, I also noticed I see no caller to set HK_FLAG_SCHED at
all.  Is it really used anywhere?

Regarding this patch...

> 
> Cc: Peter Xu <peterx@redhat.com>
> Cc: Ingo Molnar <mingo@redhat.com>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Cc: Frederic Weisbecker <frederic@kernel.org>
> Fixes: 3662daf02350 ("sched/isolation: Allow "isolcpus=" to skip unknown sub-parameters")
> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
> 
> diff --git a/kernel/sched/isolation.c b/kernel/sched/isolation.c
> index 5a6ea03f9882..9652dba7e938 100644
> --- a/kernel/sched/isolation.c
> +++ b/kernel/sched/isolation.c
> @@ -188,7 +188,8 @@ static int __init housekeeping_isolcpus_setup(char *str)
>  		}
>  
>  		pr_info("isolcpus: Skipped unknown flag %.*s\n", len, par);
> -		str++;
> +		if (str[1] == ',')	/* above continue; match on "flag," */

.. wondering why it is not "str[0] == ','" instead?

Thanks,

> +			str++;
>  	}
>  
>  	/* Default behaviour for isolcpus without flags */
> -- 
> 2.25.1
> 

-- 
Peter Xu


  reply	other threads:[~2021-04-19 20:39 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-18 21:54 [PATCH] sched/isolation: don't do unbounded chomp on bootarg string Paul Gortmaker
2021-04-19 20:38 ` Peter Xu [this message]
2021-04-21  6:02   ` Paul Gortmaker
  -- strict thread matches above, loose matches on Subject: below --
2021-04-18 21:34 Paul Gortmaker

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=20210419203855.GX4440@xz-x1 \
    --to=peterx@redhat.com \
    --cc=frederic@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=mtosatti@redhat.com \
    --cc=paul.gortmaker@windriver.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.