[lkml]   [2000]   [Jan]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH] 2.3.40: <linux/linkage.h> generates incorrect cache alignments
Alan Cox wrote:

> > +#if defined(CONFIG_X86) && !defined(CONFIG_M386)
> > +#define __ALIGN .align L1_CACHE_BYTES,0x90
> > +#if L1_CACHE_BYTES == 32
> > +#define __ALIGN_STR ".align 32,0x90"
> > +#else
> > +#define __ALIGN_STR ".align 16,0x90"
> > +#endif
> > +#else
> Please dont do this without doing a complete set of benchmarks on a variety
> of machines. On the K7 at least the cache footprint seems to outweigh the
> alignment values in general.

I agree with your warning about cache footprint but what you are saying
is to NOT fix the mechanism rather than TO fix the policy.

entry.S and head.S have 12 uses of ALIGN, several of which
would best be removed. It doesn't seem to be used anywhere else.
So we aren't talking about a whole lot of cache footprint here.

A much more egregious (and large) misuse of alignment
is in the whole of the kernel. Don't ya just love that gcc.
This is my compile line using gcc 2.95.1:

gcc -D__KERNEL__ -I/home/chris/linux/include -D__SMP__
-Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
-fno-strict-aliasing -pipe -fno-strength-reduce
-mpreferred-stack-boundary=2 -DCPU=686
-march=i686 -S arch/i386/kernel/ioport.c
-o arch/i386/kernel/ioport.s

And this is what you get for ioport.s

.file "ioport.c"
.version "01.01"
.section .rodata
.string "eip: %p\n"
.align 32
.string "/home/chris/linux/include/asm/spinlock.h"
.string "kernel BUG at %s:%d!\n"
.string "wq bug, forcing oops.\n"
.align 32
.string "bad magic %lx (should be %lx, creator %lx), "
.align 32
.string "bad magic %lx (should be %lx), "
.align 32

I'm not exactly sure why "bad magic ..." desperately needs to be aligned.

Chris Sears

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:56    [W:0.044 / U:1.092 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site