All of lore.kernel.org
 help / color / mirror / Atom feed
From: Randy Dunlap <rdunlap@infradead.org>
To: Rusty Russell <rusty@rustcorp.com.au>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Mateusz Guzik <mguzik@redhat.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	"H. Peter Anvin" <hpa@zytor.com>, Borislav Petkov <bp@alien8.de>,
	Ingo Molnar <mingo@kernel.org>, Mel Gorman <mgorman@suse.de>,
	Kay Sievers <kay@vrfy.org>
Subject: Re: [RFC PATCH] cmdline: Hide "debug" from /proc/cmdline
Date: Mon, 05 May 2014 06:15:02 -0700	[thread overview]
Message-ID: <53678ED6.4070502@infradead.org> (raw)
In-Reply-To: <871tw9c6kt.fsf@rustcorp.com.au>

On 05/04/2014 07:17 PM, Rusty Russell wrote:
> Andrew Morton <akpm@linux-foundation.org> writes:
>> On Mon, 07 Apr 2014 14:24:45 +0930 Rusty Russell <rusty@rustcorp.com.au> wrote:
>>
>>> Subject: param: hand arguments after -- straight to init
>>>
>>> The kernel passes any args it doesn't need through to init, except it
>>> assumes anything containing '.' belongs to the kernel (for a module).
>>> This change means all users can clearly distinguish which arguments
>>> are for init.
>>>
>>> For example, the kernel uses debug ("dee-bug") to mean log everything to
>>> the console, where systemd uses the debug from the Scandinavian "day-boog"
>>> meaning "fail to boot".  If a future versions uses argv[] instead of
>>> reading /proc/cmdline, this confusion will be avoided.
>>>
>>> eg: test 'FOO="this is --foo"' -- 'systemd.debug="true true true"'
>>>
>>> Gives:
>>> argv[0] = '/debug-init'
>>> argv[1] = 'test'
>>> argv[2] = 'systemd.debug=true true true'
>>> envp[0] = 'HOME=/'
>>> envp[1] = 'TERM=linux'
>>> envp[2] = 'FOO=this is --foo'
>>
>> This (user-facing) feature doesn't seem to have been documented
>> anywhere.  Documentation/kernel-parameters.txt, I guess.
>
> That document does need some love.  How's this?
>
> 1) __setup() is messy, prefer module_param and core_param.
> 2) Document --
> 3) Document modprobe scraping /proc/cmdline.
> 4) Document handing of leftover parameters to init.
> 5) Document use of quotes to protect whitespace.
>
> diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
> index 43842177b771..56a4c2d0c741 100644
> --- a/Documentation/kernel-parameters.txt
> +++ b/Documentation/kernel-parameters.txt
> @@ -1,27 +1,37 @@
>                             Kernel Parameters
>                             ~~~~~~~~~~~~~~~~~
>
> -The following is a consolidated list of the kernel parameters as implemented
> -(mostly) by the __setup() macro and sorted into English Dictionary order
> -(defined as ignoring all punctuation and sorting digits before letters in a
> -case insensitive manner), and with descriptions where known.
> -
> -Module parameters for loadable modules are specified only as the
> -parameter name with optional '=' and value as appropriate, such as:
> -
> -	modprobe usbcore blinkenlights=1
> -
> -Module parameters for modules that are built into the kernel image
> -are specified on the kernel command line with the module name plus
> -'.' plus parameter name, with '=' and value if appropriate, such as:
> -
> -	usbcore.blinkenlights=1
> +The following is a consolidated list of the kernel parameters as
> +implemented by the __setup(), core_param() and module_param() macros
> +and sorted into English Dictionary order (defined as ignoring all
> +punctuation and sorting digits before letters in a case insensitive
> +manner), and with descriptions where known.
> +
> +The kernel parses parameters from the kernel command line up to "--";
> +if it doesn't recognize a parameter and it doesn't contain a '.', the
> +parameter gets passed to init: parameters with '=' go into init's
> +environment, others are passed as command line arguments to init.
> +Everything after "--" is passed as an argument to init.
> +
> +Module parameters can be specified in two ways: via the kernel command
> +line with a module name prefix, or via modprobe, eg:

All looks good to me except for 2 instances of "eg" which should be
"e.g." (just above and about 4 paragraphs below here).

> +
> +	(kernel command line) usbcore.blinkenlights=1
> +	(modprobe command line) modprobe usbcore blinkenlights=1
> +
> +Parameters for modules which are built into the kernel need to be
> +specified on the kernel command line.  modprobe looks through the
> +kernel command line (/proc/cmdline) and collects module parameters
> +when it loads a module, so the kernel command line can be used for
> +loadable modules too.
>
>   Hyphens (dashes) and underscores are equivalent in parameter names, so
>   	log_buf_len=1M print-fatal-signals=1
>   can also be entered as
>   	log-buf-len=1M print_fatal_signals=1
>
> +Double-quotes can be used to protect spaces in values, eg:
> +	param="spaces in here"
>
>   This document may not be entirely up to date and comprehensive. The command
>   "modinfo -p ${modulename}" shows a current list of all parameters of a loadable
> --


-- 
~Randy

  reply	other threads:[~2014-05-05 13:15 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-02 18:42 [RFC PATCH] cmdline: Hide "debug" from /proc/cmdline Steven Rostedt
2014-04-02 18:57 ` Linus Torvalds
2014-04-02 19:04 ` Andrew Morton
2014-04-02 19:05   ` Borislav Petkov
2014-04-02 19:08   ` Randy Dunlap
2014-04-02 19:50   ` Thomas Gleixner
2014-04-02 20:05     ` Richard Weinberger
2014-04-02 20:43       ` Thomas Gleixner
2014-04-02 22:18   ` Greg KH
2014-04-02 19:08 ` Borislav Petkov
2014-04-02 19:33   ` Steven Rostedt
2014-04-02 22:12 ` Mateusz Guzik
2014-04-02 22:30   ` David Daney
2014-04-02 22:37   ` Greg KH
2014-04-02 23:13   ` Linus Torvalds
2014-04-02 23:23     ` Jiri Kosina
2014-04-02 23:28       ` Andrew Morton
2014-04-02 23:42         ` Linus Torvalds
2014-04-02 23:47           ` Jiri Kosina
2014-04-02 23:52             ` Linus Torvalds
2014-04-02 23:57               ` Jiri Kosina
2014-04-03  1:38               ` Steven Rostedt
2014-04-03  1:47               ` Linus Torvalds
2014-04-03  9:03                 ` Borislav Petkov
2014-04-03 10:43                 ` Joerg Roedel
2014-04-03 17:05                   ` Theodore Ts'o
2014-04-03 17:09                     ` H. Peter Anvin
2014-04-03 17:18                       ` Theodore Ts'o
2014-04-03 19:19                         ` H. Peter Anvin
2014-04-04 18:21                     ` Andy Lutomirski
2014-04-04 18:32                       ` Linus Torvalds
2014-04-04 18:57                         ` Andy Lutomirski
2014-04-04 19:09                           ` Linus Torvalds
2014-04-04 21:17                         ` John Stoffel
2014-04-04 23:17                           ` Greg Kroah-Hartman
2014-04-05 14:37                             ` John Stoffel
2014-04-05 23:23                             ` Theodore Ts'o
2014-04-04 18:42                       ` Linus Torvalds
2014-04-04 18:51                         ` Andrew Morton
2014-04-04 18:57                           ` Linus Torvalds
2014-04-06 20:49                             ` David Timothy Strauss
2014-05-06  9:38                               ` Felipe Contreras
2014-04-04 19:44                           ` Steven Rostedt
2014-04-04 20:17                             ` Theodore Ts'o
2014-04-04 22:45                               ` Alexei Starovoitov
2014-04-04 22:48                                 ` Linus Torvalds
2014-04-04 19:00                         ` Andy Lutomirski
2014-04-03 11:23                 ` Borislav Petkov
2014-04-03 11:38                   ` Ingo Molnar
2014-04-15  7:26                 ` Borislav Petkov
2014-04-03 10:34               ` Måns Rullgård
2014-04-03 11:03                 ` Borislav Petkov
2014-04-06 17:19                   ` One Thousand Gnomes
2014-05-06  9:47                   ` Felipe Contreras
2014-04-02 23:47           ` Joe Perches
2014-04-02 23:31       ` Linus Torvalds
2014-04-03 11:25       ` Måns Rullgård
2014-04-03 15:17         ` Tim Bird
2014-04-03 18:06           ` Greg Kroah-Hartman
2014-05-06  9:35             ` Felipe Contreras
2014-04-07  4:54     ` Rusty Russell
2014-05-02 22:34       ` Andrew Morton
2014-05-05  2:17         ` Rusty Russell
2014-05-05 13:15           ` Randy Dunlap [this message]
2014-05-06  0:57             ` Rusty Russell
2014-05-19  8:06               ` Diego Viola
2014-05-19  8:11                 ` Diego Viola
2014-05-19 14:40                   ` Randy Dunlap
2014-05-20  1:26                     ` Rusty Russell
2014-05-20  6:26                       ` Diego Viola
2014-05-21  1:52                         ` Rusty Russell
2014-04-03  0:49   ` Steven Rostedt
  -- strict thread matches above, loose matches on Subject: below --
2014-04-23 15:15 Borislav Petkov
2014-04-23 20:44 ` Borislav Petkov

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=53678ED6.4070502@infradead.org \
    --to=rdunlap@infradead.org \
    --cc=akpm@linux-foundation.org \
    --cc=bp@alien8.de \
    --cc=gregkh@linuxfoundation.org \
    --cc=hpa@zytor.com \
    --cc=kay@vrfy.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mgorman@suse.de \
    --cc=mguzik@redhat.com \
    --cc=mingo@kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=rusty@rustcorp.com.au \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.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.