RE: "My" crash when reading partition table

nathan.zook@amd.com
Tue, 12 Oct 1999 16:10:08 -0500


There are a couple of things with memory detection which are not quite
right. What is your hardware? (MEM, cpu(s)) Specifically, is your bios
trying to do ACPI? Are you running with BIGMEM enabled? At the bottom is a
patch to report some useful data. Please apply the patch and run with and
without the mem=8M. The results will land in /var/log/dmesg, which is
overwritten on each boot. All I should need is the output of head
/var/log/dmesg after each boot. All the lines up to the one which says
mem_end0: ....

Alan, I believe the debug e820 printks are on by default in 2.3.19 &
2.3.18ac10. Pavel, if you are using 2.3.18ac10, the patch should do just
fine.

Thanks,

Nathan

> -----Original Message-----
> From: Pavel Machek [SMTP:pavel@suse.cz]
> Sent: Tuesday, October 12, 1999 3:06 AM
> To: linux-kernel@vger.rutgers.edu; alan@redhat.com
> Subject: "My" crash when reading partition table
>
> Hi!
>
> I reported crash with reading partition table. Now I've found out:
> something is wrong with memory detection. Passing mem=8M makes machine
> boot again. That's probably why it was even in ac-10.
>
> Pavel
>
[Zook, Nathan]

--- linux-2.3.19/arch/i386/kernel/setup.c Mon Oct 4 23:24:51
1999
+++ linux-2.3.19rpt/arch/i386/kernel/setup.c Tue Oct 12 15:52:22
1999
@@ -403,6 +403,7 @@
void __init setup_memory_region(void)
{
#define E820_DEBUG 0
+#define MEM_DEBUG 0
#ifdef E820_DEBUG
int i;
#endif
@@ -428,9 +429,11 @@
memcpy(e820.map, E820_MAP, e820.nr_map * sizeof
e820.map[0]);
#ifdef E820_DEBUG
for (i=0; i < e820.nr_map; i++) {
- printk("e820: %ld @ %08lx ",
- (unsigned long)(e820.map[i].size),
- (unsigned long)(e820.map[i].addr));
+ printk("e820: %08lx %08lx: %08lx %08lx ",
+ *(1+(unsigned long
*)&(e820.map[i].addr)),
+ *(unsigned
long*)&(e820.map[i].addr),
+ *(1+(unsigned long
*)&(e820.map[i].size)),
+ *(unsigned
long*)&(e820.map[i].size));
switch (e820.map[i].type) {
case E820_RAM: printk("(usable)\n");
break;
@@ -457,6 +460,11 @@
add_memory_region(0, LOWMEMSIZE(), E820_RAM);
add_memory_region(HIGH_MEMORY, mem_size << 10,
E820_RAM);
}
+
+#ifdef MEM_DEBUG
+ printk("e801: %08lx\t\t 88: %08lx\n",ALT_MEM_K,EXT_MEM_K);
+#endif
+
} /* setup_memory_region */


@@ -570,6 +578,9 @@
memory_end = end;
}
}
+#ifdef MEM_DEBUG
+ printk("mem_end0: %08lx\t\t ",memory_end);
+#endif
memory_end &= PAGE_MASK;
ram_resources[1].end = memory_end-1;

@@ -584,6 +595,9 @@
bigmem_end = (memory_end < MAXBIGMEM) ? memory_end :
MAXBIGMEM;
#endif
memory_end = MAXMEM;
+#ifdef MEM_DEBUG
+ printk("mem_end1: %08lx\t\t ",memory_end);
+#endif
#ifdef CONFIG_BIGMEM
printk(KERN_NOTICE "%ldMB BIGMEM available.\n",
(bigmem_end-bigmem_start)>>20);
@@ -600,6 +614,9 @@
#endif

memory_end += PAGE_OFFSET;
+#ifdef MEM_DEBUG
+ printk("mem_end2: %08lx\n",memory_end);
+#endif
*memory_start_p = memory_start;
*memory_end_p = memory_end;

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/