Date: Mon, 25 Aug 2008 22:21:42 +0200 From: Dimitry Andric <dimitry@andric.com> To: Renato Botelho <rbgarga@gmail.com> Cc: cvs-src@freebsd.org, src-committers@freebsd.org, cvs-all@freebsd.org, John Baldwin <jhb@freebsd.org> Subject: Re: cvs commit: src/sys/i386/cpufreq est.c Message-ID: <48B31456.5030009@andric.com> In-Reply-To: <747dc8f30808251227v286ab480mea5b0d7dff0311fa@mail.gmail.com> References: <200808231253.m7NCrkLp093604@repoman.freebsd.org> <747dc8f30808250629h73676fd8m71f0d6cbc0e035e2@mail.gmail.com> <747dc8f30808251227v286ab480mea5b0d7dff0311fa@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2008-08-25 21:27, Renato Botelho wrote: > cpu0: <ACPI CPU> on acpi0 > est0: <Enhanced SpeedStep Frequency Control> on cpu0 > est0: Guessed bus clock (high) of 200 MHz > > Fatal trap 18: integer divide fault while in kernel mode > cpuid = 0; acpi id = 00 > ... > panic: integer divide fault Unfortunately, there are CPU models around that have MSR_PERF_STATUS bits that are inconsistent, e.g: - The low and high multipliers (bits 31:24 and 15:8) are equal, so if you subtract them and then divide... boom :) - Either the low or high multipliers (or both) are zero, which is also not good, at least not with the current code. As an example, I originally added some multiplier sanity checks here: http://www.openbsd.org/cgi-bin/cvsweb/src/sys/arch/i386/i386/est.c#rev1.27
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?48B31456.5030009>