x86_64: tss_struct layout does not match comments !?

From: Richard Kennedy
Date: Thu Jul 03 2008 - 08:08:59 EST


Hi Ingo,

the comments in the definition of tss_struct suggests is should be
cacheline aligned ( or 256 byte aligned ? ) :-

|struct tss_struct {
|....
| /*
| * Pad the TSS to be cacheline-aligned (size is 0x100):
| */
| unsigned long __cacheline_filler[35];
| /*
| * .. and then another 0x100 bytes for the emergency kernel stack:
| */
| unsigned long stack[64];
|
|} __attribute__((packed));

However on a 64 bit build the size of tss_struct is 9136,
cacheline_filler is 280 and stack size is 512 at offset 8624.
None of which are cacheline aligned.

I'm guessing this isn't what was intended.

do you know what the original intention was ?

1. struct tss_struct{...} __cacheline_aligned;
or just
2. struct tss_struct {
...
long stack[64] __cacheline_aligned;
}

Richard


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