Re: 2.6.18-rc3-mm2 early_param mem= fix

From: Keith Mannthey
Date: Tue Aug 08 2006 - 20:08:34 EST

On 8/7/06, Eric W. Biederman <ebiederm@xxxxxxxxxxxx> wrote:
Hugh Dickins <hugh@xxxxxxxxxxx> writes:

> On Sun, 6 Aug 2006, Hugh Dickins wrote:
>> I was impressed by how fast 2.6.18-rc3-mm2 is under memory pressure,
>> until I noticed that my "mem=512M" boot option was doing nothing. The
>> two fixes below got it working, but I wonder how many other early_param
>> "option=" args are wrong (e.g. "memmap=" in the same file): x86_64
>> shows many such, i386 shows only one, I've not followed it up further.
> Oh, and that's not enough for it to show up in x86_64's /proc/cmdline.

The /proc/cmdline part is easy.

Someone deleted the copy from saved_command_line to command_line.
Since kernel/params.c:parse_args called in init/main.c is destructive
if we don't do this we will never see a reasonable command line in /proc,
and /init implementations that parse /proc/command_line will choke horribly.

Signed-off-by: Eric W. Biederman <ebiederm@xxxxxxxxxxxx>

diff --git a/arch/x86_64/kernel/setup.c b/arch/x86_64/kernel/setup.c
index 3bc1ff4..37206a4 100644
--- a/arch/x86_64/kernel/setup.c
+++ b/arch/x86_64/kernel/setup.c
@@ -378,7 +378,8 @@ #endif

- *cmdline_p = saved_command_line;
+ memcpy(command_line, saved_command_line, COMMAND_LINE_SIZE);
+ *cmdline_p = command_line;


Ok this helped keep the cmdline around but the early_param is still
busted with 2.6.18-rc3-mm2 (I don't have cmdline problem with non -mm

I am booting with numa=hotadd=100 on x86_64. The parameter
hotadd_percent is not getting setup right. Printk tells me that
numa_setup is not called during boot.

if I change

early_param("numa=", numa_setup);
early_param("numa", numa_setup);

The parameter hotadd_percent is setup right but there is a
"Malformed early option 'numa'" message.

Is there some other patch that I missed to fix this?

Also it seems like the earlyconsole isn't getting setup right.... It
seems to take forever to start (say about 20-30 seconds) This pause in
the boot is caused by the reserve hot-add patch but early console
should start before the pause.

command line is root=/dev/sda3
ip= resume=/dev/sda2
showopts earlyprintk=ttyS0,115200 console=ttyS0,115200 console=tty0
debug numa=hotadd=100

Again thing work as expected with 2.6.18-rc3.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at