From owner-cvs-all@FreeBSD.ORG Mon Aug 25 20:21:43 2008 Return-Path: Delivered-To: cvs-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 349AB1065684; Mon, 25 Aug 2008 20:21:43 +0000 (UTC) (envelope-from dimitry@andric.com) Received: from tensor.andric.com (cl-327.ede-01.nl.sixxs.net [IPv6:2001:7b8:2ff:146::2]) by mx1.freebsd.org (Postfix) with ESMTP id DD8CE8FC18; Mon, 25 Aug 2008 20:21:42 +0000 (UTC) (envelope-from dimitry@andric.com) Received: from [IPv6:2001:7b8:3a7:0:3cd5:ae59:5744:1442] (unknown [IPv6:2001:7b8:3a7:0:3cd5:ae59:5744:1442]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id 38FF33F; Mon, 25 Aug 2008 22:21:41 +0200 (CEST) Message-ID: <48B31456.5030009@andric.com> Date: Mon, 25 Aug 2008 22:21:42 +0200 From: Dimitry Andric User-Agent: Thunderbird 2.0.0.17pre (Windows/20080815) MIME-Version: 1.0 To: Renato Botelho References: <200808231253.m7NCrkLp093604@repoman.freebsd.org> <747dc8f30808250629h73676fd8m71f0d6cbc0e035e2@mail.gmail.com> <747dc8f30808251227v286ab480mea5b0d7dff0311fa@mail.gmail.com> In-Reply-To: <747dc8f30808251227v286ab480mea5b0d7dff0311fa@mail.gmail.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: cvs-src@freebsd.org, src-committers@freebsd.org, cvs-all@freebsd.org, John Baldwin Subject: Re: cvs commit: src/sys/i386/cpufreq est.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Aug 2008 20:21:43 -0000 On 2008-08-25 21:27, Renato Botelho wrote: > cpu0: on acpi0 > est0: 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