Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9566e91d494ed0668edf88f852de7f251fe8fe9a
Commit:     9566e91d494ed0668edf88f852de7f251fe8fe9a
Parent:     ddb25f9ac1c4b4f9ba0bdacd7850a921a0c6886c
Author:     Andreas Herrmann <[EMAIL PROTECTED]>
AuthorDate: Wed Jan 30 13:32:41 2008 +0100
Committer:  Ingo Molnar <[EMAIL PROTECTED]>
CommitDate: Wed Jan 30 13:32:41 2008 +0100

    x86: fix detection of CONSTANT_TSC bit for AMD CPUs
    
    Commits
     - c52f61fcbdb2aa84f0e4d831ef07f375e6b99b2c
      (x86: allow TSC clock source on AMD Fam10h and some cleanup)
     - e30436f05d456efaff77611e4494f607b14c2782
      (x86: move X86_FEATURE_CONSTANT_TSC into early cpu feature detection)
    
    are supposed to fix the detection of contant TSC for AMD CPUs.
    Unfortunately on x86_64 it does still not work with current x86/mm.
    For a Phenom I still get:
    
      ...
      TSC calibrated against PM_TIMER
      Marking TSC unstable due to TSCs unsynchronized
      time.c: Detected 2288.366 MHz processor.
      ...
    
    We have to set c->x86_power in early_identify_cpu to properly detect
    the CONSTANT_TSC bit in early_init_amd.
    
    Attached patch fixes this issue. Following the relevant boot
    messages when the fix is used:
    
      ...
      TSC calibrated against PM_TIMER
      time.c: Detected 2288.279 MHz processor.
      ...
      Initializing CPU#1
      ...
      checking TSC synchronization [CPU#0 -> CPU#1]: passed.
      ...
      Initializing CPU#2
      ...
      checking TSC synchronization [CPU#0 -> CPU#2]: passed.
      ...
      Booting processor 3/4 APIC 0x3
      ...
      checking TSC synchronization [CPU#0 -> CPU#3]: passed.
      Brought up 4 CPUs
      ...
    
    Patch is against x86/mm (v2.6.24-rc8-672-ga9f7faa).
    Please apply.
    
    Set c->x86_power in early_identify_cpu. This ensures that
    X86_FEATURE_CONSTANT_TSC can properly be set in early_init_amd.
    
    Signed-off-by: Andreas Herrmann <[EMAIL PROTECTED]>
    Signed-off-by: Ingo Molnar <[EMAIL PROTECTED]>
    Signed-off-by: Thomas Gleixner <[EMAIL PROTECTED]>
---
 arch/x86/kernel/setup_64.c |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/arch/x86/kernel/setup_64.c b/arch/x86/kernel/setup_64.c
index 3cae326..1caf745 100644
--- a/arch/x86/kernel/setup_64.c
+++ b/arch/x86/kernel/setup_64.c
@@ -996,6 +996,10 @@ static void __cpuinit early_identify_cpu(struct 
cpuinfo_x86 *c)
                        c->x86_capability[2] = cpuid_edx(0x80860001);
        }
 
+       c->extended_cpuid_level = cpuid_eax(0x80000000);
+       if (c->extended_cpuid_level >= 0x80000007)
+               c->x86_power = cpuid_edx(0x80000007);
+
        switch (c->x86_vendor) {
        case X86_VENDOR_AMD:
                early_init_amd(c);
@@ -1066,11 +1070,6 @@ void __cpuinit identify_cpu(struct cpuinfo_x86 *c)
        numa_add_cpu(smp_processor_id());
 #endif
 
-       c->extended_cpuid_level = cpuid_eax(0x80000000);
-
-       if (c->extended_cpuid_level >= 0x80000007)
-               c->x86_power = cpuid_edx(0x80000007);
-
        switch (c->x86_vendor) {
        case X86_VENDOR_AMD:
                early_init_amd(c);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to