Re: <linux/linkage.h> generates incorrect cache alignments for 486 and above

From: Mike Galbraith (mikeg@weiden.de)
Date: Thu Jan 27 2000 - 11:20:46 EST


On Thu, 27 Jan 2000, Chris Sears wrote:

>
> Mike,
>
> here is the code from <linux/linkage.h>
>
> #if !defined(__i486__) && !defined(__i586__)
> #define __ALIGN .align 4,0x90
> #define __ALIGN_STR ".align 4,0x90"
> #else /* __i486__/__i586__ */
> #define __ALIGN .align 16,0x90
> #define __ALIGN_STR ".align 16,0x90"
> #endif /* __i486__/__i586__ */
>
> You can see that __i686__ is missing from the list
> so it defaults to the i386 case.

Yes.

> The 16 should be 32 as cache.h points out.

I don't think so. (but am not positive)

I don't know what the pIII prefers, but I did 5 test runs with lmbench
today on my p5 with 0,4,16 and 2 additionals with different alignment
CFLAGS. The difference in lmbench numbers was ~nil for all 5 runs.

The only difference at all (gcc-2.95-2) was that -malign-[foo]=0, gave
me a 48k ram rebate. My p5 doesn't care about __ALIGN.. and I get free
ram by generally not aligning. :-)

I haven't tested my pIII yet to see if it cares, and if so, what it
prefers. Someone else probably has.

        -Mike

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



This archive was generated by hypermail 2b29 : Mon Jan 31 2000 - 21:00:18 EST