Re: [BUG][Resend] 2.6.12-rc3-mm3: Kernel BUG at "mm/slab.c":1219[update]

From: Christoph Lameter
Date: Tue May 10 2005 - 17:05:32 EST


On Tue, 10 May 2005, Andi Kleen wrote:

> > + . = ALIGN(32);
>
> This should be . = ALIGN(CONFIG_X86_L1_CACHE_BYTES)
>
> It was wrong on i386 already btw, which needs the same.

i386 always specifies the numbers and does not use symbolic constants.
We better leave that as it is.

> > + /* Rarely changed data like cpu maps */
> > + . = ALIGN(4096);
>
> Does it really need an 4096 byte alignment? That seems like
> a waste of memory. Cache line alignment should be enough.

Ok.

Index: linux-2.6.11/arch/i386/kernel/vmlinux.lds.S
===================================================================
--- linux-2.6.11.orig/arch/i386/kernel/vmlinux.lds.S 2005-05-10 13:35:25.000000000 -0700
+++ linux-2.6.11/arch/i386/kernel/vmlinux.lds.S 2005-05-10 13:59:18.000000000 -0700
@@ -58,7 +58,7 @@ SECTIONS
}

/* rarely changed data like cpu maps */
- . = ALIGN(4096);
+ . = ALIGN(32);
.data.mostly_readonly : AT(ADDR(.data.mostly_readonly) - LOAD_OFFSET) {
*(.data.mostly_readonly)
}
Index: linux-2.6.11/arch/x86_64/kernel/vmlinux.lds.S
===================================================================
--- linux-2.6.11.orig/arch/x86_64/kernel/vmlinux.lds.S 2005-05-10 13:35:24.000000000 -0700
+++ linux-2.6.11/arch/x86_64/kernel/vmlinux.lds.S 2005-05-10 14:02:06.000000000 -0700
@@ -42,6 +42,13 @@ SECTIONS
CONSTRUCTORS
}

+ . = ALIGN(CONFIG_X86_L1_CACHE_BYTES);
+ .data.cacheline_aligned : { (.data.cacheline_aligned) }
+
+ /* Rarely changed data like cpu maps */
+ . = ALIGN(CONFIG_X86_L1_CACHE_BYTES);
+ .data.mostly_readonly : { *(.data.mostly_readonly) }
+
_edata = .; /* End of data section */

__bss_start = .; /* BSS */
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/