linux_dsm_epyc7002/arch/x86/kernel/cpu
Venki Pallipadi 40fb17152c x86: support always running TSC on Intel CPUs
Impact: reward non-stop TSCs with good TSC-based clocksources, etc.

Add support for CPUID_0x80000007_Bit8 on Intel CPUs as well. This bit means
that the TSC is invariant with C/P/T states and always runs at constant
frequency.

With Intel CPUs, we have 3 classes
* CPUs where TSC runs at constant rate and does not stop n C-states
* CPUs where TSC runs at constant rate, but will stop in deep C-states
* CPUs where TSC rate will vary based on P/T-states and TSC will stop in deep
  C-states.

To cover these 3, one feature bit (CONSTANT_TSC) is not enough. So, add a
second bit (NONSTOP_TSC). CONSTANT_TSC indicates that the TSC runs at
constant frequency irrespective of P/T-states, and NONSTOP_TSC indicates
that TSC does not stop in deep C-states.

CPUID_0x8000000_Bit8 indicates both these feature bit can be set.
We still have CONSTANT_TSC _set_ and NONSTOP_TSC _not_set_ on some older Intel
CPUs, based on model checks. We can use TSC on such CPUs for time, as long as
those CPUs do not support/enter deep C-states.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-12-16 21:02:50 +01:00
..
cpufreq [CPUFREQ] powernow-k8: ignore out-of-range PstateStatus value 2008-11-25 13:38:29 -05:00
mcheck Update email addresses. 2008-10-20 12:50:03 -07:00
mtrr Merge branches 'x86/alternatives', 'x86/cleanups', 'x86/commandline', 'x86/crashdump', 'x86/debug', 'x86/defconfig', 'x86/doc', 'x86/exports', 'x86/fpu', 'x86/gart', 'x86/idle', 'x86/mm', 'x86/mtrr', 'x86/nmi-watchdog', 'x86/oprofile', 'x86/paravirt', 'x86/reboot', 'x86/sparse-fixes', 'x86/tsc', 'x86/urgent' and 'x86/vmalloc' into x86-v28-for-linus-phase1 2008-10-06 18:17:07 +02:00
.gitignore Update .gitignore files for generated targets 2008-10-20 11:24:31 -07:00
addon_cpuid_features.c x86: use CONFIG_X86_SMP instead of CONFIG_SMP 2008-10-30 22:53:10 +01:00
amd.c x86: support always running TSC on Intel CPUs 2008-12-16 21:02:50 +01:00
bugs_64.c x86: move bugs_64.c to cpu/bugs_64.c 2008-06-03 14:43:00 -07:00
bugs.c x86: fdiv bug detection fix 2008-07-31 23:56:27 +02:00
centaur_64.c x86: centaur_64.c remove duplicated setting of CONSTANT_TSC 2008-09-10 08:21:06 +02:00
centaur.c x86: move mtrr cpu cap setting early in early_init_xxxx 2008-09-06 17:50:55 +02:00
cmpxchg.c x86: move cmpxchg fallbacks to a generic place 2008-08-18 16:05:47 +02:00
common.c x86: build fix 2008-10-31 09:31:38 +01:00
cpu.h x86: remove duplicated get_model_name() calling 2008-09-06 14:09:12 +02:00
cyrix.c x86: move mtrr cpu cap setting early in early_init_xxxx 2008-09-06 17:50:55 +02:00
intel_cacheinfo.c Merge branch 'linus' into x86/cpu 2008-08-15 16:16:15 +02:00
intel.c x86: support always running TSC on Intel CPUs 2008-12-16 21:02:50 +01:00
Makefile x86, um: ... and asm-x86 move 2008-10-22 22:55:20 -07:00
mkcapflags.pl x86: generate names for /proc/cpuinfo from <asm/cpufeature.h> 2008-08-27 19:23:22 -07:00
perfctr-watchdog.c ftrace: mark lapic_wd_event() notrace 2008-10-14 10:34:36 +02:00
powerflags.c x86: generate names for /proc/cpuinfo from <asm/cpufeature.h> 2008-08-27 19:23:22 -07:00
proc.c x86/proc: fix /proc/cpuinfo cpu offline bug 2008-10-22 14:29:37 +02:00
transmeta.c x86: move transmeta cap read to early_init_transmeta() 2008-09-14 14:09:14 +02:00
umc.c x86: remove cpu_vendor_dev 2008-09-04 21:09:45 +02:00