OpenCloudOS-Kernel/arch
Andreas Herrmann 9566e91d49 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 <andreas.herrmann3@amd.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2008-01-30 13:32:41 +01:00
..
alpha remove __attribute_used__ 2008-01-28 23:21:18 +01:00
arm spinlock: lockbreak cleanup 2008-01-30 13:31:20 +01:00
avr32 all archs: consolidate init and exit sections in vmlinux.lds.h 2008-01-28 23:21:17 +01:00
blackfin all archs: consolidate init and exit sections in vmlinux.lds.h 2008-01-28 23:21:17 +01:00
cris all archs: consolidate init and exit sections in vmlinux.lds.h 2008-01-28 23:21:17 +01:00
frv Remove references to "make dep" 2008-01-28 23:22:13 +01:00
h8300 all archs: consolidate init and exit sections in vmlinux.lds.h 2008-01-28 23:21:17 +01:00
ia64 spinlock: lockbreak cleanup 2008-01-30 13:31:20 +01:00
m32r spinlock: lockbreak cleanup 2008-01-30 13:31:20 +01:00
m68k all archs: consolidate init and exit sections in vmlinux.lds.h 2008-01-28 23:21:17 +01:00
m68knommu all archs: consolidate init and exit sections in vmlinux.lds.h 2008-01-28 23:21:17 +01:00
mips spinlock: lockbreak cleanup 2008-01-30 13:31:20 +01:00
parisc spinlock: lockbreak cleanup 2008-01-30 13:31:20 +01:00
powerpc spinlock: lockbreak cleanup 2008-01-30 13:31:20 +01:00
ppc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.25 2008-01-29 22:54:01 +11:00
s390 all archs: consolidate init and exit sections in vmlinux.lds.h 2008-01-28 23:21:17 +01:00
sh all archs: consolidate init and exit sections in vmlinux.lds.h 2008-01-28 23:21:17 +01:00
sparc all archs: consolidate init and exit sections in vmlinux.lds.h 2008-01-28 23:21:17 +01:00
sparc64 spinlock: lockbreak cleanup 2008-01-30 13:31:20 +01:00
um UML: remove remaining FASTCALL uses 2008-01-30 13:31:14 +01:00
v850 all archs: consolidate init and exit sections in vmlinux.lds.h 2008-01-28 23:21:17 +01:00
x86 x86: fix detection of CONSTANT_TSC bit for AMD CPUs 2008-01-30 13:32:41 +01:00
xtensa Remove references to "make dep" 2008-01-28 23:22:13 +01:00
.gitignore arch: Ignore arch/i386 and arch/x86_64 2008-01-19 21:29:39 -08:00