Module Name: src
Committed By: imil
Date: Thu Mar 6 09:31:05 UTC 2025
Modified Files:
src/sys/arch/x86/x86: identcpu_subr.c
Log Message:
Allow tsc_freq_vmware_cpuid() for TSC frequency even if there is no LAPIC
support
To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/sys/arch/x86/x86/identcpu_subr.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/x86/x86/identcpu_subr.c
diff -u src/sys/arch/x86/x86/identcpu_subr.c:1.11 src/sys/arch/x86/x86/identcpu_subr.c:1.12
--- src/sys/arch/x86/x86/identcpu_subr.c:1.11 Thu Mar 6 09:02:46 2025
+++ src/sys/arch/x86/x86/identcpu_subr.c Thu Mar 6 09:31:05 2025
@@ -1,4 +1,4 @@
-/* $NetBSD: identcpu_subr.c,v 1.11 2025/03/06 09:02:46 imil Exp $ */
+/* $NetBSD: identcpu_subr.c,v 1.12 2025/03/06 09:31:05 imil Exp $ */
/*-
* Copyright (c) 2020 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
* See src/usr.sbin/cpuctl/{Makefile, arch/i386.c}).
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: identcpu_subr.c,v 1.11 2025/03/06 09:02:46 imil Exp $");
+__KERNEL_RCSID(0, "$NetBSD: identcpu_subr.c,v 1.12 2025/03/06 09:31:05 imil Exp $");
#ifdef _KERNEL_OPT
#include "lapic.h"
@@ -62,7 +62,7 @@ __KERNEL_RCSID(0, "$NetBSD: identcpu_sub
#include "cpuctl_i386.h"
#endif
-#if defined(_KERNEL) && NLAPIC > 0
+#ifdef _KERNEL
static uint64_t
tsc_freq_vmware_cpuid(struct cpu_info *ci)
{
@@ -81,12 +81,14 @@ tsc_freq_vmware_cpuid(struct cpu_info *c
aprint_verbose(
"got tsc frequency from vmware compatible cpuid\n");
+#if NLAPIC > 0
if (descs[1] > 0) {
aprint_verbose(
"got lapic frequency from vmware compatible cpuid\n");
lapic_per_second = descs[1] * 1000;
lapic_from_cpuid = true;
}
+#endif
return freq * 1000;
}
@@ -179,7 +181,7 @@ cpu_tsc_freq_cpuid(struct cpu_info *ci)
if (cpu_vendor == CPUVENDOR_INTEL)
freq = tsc_freq_cpuid(ci);
-#if defined(_KERNEL) && NLAPIC > 0
+#ifdef _KERNEL
/* VMware compatible tsc frequency query */
if (freq == 0 && vm_guest > VM_GUEST_NO)
freq = tsc_freq_vmware_cpuid(ci);