From: Alexander van Heukelum <heukelum@mailshack.com>
To: Mike Travis <travis@sgi.com>
Cc: Ingo Molnar <mingo@elte.hu>, Thomas Gleixner <tglx@linutronix.de>,
"H. Peter Anvin" <hpa@zytor.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-kernel@vger.kernel.org, heukelum@fastmail.fm
Subject: Re: [PATCH 1/2] boot: increase stack size for kernel boot loader decompressor
Date: Mon, 7 Apr 2008 23:44:34 +0200 [thread overview]
Message-ID: <20080407214434.GA5296@mailshack.com> (raw)
In-Reply-To: <47FA6478.1070301@sgi.com>
On Mon, Apr 07, 2008 at 11:14:16AM -0700, Mike Travis wrote:
> Alexander van Heukelum wrote:
> > On Fri, Apr 04, 2008 at 06:30:15PM -0700, Mike Travis wrote:
> >> * Increase stack size for the kernel bootloader decompressor. This is
> >> needed to boot a kernel with NR_CPUS = 4096. I tested with 8k stack
> >> size but that wasn't sufficient.
> >>
> >> Based on:
> >> git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
> >> + x86/latest .../x86/linux-2.6-x86.git
> >> + sched-devel/latest .../mingo/linux-2.6-sched-devel.git
> >>
> >> Signed-off-by: Mike Travis <travis@sgi.com>
> >> ---
> >> arch/x86/boot/compressed/head_64.S | 2 +-
> >> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> --- linux-2.6.25-rc5.orig/arch/x86/boot/compressed/head_64.S
> >> +++ linux-2.6.25-rc5/arch/x86/boot/compressed/head_64.S
> >> @@ -314,5 +314,5 @@ gdt_end:
> >> /* Stack for uncompression */
> >> .balign 4
> >> user_stack:
> >> - .fill 4096,4,0
> >> + .fill 16384,4,0
> > --------------^^^ * ^
> >
> > Changed from 16K to 64K. I wonder what is using so much space on
> > this stack?
> >
> >> user_stack_end:
> >>
> >> --
>
> Hi,
>
> That is a good question. It's pretty difficult to debug at that early
> stage (any ideas are certainly welcome!). It's mostly hit and miss (and
> handy access to the reset button ;-) I could do some further research
> but since it's "throwaway" memory (at least I think it is), then I didn't
> think it important to pursue.
It's certainly not important enough to put much time in. I tried
MAXSMP on top of just Ingo's -x86 with qemu, though, but it wouldn't
crash. I set the stack size to 16 bytes, and it still booted happily
(of course there is still about 11 kilobytes of inflate code which
is then overwritten by stack use).
I did see that the malloc space that the inflate code is using is
taken from _after_ the end of the bss. I don't see how this is
protected from being used/overwritten. Changing the stack size changes
the memory layout a bit... maybe you were so unlucky to create a
vmlinux image that was just barely smaller than some threshold and
increasing the stack size made the decompression/relocation area be
located somewhere else?
Test patch follows.
Greetings,
Alexander
> Thanks,
> Mike
diff --git a/arch/x86/boot/compressed/vmlinux_32.lds b/arch/x86/boot/compressed/vmlinux_32.lds
index bb3c483..c858e30 100644
--- a/arch/x86/boot/compressed/vmlinux_32.lds
+++ b/arch/x86/boot/compressed/vmlinux_32.lds
@@ -39,5 +39,6 @@ SECTIONS
*(.bss.*)
*(COMMON)
_end = . ;
+ _real_end = . + 0x4000;
}
}
diff --git a/arch/x86/boot/compressed/vmlinux_64.lds b/arch/x86/boot/compressed/vmlinux_64.lds
index 7e5c720..9bef3cd 100644
--- a/arch/x86/boot/compressed/vmlinux_64.lds
+++ b/arch/x86/boot/compressed/vmlinux_64.lds
@@ -44,5 +44,6 @@ SECTIONS
pgtable = . ;
. = . + 4096 * 6;
_heap = .;
+ _heap_end = . + 0x7000;
}
}
next prev parent reply other threads:[~2008-04-07 21:48 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-05 1:30 [PATCH 0/2] NR_CPUS: increase maximum NR_CPUS to 4096 Mike Travis
2008-04-05 1:30 ` [PATCH 1/2] boot: increase stack size for kernel boot loader decompressor Mike Travis
2008-04-05 13:46 ` Alexander van Heukelum
2008-04-07 18:14 ` Mike Travis
2008-04-07 21:44 ` Alexander van Heukelum [this message]
2008-04-08 8:23 ` Ingo Molnar
2008-04-08 10:54 ` [PATCH] x86: cleanup boot-heap usage Alexander van Heukelum
2008-04-08 18:39 ` Yinghai Lu
2008-04-08 14:56 ` [PATCH 1/2] boot: increase stack size for kernel boot loader decompressor Mike Travis
2008-04-08 17:54 ` Yinghai Lu
2008-04-09 15:08 ` Alexander van Heukelum
2008-04-09 17:58 ` Yinghai Lu
2008-04-09 17:59 ` Yinghai Lu
2008-04-08 12:20 ` Alexander van Heukelum
2008-04-08 13:41 ` Ingo Molnar
2008-04-08 15:10 ` Mike Travis
2008-04-08 15:39 ` Ingo Molnar
2008-04-08 19:09 ` Mike Travis
2008-04-08 21:48 ` Mike Travis
2008-04-05 1:30 ` [PATCH 2/2] x86: Modify Kconfig to allow up to 4096 cpus Mike Travis
2008-04-08 21:53 ` [PATCH 0/2] NR_CPUS: increase maximum NR_CPUS to 4096 Yinghai Lu
2008-04-08 22:03 ` Mike Travis
2008-04-08 22:32 ` Yinghai Lu
-- strict thread matches above, loose matches on Subject: below --
2008-03-26 1:41 Mike Travis
2008-03-26 1:41 ` [PATCH 1/2] boot: increase stack size for kernel boot loader decompressor Mike Travis
2008-03-26 1:41 ` Mike Travis
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=20080407214434.GA5296@mailshack.com \
--to=heukelum@mailshack.com \
--cc=akpm@linux-foundation.org \
--cc=heukelum@fastmail.fm \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=tglx@linutronix.de \
--cc=travis@sgi.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 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.