Messages in this thread | | | Subject | Re: x86_64: tss_struct layout does not match comments !? | From | Richard Kennedy <> | Date | Thu, 03 Jul 2008 12:57:01 +0100 |
| |
On Thu, 2008-07-03 at 13:39 +0200, Ingo Molnar wrote: > * Richard Kennedy <richard@rsk.demon.co.uk> wrote: > > > 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; > > } > > #1 is the intent - because each CPU has a separate TSS. init_tss.stack > is really just an emergency static stack we have in place for very early > exceptions. > > i think the __cacheline_filler could be removed safely. Mind sending a > patch for that? > > Ingo
No problem. Richard
| |