mirror of
https://github.com/freebsd/freebsd-src
synced 2024-09-20 00:33:57 +00:00
Turn off pointless P-state invariant TSC detection based on CPU model
on a virtual machine.
This commit is contained in:
parent
cd67ac41ae
commit
a106a27c6a
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=219469
|
@ -105,20 +105,23 @@ init_TSC(void)
|
|||
|
||||
switch (cpu_vendor_id) {
|
||||
case CPU_VENDOR_AMD:
|
||||
if ((amd_pminfo & AMDPM_TSC_INVARIANT) ||
|
||||
CPUID_TO_FAMILY(cpu_id) >= 0x10)
|
||||
if ((amd_pminfo & AMDPM_TSC_INVARIANT) != 0 ||
|
||||
(vm_guest == VM_GUEST_NO &&
|
||||
CPUID_TO_FAMILY(cpu_id) >= 0x10))
|
||||
tsc_is_invariant = 1;
|
||||
break;
|
||||
case CPU_VENDOR_INTEL:
|
||||
if ((amd_pminfo & AMDPM_TSC_INVARIANT) ||
|
||||
(CPUID_TO_FAMILY(cpu_id) == 0x6 &&
|
||||
if ((amd_pminfo & AMDPM_TSC_INVARIANT) != 0 ||
|
||||
(vm_guest == VM_GUEST_NO &&
|
||||
((CPUID_TO_FAMILY(cpu_id) == 0x6 &&
|
||||
CPUID_TO_MODEL(cpu_id) >= 0xe) ||
|
||||
(CPUID_TO_FAMILY(cpu_id) == 0xf &&
|
||||
CPUID_TO_MODEL(cpu_id) >= 0x3))
|
||||
CPUID_TO_MODEL(cpu_id) >= 0x3))))
|
||||
tsc_is_invariant = 1;
|
||||
break;
|
||||
case CPU_VENDOR_CENTAUR:
|
||||
if (CPUID_TO_FAMILY(cpu_id) == 0x6 &&
|
||||
if (vm_guest == VM_GUEST_NO &&
|
||||
CPUID_TO_FAMILY(cpu_id) == 0x6 &&
|
||||
CPUID_TO_MODEL(cpu_id) >= 0xf &&
|
||||
(rdmsr(0x1203) & 0x100000000ULL) == 0)
|
||||
tsc_is_invariant = 1;
|
||||
|
|
Loading…
Reference in a new issue