From: Vivek Goyal <vgoyal@in.ibm.com>
To: Steve Fox <drfickle@us.ibm.com>, mel@skynet.ie
Cc: Andi Kleen <ak@suse.de>, Badari Pulavarty <pbadari@us.ibm.com>,
Martin Bligh <mbligh@mbligh.org>, Andrew Morton <akpm@osdl.org>,
lkml <linux-kernel@vger.kernel.org>,
netdev@vger.kernel.org, kmannth@us.ibm.com,
Andy Whitcroft <apw@shadowen.org>
Subject: Re: 2.6.18-mm2 boot failure on x86-64
Date: Fri, 6 Oct 2006 16:04:36 -0400 [thread overview]
Message-ID: <20061006200436.GG19756@in.ibm.com> (raw)
In-Reply-To: <1160157830.29690.66.camel@flooterbu>
On Fri, Oct 06, 2006 at 01:03:50PM -0500, Steve Fox wrote:
> On Fri, 2006-10-06 at 18:11 +0100, Mel Gorman wrote:
> > On (06/10/06 11:36), Vivek Goyal didst pronounce:
> > > Where is bss placed in physical memory? I guess bss_start and bss_stop
> > > from System.map will tell us. That will confirm that above memset step is
> > > stomping over bss. Then we have to just find that somewhere probably
> > > we allocated wrong physical memory area for bootmem allocator map.
> > >
> >
> > BSS is at 0x643000 -> 0x777BC4
> > init_bootmem wipes from 0x777000 -> 0x8F7000
> >
> > So the BSS bytes from 0x777000 ->0x777BC4 (which looks very suspiciously
> > pile a page alignment of addr & PAGE_MASK) gets set to 0xFF. One possible
> > fix is below. It adds a check in bad_addr() to see if the BSS section is
> > about to be used for bootmap. It Seems To Work For Me (tm) and illustrates
> > the source of the problem even if it's not the 100% correct fix.
>
> I was able to boot the machine with Mel's patch applied on top of
> -git22.
Please have a look at the attached patch. Does it make some sense.
Steve, can you please give this patch a try if it fixes the problem?
Thanks
Vivek
o Currently some code pieces assume that address returned by find_e820_area()
are page aligned. But looks like find_e820_area() had no such intention
and hence one might end up stomping over some of the data. One such
case is bootmem allocator initialization code stomped over bss.
o This patch modified find_e820_area() to return page aligned address. This
might be little wasteful of memory but at the same time probably it is
easier to handle page aligned memory.
Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com>
---
arch/x86_64/kernel/e820.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff -puN arch/x86_64/kernel/e820.c~x86_64-return-page-aligned-phy-addr-from-find-e820-area arch/x86_64/kernel/e820.c
--- linux-2.6.19-rc1-1M/arch/x86_64/kernel/e820.c~x86_64-return-page-aligned-phy-addr-from-find-e820-area 2006-10-06 15:28:13.000000000 -0400
+++ linux-2.6.19-rc1-1M-root/arch/x86_64/kernel/e820.c 2006-10-06 15:44:45.000000000 -0400
@@ -54,13 +54,13 @@ static inline int bad_addr(unsigned long
/* various gunk below that needed for SMP startup */
if (addr < 0x8000) {
- *addrp = 0x8000;
+ *addrp = PAGE_ALIGN(0x8000);
return 1;
}
/* direct mapping tables of the kernel */
if (last >= table_start<<PAGE_SHIFT && addr < table_end<<PAGE_SHIFT) {
- *addrp = table_end << PAGE_SHIFT;
+ *addrp = PAGE_ALIGN(table_end << PAGE_SHIFT);
return 1;
}
@@ -68,18 +68,18 @@ static inline int bad_addr(unsigned long
#ifdef CONFIG_BLK_DEV_INITRD
if (LOADER_TYPE && INITRD_START && last >= INITRD_START &&
addr < INITRD_START+INITRD_SIZE) {
- *addrp = INITRD_START + INITRD_SIZE;
+ *addrp = PAGE_ALIGN(INITRD_START + INITRD_SIZE);
return 1;
}
#endif
/* kernel code */
- if (last >= __pa_symbol(&_text) && last < __pa_symbol(&_end)) {
- *addrp = __pa_symbol(&_end);
+ if (last >= __pa_symbol(&_text) && addr < __pa_symbol(&_end)) {
+ *addrp = PAGE_ALIGN(__pa_symbol(&_end));
return 1;
}
if (last >= ebda_addr && addr < ebda_addr + ebda_size) {
- *addrp = ebda_addr + ebda_size;
+ *addrp = PAGE_ALIGN(ebda_addr + ebda_size);
return 1;
}
@@ -152,7 +152,7 @@ unsigned long __init find_e820_area(unsi
continue;
while (bad_addr(&addr, size) && addr+size <= ei->addr+ei->size)
;
- last = addr + size;
+ last = PAGE_ALIGN(addr) + size;
if (last > ei->addr + ei->size)
continue;
if (last > end)
_
next prev parent reply other threads:[~2006-10-06 20:05 UTC|newest]
Thread overview: 140+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-09-28 8:46 2.6.18-mm2 Andrew Morton
2006-09-28 11:54 ` 2.6.18-mm2 Michal Piotrowski
2006-09-29 12:12 ` md deadlock (was Re: 2.6.18-mm2) Peter Zijlstra
2006-09-29 12:52 ` Neil Brown
2006-09-29 14:03 ` Peter Zijlstra
2006-10-02 13:47 ` Peter Zijlstra
2006-10-10 3:53 ` Neil Brown
2006-10-10 6:42 ` Ingo Molnar
2006-09-28 17:50 ` 2.6.18-mm2 Steve Fox
2006-09-28 19:00 ` 2.6.18-mm2 thunder7
2006-09-28 21:01 ` 2.6.18-mm2 Andrew Morton
2006-09-28 22:45 ` 2.6.18-mm2 Stephen Hemminger
2006-10-04 13:42 ` 2.6.18-mm2 boot failure on x86-64 Steve Fox
2006-10-04 15:45 ` Andrew Morton
2006-10-04 15:55 ` Vivek Goyal
2006-10-04 15:56 ` Andi Kleen
2006-10-05 1:57 ` Keith Mannthey
2006-10-04 16:41 ` Steve Fox
2006-10-05 0:06 ` Andrew Morton
2006-10-05 0:51 ` Vivek Goyal
2006-10-05 0:57 ` Andi Kleen
2006-10-05 1:08 ` Martin Bligh
2006-10-05 2:05 ` Keith Mannthey
2006-10-05 14:53 ` Steve Fox
2006-10-05 15:12 ` Badari Pulavarty
2006-10-05 15:32 ` Steve Fox
2006-10-05 15:40 ` Andi Kleen
2006-10-05 17:57 ` Steve Fox
2006-10-05 18:27 ` Andi Kleen
2006-10-05 18:51 ` Steve Fox
2006-10-05 19:05 ` Andi Kleen
2006-10-05 20:42 ` Steve Fox
2006-10-05 20:50 ` Andi Kleen
2006-10-06 2:23 ` Steve Fox
2006-10-06 14:33 ` Mel Gorman
2006-10-06 15:36 ` Vivek Goyal
2006-10-06 17:11 ` Mel Gorman
2006-10-06 17:34 ` Vivek Goyal
2006-10-06 17:59 ` Vivek Goyal
2006-10-06 18:03 ` Steve Fox
2006-10-06 20:04 ` Vivek Goyal [this message]
2006-10-09 9:53 ` Mel Gorman
2006-10-16 18:16 ` Vivek Goyal
2006-10-16 23:58 ` Andrew Morton
2006-10-17 12:18 ` Adrian Bunk
2006-10-17 17:32 ` Mel Gorman
2006-10-05 18:52 ` Vivek Goyal
2006-10-05 19:08 ` Andi Kleen
2006-10-05 20:25 ` Steve Fox
2006-10-05 20:39 ` Mel Gorman
2006-10-05 20:51 ` Andi Kleen
2006-10-05 23:14 ` 2.6.18-mm2 boot failure on x86-64 II Andi Kleen
2006-10-05 23:32 ` keith mannthey
2006-10-05 23:35 ` Andi Kleen
2006-10-05 23:58 ` keith mannthey
2006-10-06 0:02 ` Badari Pulavarty
2006-10-06 0:12 ` Andrew Morton
2006-09-28 22:39 ` 2.6.18-mm2 Jim Cromie
2006-09-28 23:08 ` 2.6.18-mm2 Andi Kleen
2006-09-29 20:14 ` 2.6.18-mm2 Ingo Molnar
2006-09-29 20:36 ` 2.6.18-mm2 Andi Kleen
2006-09-29 20:32 ` 2.6.18-mm2 Ingo Molnar
2006-09-29 20:58 ` 2.6.18-mm2 Andi Kleen
2006-09-29 21:14 ` [patch] fix !apic build breakage Ingo Molnar
2006-09-29 21:44 ` Andi Kleen
2006-09-29 21:41 ` Ingo Molnar
2006-09-29 21:44 ` 2.6.18-mm2 Alan Cox
2006-09-29 21:36 ` 2.6.18-mm2 Dave Jones
2006-09-29 21:46 ` 2.6.18-mm2 Andi Kleen
2006-09-28 22:44 ` 2.6.18-mm2 Matthias Hentges
2006-09-29 3:19 ` 2.6.18-mm2 - oops in cache_alloc_refill() Valdis.Kletnieks
2006-09-29 3:29 ` Andrew Morton
2006-09-29 3:58 ` Valdis.Kletnieks
2006-09-29 15:19 ` Valdis.Kletnieks
2006-09-29 19:45 ` Andrew Morton
2006-09-30 0:01 ` Valdis.Kletnieks
2006-09-30 1:20 ` Andrew Morton
2006-09-30 1:33 ` Jean Tourrilhes
2006-09-30 3:31 ` Valdis.Kletnieks
2006-09-30 7:50 ` Valdis.Kletnieks
2006-09-30 8:33 ` Andrew Morton
2006-09-30 1:40 ` Jean Tourrilhes
2006-09-30 3:31 ` Valdis.Kletnieks
2006-09-30 1:57 ` Makefile for linux modules x z
2006-09-30 8:55 ` Sam Ravnborg
2006-09-30 1:59 ` x z
2006-10-02 17:52 ` 2.6.18-mm2 - oops in cache_alloc_refill() Jean Tourrilhes
2006-10-02 19:57 ` Valdis.Kletnieks
2006-10-03 15:58 ` Samuel Tardieu
2006-10-03 16:34 ` Jean Tourrilhes
2006-10-03 16:45 ` Samuel Tardieu
2006-10-03 17:07 ` Jean Tourrilhes
2006-10-05 22:37 ` Pavel Roskin
2006-10-05 22:42 ` Jean Tourrilhes
2006-09-29 19:47 ` Christoph Lameter
2006-09-29 13:57 ` 2.6.18-mm2 J.A. Magallón
2006-09-29 14:39 ` 2.6.18-mm2 Matthew Wilcox
2006-09-29 17:15 ` 2.6.18-mm2 Alan Cox
2006-09-29 23:50 ` 2.6.18-mm2 Frederik Deweerdt
2006-09-29 23:43 ` 2.6.18-mm2 Alan Cox
2006-09-30 14:09 ` [-mm patch] aic7xxx: check irq validity (was Re: 2.6.18-mm2) Frederik Deweerdt
2006-09-30 14:19 ` Alan Cox
2006-09-30 13:51 ` Willy Tarreau
2006-09-30 23:58 ` Jeff Garzik
2006-10-01 14:28 ` Matthew Wilcox
2006-10-01 19:05 ` Arjan van de Ven
2006-10-01 19:19 ` Jeff Garzik
2006-10-01 19:34 ` Arjan van de Ven
2006-10-01 19:36 ` Matthew Wilcox
2006-10-01 19:42 ` Jeff Garzik
2006-10-02 2:12 ` Arjan van de Ven
2006-10-02 20:00 ` [RFC PATCH] pci_request_irq (was [-mm patch] aic7xxx: check irq validity) Frederik Deweerdt
2006-10-02 18:15 ` Matthew Wilcox
2006-10-02 21:09 ` Frederik Deweerdt
2006-10-02 20:07 ` [RFC PATCH] move aic7xxx to pci_request_irq Frederik Deweerdt
2006-10-02 18:27 ` Matthew Wilcox
2006-10-02 21:02 ` Frederik Deweerdt
2006-10-03 3:45 ` Arjan van de Ven
2006-10-02 20:11 ` [RFC PATCH] move tg3 " Frederik Deweerdt
2006-10-02 18:28 ` Matthew Wilcox
2006-10-02 21:04 ` Frederik Deweerdt
2006-10-03 7:18 ` Arjan van de Ven
2006-10-02 20:12 ` [RFC PATCH] move drm " Frederik Deweerdt
2006-10-02 18:37 ` Matthew Wilcox
2006-10-02 21:07 ` Frederik Deweerdt
2006-10-02 20:36 ` Alan Cox
2006-10-02 22:26 ` Frederik Deweerdt
2006-10-02 23:54 ` Dave Airlie
2006-10-03 7:17 ` Frederik Deweerdt
2006-10-03 3:58 ` [RFC PATCH] pci_request_irq (was [-mm patch] aic7xxx: check irq validity) Randy Dunlap
2006-10-01 21:31 ` [-mm patch] aic7xxx: check irq validity (was Re: 2.6.18-mm2) Frederik Deweerdt
2006-09-30 15:26 ` 2.6.18-mm2 James Bottomley
2006-09-30 16:21 ` 2.6.18-mm2 Matthew Wilcox
2006-09-30 17:20 ` 2.6.18-mm2 Mark Rustad
2006-09-30 20:54 ` 2.6.18-mm2 Alan Cox
2006-09-29 23:15 ` 2.6.18-mm2 J.A. Magallón
2006-09-30 7:04 ` 2.6.18-mm2 - possible recursive locking detected Borislav Petkov
2006-09-30 8:28 ` Andrew Morton
2006-09-30 18:19 ` Davide Libenzi
[not found] ` <20060930133706.GA3291@melchior.yamamaya.is-a-geek.org>
2006-09-30 19:53 ` 2.6.18-mm2 Andrew Morton
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=20061006200436.GG19756@in.ibm.com \
--to=vgoyal@in.ibm.com \
--cc=ak@suse.de \
--cc=akpm@osdl.org \
--cc=apw@shadowen.org \
--cc=drfickle@us.ibm.com \
--cc=kmannth@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mbligh@mbligh.org \
--cc=mel@skynet.ie \
--cc=netdev@vger.kernel.org \
--cc=pbadari@us.ibm.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