public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Matt Mackall <mpm@selenic.com>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: linux-kernel <linux-kernel@vger.kernel.org>,
	Tim Bird <tim.bird@am.sony.com>
Subject: Re: [PATCH] x86 built-in command line
Date: Mon, 12 Jun 2006 15:49:25 -0500	[thread overview]
Message-ID: <20060612204925.GT24227@waste.org> (raw)
In-Reply-To: <200606121712.k5CHClUE017185@terminus.zytor.com>

On Mon, Jun 12, 2006 at 10:12:47AM -0700, H. Peter Anvin wrote:
> Followup to:  <20060611215530.GH24227@waste.org>
> By author:    Matt Mackall <mpm@selenic.com>
> In newsgroup: linux.dev.kernel
> >
> > This patch allows building in a kernel command line on x86 as is
> > possible on several other arches.
> > 
> > Index: linux/arch/i386/kernel/setup.c
> > ===================================================================
> > --- linux.orig/arch/i386/kernel/setup.c	2006-05-26 16:18:13.000000000 -0500
> > +++ linux/arch/i386/kernel/setup.c	2006-06-11 16:23:51.000000000 -0500
> > @@ -713,6 +713,10 @@ static void __init parse_cmdline_early (
> >  	int len = 0;
> >  	int userdef = 0;
> >  
> > +#ifdef CONFIG_CMDLINE_BOOL
> > +	strlcpy(saved_command_line, CONFIG_CMDLINE, COMMAND_LINE_SIZE);
> > +#endif
> > +
> >  	/* Save unparsed command line copy for /proc/cmdline */
> >  	saved_command_line[COMMAND_LINE_SIZE-1] = '\0';
> >  
> 
> NAK.
> 
> a. Please make the patch available for x86-64 as well as x86.  The two
> are coupled enough that they need to agree.

I don't think that's a show-stopper. I'll provide one after we decide
how this should work.
 
> b. This patch will override a user-provided command line if one
> exists.  This is the wrong behaviour; instead, the builtin command
> line should only apply if no user-specified command line is present.

There are four possible behaviors:

a) internal supercedes external (what's in the patch)
b) external supercedes internal (what you proposed)
c) external is appended to internal (what Tim proposed)
d) internal is appended to external (not very interesting)

And there are some possible uses:

1) bootloader doesn't support command line
2) bootloader has hardcoded or otherwise difficult-to-change command line
3) automated testing for tftp boot, etc.
4) bypassing boot protocol command line length (not yet supported)
5) setting defaults like ACPI off, etc.

(a) works for 1, 2, 3, and 4.
(b) works for 1, 3, and 4, provided you clear the command line in your
boot loader
(c) works for 1, 3, and 4, provided you're not trying to override
earlier arguments

(5) generally is unworkable because our parser doesn't generally do the
right thing for options like "acpi=on acpi=off" (though it might work
in the specific case of acpi, haven't checked). If, for instance, you
try to override console, you'll get two consoles.

So I think (a) is the way to go. If there's a use case for (b) that's
important, it's not jumping out at me. Finally, at least the arch I
inspected when preparing this patch had gone with (a) too.

(As an example of (2), the last x86 bootloader I dealt with was written
in Forth, and getting a fresh build of it meant getting some cycles
from the last two Forth hackers on the planet.)

-- 
Mathematics is the supreme nostalgia of our time.

  parent reply	other threads:[~2006-06-12 20:59 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-11 21:55 [PATCH] x86 built-in command line Matt Mackall
2006-06-11 22:54 ` Jesper Juhl
2006-06-11 23:30 ` Jan Engelhardt
2006-06-11 23:47   ` Matt Mackall
2006-06-12 17:14     ` H. Peter Anvin
2006-06-11 23:40 ` Arjan van de Ven
2006-06-11 23:51   ` Matt Mackall
2006-06-12  0:08     ` Arjan van de Ven
2006-06-12  1:38       ` Matt Mackall
2006-06-12  5:13         ` Willy Tarreau
2006-06-12 17:15     ` H. Peter Anvin
2006-06-12  8:11 ` Andi Kleen
2006-06-12 14:37   ` Matt Mackall
2006-06-12 17:18     ` H. Peter Anvin
2006-06-12 17:12 ` H. Peter Anvin
2006-06-12 17:36   ` Michael Buesch
2006-06-12 17:52     ` H. Peter Anvin
2006-06-12 17:59   ` Tim Bird
     [not found] ` <200606121712.k5CHClUE017185@terminus.zytor.com>
2006-06-12 20:49   ` Matt Mackall [this message]
2006-06-12 21:19     ` Thomas Gleixner
2006-06-12 21:36       ` Tim Bird
2006-06-12 21:45         ` Thomas Gleixner
2006-06-12 22:03           ` Tim Bird
2006-06-12 21:45     ` Randy.Dunlap
2006-06-12 22:00       ` Tim Bird
2006-06-12 22:10         ` Randy.Dunlap

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=20060612204925.GT24227@waste.org \
    --to=mpm@selenic.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tim.bird@am.sony.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