linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Masami Hiramatsu <mhiramat@kernel.org>
To: Luis Chamberlain <mcgrof@kernel.org>
Cc: Vlastimil Babka <vbabka@suse.cz>,
	Andrew Morton <akpm@linux-foundation.org>,
	Kees Cook <keescook@chromium.org>,
	Iurii Zaikin <yzaikin@google.com>,
	linux-kernel@vger.kernel.org, linux-api@vger.kernel.org,
	linux-mm@kvack.org, Ivan Teterevkov <ivan.teterevkov@nutanix.com>,
	Michal Hocko <mhocko@kernel.org>,
	David Rientjes <rientjes@google.com>,
	Matthew Wilcox <willy@infradead.org>,
	"Eric W . Biederman" <ebiederm@xmission.com>,
	"Guilherme G . Piccoli" <gpiccoli@canonical.com>,
	Alexey Dobriyan <adobriyan@gmail.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Christian Brauner <christian.brauner@ubuntu.com>
Subject: Re: [PATCH v2 1/3] kernel/sysctl: support setting sysctl parameters from kernel command line
Date: Fri, 17 Apr 2020 19:34:42 +0900	[thread overview]
Message-ID: <20200417193442.b20394dcaac02d5aeef9b5ee@kernel.org> (raw)
In-Reply-To: <20200416155327.GT11244@42.do-not-panic.com>

On Thu, 16 Apr 2020 15:53:27 +0000
Luis Chamberlain <mcgrof@kernel.org> wrote:

> On Thu, Apr 16, 2020 at 07:49:55PM +0900, Masami Hiramatsu wrote:
> > Hi Luis,
> > 
> > On Thu, 16 Apr 2020 01:29:31 +0000
> > Luis Chamberlain <mcgrof@kernel.org> wrote:
> > 
> > > On Wed, Apr 15, 2020 at 06:03:55PM +0900, Masami Hiramatsu wrote:
> > > > On Tue, 14 Apr 2020 13:32:20 +0200
> > > > Vlastimil Babka <vbabka@suse.cz> wrote:
> > > > > diff --git a/init/main.c b/init/main.c
> > > > > index a48617f2e5e5..7b43118215d6 100644
> > > > > --- a/init/main.c
> > > > > +++ b/init/main.c
> > > > > @@ -1372,6 +1372,8 @@ static int __ref kernel_init(void *unused)
> > > > >  
> > > > >  	rcu_end_inkernel_boot();
> > > > >  
> > > > > +	do_sysctl_args();
> > > > > +
> > > > 
> > > > Ah, I see. Since the sysctl is designed to be called after all __init calls were
> > > > done, it shouldn't use bootconfig directly because bootconfig is full of __init
> > > > call.
> > > 
> > > The idea is bootconfig would be useful in the sense of a library set of
> > > helpers which could be modified to remove __init, and then used to
> > > instrument the cmdline depending on certain debugging kconfig entries.
> > 
> > Would you mean making bootconfig (parser and APIs) be more generic so that
> > other subsystem can reuse it with their data?
> > Or just make it available after boot? (I think this latter one will be
> > useful for module initialization)
> 
> The later. First use case that comes to mind is debugging cmdline, so
> to see if what one adds is what ends up happening at run time after
> boot.

Hmm, I think that's not so easy to debug command line after boot, because
the kernel command line is parsed (and handlers are executed) already in
boot time. We can not repeat it after boot.

> > > We currently have no way to purposely extend / break the cmdline for
> > > debugging purposes, so, bootconfig's parsers, since it already has a
> > > way to extend the cmdlineline, might make it much easier to do this
> > > later.
> > > 
> > > Without bootconfig, if we wanted to add new kconfig to, for example,
> > > add new funny cmdline arguments to test they worked or not, we'd have
> > > to devise our own set of helpers now. ie, new functionality. bootconfig
> > > however already has existing functionality to tweak the cmdline, and so
> > > some code could be leveraged there for this purpose.
> > 
> > Hmm, you can use the bootconfig as a "supplemental" kernel command line,
> > but not tweak (like modify/replace) it. Would you like to change the
> > kernel command line parameter on-line?
> 
> It would be during boot. To augment it as if the user had used certain
> parameters on boot. But if only a new path is tested, and we can't
> reproduce as if the user had *not* used bootconfig, this idea would
> only be useful to test bootconfig parsing, nothing else. The hope was
> to do both.

As you may know, the bootconfig already supports "additional" kernel
command line. All keys which starts "kernel" is copied into kernel
command line at early boot timing. So if you want to write a test
parameter in the bootconfig, you can do it.

However, it is not a good idea to execute command line handlers
twice because it can be destructive or can append all parameters
(e.g. "console=" .)

For the new feature can natively use the bootconfig, for example
boot-time tracing (kernel/trace/trace_boot.c) is something like
this sysctl on boot, and natively uses the bootconfig because
the tracing parameter is too complex for kernel command line :)

Thank you,

-- 
Masami Hiramatsu <mhiramat@kernel.org>

  reply	other threads:[~2020-04-17 10:34 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-14 11:32 [PATCH v2 0/3] support setting sysctl parameters from kernel command line Vlastimil Babka
2020-04-14 11:32 ` [PATCH v2 1/3] kernel/sysctl: " Vlastimil Babka
2020-04-15  3:08   ` Kees Cook
2020-04-15  9:03   ` Masami Hiramatsu
2020-04-16  1:29     ` Luis Chamberlain
2020-04-16 10:49       ` Masami Hiramatsu
2020-04-16 15:53         ` Luis Chamberlain
2020-04-17 10:34           ` Masami Hiramatsu [this message]
2020-04-17 16:59             ` Luis Chamberlain
2020-04-18 10:12               ` Masami Hiramatsu
2020-04-14 11:32 ` [PATCH v2 2/3] kernel/sysctl: support handling command line aliases Vlastimil Babka
2020-04-14 11:32 ` [PATCH v2 3/3] kernel/hung_task convert hung_task_panic boot parameter to sysctl Vlastimil Babka
2020-04-15  3:23 ` [PATCH v2 0/3] support setting sysctl parameters from kernel command line Masami Hiramatsu
2020-04-15  6:30   ` Luis Chamberlain
2020-04-16  6:02     ` Masami Hiramatsu
2020-04-16  6:38       ` Luis Chamberlain
2020-04-15  8:56   ` Vlastimil Babka
2020-04-15 10:01     ` Michal Hocko
2020-04-16  6:08     ` Masami Hiramatsu

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=20200417193442.b20394dcaac02d5aeef9b5ee@kernel.org \
    --to=mhiramat@kernel.org \
    --cc=adobriyan@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=christian.brauner@ubuntu.com \
    --cc=ebiederm@xmission.com \
    --cc=gpiccoli@canonical.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=ivan.teterevkov@nutanix.com \
    --cc=keescook@chromium.org \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mcgrof@kernel.org \
    --cc=mhocko@kernel.org \
    --cc=rientjes@google.com \
    --cc=tglx@linutronix.de \
    --cc=vbabka@suse.cz \
    --cc=willy@infradead.org \
    --cc=yzaikin@google.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;
as well as URLs for NNTP newsgroup(s).