Date: Thu, 24 May 2001 16:21:16 -0700 (PDT) From: larse@isi.edu To: freebsd-gnats-submit@FreeBSD.org Subject: i386/27627: machdep.tsc_freq does not exists on machines with APM or SMP Message-ID: <200105242321.f4ONLGC99337@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 27627 >Category: i386 >Synopsis: machdep.tsc_freq does not exists on machines with APM or SMP >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Thu May 24 16:30:07 PDT 2001 >Closed-Date: >Last-Modified: >Originator: Lars Eggert >Release: 4.2-RELEASE >Organization: >Environment: FreeBSD e.postel.org 4.2-RELEASE FreeBSD 4.2-RELEASE #6: Thu May 24 15:52:44 PDT 2001 larse@e.postel.org:/usr/src/sys/compile/KERNEL-1.19 i386 >Description: The machdep.tsc_freq sysctl knob does not exists on systems that have power management (APM) or SMP enabled. It's the easiest way to query for probed CPU speed. The patch below adds a new read-only sysctl know "hw.cpuhz" which is initialized from tsc_freq at boot time. Since it's read-only, it is ok to use on SMP and APM-enabled machines. Please transmogrify the patch as needed for inclusion in the tree. >How-To-Repeat: >Fix: --- /usr/src/sys/i386/isa/clock.c Wed Aug 2 17:09:29 2000 +++ clock.c Thu May 24 15:57:07 2001 @@ -140,6 +140,9 @@ u_int timer_freq = TIMER_FREQ; int timer0_max_count; u_int tsc_freq; +#ifdef CPUHZ +static u_int cpuhz = 0; +#endif int tsc_is_broken; int wall_cmos_clock; /* wall CMOS clock assumed if != 0 */ @@ -661,6 +664,9 @@ * similar to those for the i8254 clock. */ if (tsc_present) +#ifdef CPUHZ + cpuhz = +#endif tsc_freq = rdtsc() - old_tsc; if (bootverbose) { @@ -1164,6 +1170,10 @@ SYSCTL_PROC(_machdep, OID_AUTO, i8254_freq, CTLTYPE_INT | CTLFLAG_RW, 0, sizeof(u_int), sysctl_machdep_i8254_freq, "I", ""); + +#ifdef CPUHZ +SYSCTL_INT(_hw, OID_AUTO, cpuhz, CTLFLAG_RD, &cpuhz, 0, "CPU speed in Hz."); +#endif static int sysctl_machdep_tsc_freq(SYSCTL_HANDLER_ARGS) >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200105242321.f4ONLGC99337>