From owner-freebsd-acpi@FreeBSD.ORG Wed Mar 25 22:39:37 2009 Return-Path: Delivered-To: freebsd-acpi@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3D7EB1065672 for ; Wed, 25 Mar 2009 22:39:37 +0000 (UTC) (envelope-from bruce@cran.org.uk) Received: from muon.cran.org.uk (brucec-1-pt.tunnel.tserv4.nyc4.ipv6.he.net [IPv6:2001:470:1f06:c09::2]) by mx1.freebsd.org (Postfix) with ESMTP id 0DF758FC12 for ; Wed, 25 Mar 2009 22:39:37 +0000 (UTC) (envelope-from bruce@cran.org.uk) Received: from muon.cran.org.uk (localhost [127.0.0.1]) by muon.cran.org.uk (Postfix) with ESMTP id BD59219017; Wed, 25 Mar 2009 22:39:35 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on muon X-Spam-Level: X-Spam-Status: No, score=-2.5 required=8.0 tests=AWL,BAYES_00,NO_RELAYS autolearn=ham version=3.2.5 Received: from gluon.draftnet (unknown [IPv6:2a01:348:10f:0:240:f4ff:fe57:9871]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by muon.cran.org.uk (Postfix) with ESMTPSA; Wed, 25 Mar 2009 22:39:35 +0000 (GMT) Date: Wed, 25 Mar 2009 22:39:14 +0000 From: Bruce Cran To: Daniel =?UTF-8?Q?Dvo=C5=99=C3=A1k?= Message-ID: <20090325223914.4387eeae@gluon.draftnet> In-Reply-To: <200903200030.n2K0U3iG011009@freefall.freebsd.org> References: <200903200030.n2K0U3iG011009@freefall.freebsd.org> X-Mailer: Claws Mail 3.7.1 (GTK+ 2.14.7; i386-portbld-freebsd7.2) Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: freebsd-acpi@FreeBSD.org Subject: Re: kern/108581: [sysctl] sysctl: hw.acpi.cpu.cx_lowest: Invalid argument X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Mar 2009 22:39:37 -0000 On Fri, 20 Mar 2009 00:30:03 GMT Daniel Dvo=C5=99=C3=A1k wrote: > The following reply was made to PR kern/108581; it has been noted by > GNATS. >=20 > From: =3D?UTF-8?Q?Daniel_Dvo=3DC5=3D99=3DC3=3DA1k?=3D > To: , > > Cc: =20 > Subject: Re: kern/108581: [sysctl] sysctl: hw.acpi.cpu.cx_lowest: > Invalid argument Date: Fri, 20 Mar 2009 01:01:51 +0100 >=20 > This is a multi-part message in MIME format. > =20 > ------=3D_NextPart_000_0007_01C9A8F7.746C4190 > Content-Type: text/plain; > charset=3D"UTF-8" > Content-Transfer-Encoding: quoted-printable > =20 > Hi acpi team, > =3D20 > today I have installed fbsd 7.1R on one box with this relativly old =3D > error and I was surprised about results .. it is the same: > =3D20 > # uname -a > FreeBSD X.Y.Z 7.1-RELEASE FreeBSD 7.1-RELEASE #0: Thu Jan 1 > 14:37:25 =3D UTC 2009 > root@logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC =3D i386 > =20 > # sysctl dev.cpu.0.cx_supported > dev.cpu.0.cx_supported: C1/0 > =20 > # sysctl hw.acpi.cpu.cx_lowest=3D3DC1 > hw.acpi.cpu.cx_lowest: C1 > sysctl: hw.acpi.cpu.cx_lowest: Invalid argument > =3D20 > # sysctl hw.acpi.cpu.cx_lowest=3D3DC0 > hw.acpi.cpu.cx_lowest: C1 > sysctl: hw.acpi.cpu.cx_lowest: Invalid argument > =3D20 > # sysctl hw.acpi.cpu.cx_lowest=3D3DC1/0 > hw.acpi.cpu.cx_lowest: C1 > sysctl: hw.acpi.cpu.cx_lowest: Invalid argument > =20 > # dmesg -a | grep "acpi" > acpi0: on motherboard > acpi0: Overriding SCI Interrupt from IRQ 9 to IRQ 20 > acpi0: [ITHREAD] > acpi0: Power Button (fixed) > acpi0: reservation of 0, a0000 (3) failed > acpi0: reservation of 100000, ff00000 (3) failed > acpi_timer0: <24-bit timer at 3.579545MHz> port 0xe408-0xe40b on > acpi0 acpi_button0: on acpi0 > pcib0: port 0xcf8-0xcff on acpi0 > atkbdc0: port 0x60,0x64 irq 1 on acpi0 > cpu0: on acpi0 > hw.acpi.cpu.cx_lowest: > hw.acpi.cpu.cx_lowest I think I've found the problem and have updated the PR kern/108581 (http://www.freebsd.org/cgi/query-pr.cgi?pr=3Dkern/108581). The global cpu_cx_count was being initialized to 0 in acpi_cpu_startup (in /sys/dev/acpica/acpi_cpu.c) but code below it appears to assume that it's been intialized to 3 because it only sets it if it's higher than the current CPU supports - that is, cpu_cx_count should reflect the highest Cx state that all CPUs support. There's also a bug in the _CST section just below it; I think the line: if (sc->cpu_cx_count > cpu_cx_count) should be if (sc->cpu_cx_count < cpu_cx_count) --=20 Bruce Cran