Re: [BUG] 2.6.6-rc2-bk5 mm/slab.c change broke x86-64 SMP

From: Andrew Morton
Date: Fri Apr 30 2004 - 15:23:14 EST


"R. J. Wysocki" <rjwysocki@xxxxxxx> wrote:
>
> > Does this fix?
> >
> > diff -puN include/asm-x86_64/processor.h~a include/asm-x86_64/processor.h
> > --- 25/include/asm-x86_64/processor.h~a Fri Apr 30 11:24:58 2004
> > +++ 25-akpm/include/asm-x86_64/processor.h Fri Apr 30 11:25:28 2004
> > @@ -20,6 +20,8 @@
> > #include <asm/mmsegment.h>
> > #include <linux/personality.h>
> >
> > +#define ARCH_MIN_TASKALIGN L1_CACHE_BYTES
> > +
> > #define TF_MASK 0x00000100
> > #define IF_MASK 0x00000200
> > #define IOPL_MASK 0x00003000
> >
>
> AFAICS, yes, it does. :-)
> I'm now (happily) running 2.6.6-rc3 on a dual-Opteron box.

OK, thanks. I suspect that change has broken other architectures for the
same reason.

I think I'll just change the default:


diff -puN kernel/fork.c~task-struct-alignment-fix kernel/fork.c
--- 25/kernel/fork.c~task-struct-alignment-fix Fri Apr 30 13:22:24 2004
+++ 25-akpm/kernel/fork.c Fri Apr 30 13:22:36 2004
@@ -211,7 +211,7 @@ void __init fork_init(unsigned long memp
{
#ifndef __HAVE_ARCH_TASK_STRUCT_ALLOCATOR
#ifndef ARCH_MIN_TASKALIGN
-#define ARCH_MIN_TASKALIGN 0
+#define ARCH_MIN_TASKALIGN L1_CACHE_BYTES
#endif
/* create a slab on which task_structs can be allocated */
task_struct_cachep =

_

-
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/