• Suravee Suthikulpanit's avatar
    x86/cpu/amd: Limit cpu_core_id fixup to families older than F17h · b89b41d0
    Suravee Suthikulpanit authored
    Current cpu_core_id fixup causes downcored F17h configurations to be
    incorrect:
    
      NODE: 0
      processor  0 core id : 0
      processor  1 core id : 1
      processor  2 core id : 2
      processor  3 core id : 4
      processor  4 core id : 5
      processor  5 core id : 0
    
      NODE: 1
      processor  6 core id : 2
      processor  7 core id : 3
      processor  8 core id : 4
      processor  9 core id : 0
      processor 10 core id : 1
      processor 11 core id : 2
    
    Code that relies on the cpu_core_id, like match_smt(), for example,
    which builds the thread siblings masks used by the scheduler, is
    mislead.
    
    So, limit the fixup to pre-F17h machines. The new value for cpu_core_id
    for F17h and later will represent the CPUID_Fn8000001E_EBX[CoreId],
    which is guaranteed to be unique for each core within a socket.
    
    This way we have:
    
      NODE: 0
      processor  0 core id : 0
      processor  1 core id : 1
      processor  2 core id : 2
      processor  3 core id : 4
      processor  4 core id : 5
      processor  5 core id : 6
    
      NODE: 1
      processor  6 core id : 8
      processor  7 core id : 9
      processor  8 core id : 10
      processor  9 core id : 12
      processor 10 core id : 13
      processor 11 core id : 14
    Signed-off-by: default avatarSuravee Suthikulpanit <suravee.suthikulpanit@amd.com>
    [ Heavily massaged. ]
    Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Yazen Ghannam <Yazen.Ghannam@amd.com>
    Link: http://lkml.kernel.org/r/20170731085159.9455-2-bp@alien8.deSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    b89b41d0
amd.c 24.3 KB