lkml.org 
[lkml]   [2008]   [Jul]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: x86_64: tss_struct layout does not match comments !?

    * 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


    \
     
     \ /
      Last update: 2008-07-03 15:31    [W:0.023 / U:0.768 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site