From owner-freebsd-acpi@FreeBSD.ORG Fri Feb 15 23:29:14 2008 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 6294616A41B for ; Fri, 15 Feb 2008 23:29:14 +0000 (UTC) (envelope-from nate@root.org) Received: from root.org (root.org [67.118.192.226]) by mx1.freebsd.org (Postfix) with ESMTP id 490E613C46E for ; Fri, 15 Feb 2008 23:29:14 +0000 (UTC) (envelope-from nate@root.org) Received: (qmail 31089 invoked from network); 15 Feb 2008 23:29:15 -0000 Received: from adsl-71-141-98-131.dsl.snfc21.pacbell.net (HELO ?192.168.1.77?) (nate-mail@71.141.98.131) by root.org with ESMTPA; 15 Feb 2008 23:29:15 -0000 Message-ID: <47B62044.50808@root.org> Date: Fri, 15 Feb 2008 15:29:08 -0800 From: Nate Lawson User-Agent: Thunderbird 2.0.0.9 (Windows/20071031) MIME-Version: 1.0 To: Andriy Gapon References: <479F0ED4.9030709@icyb.net.ua> <479F62D9.6080703@root.org> <47A34360.2030105@icyb.net.ua> <47B0BF20.6020906@icyb.net.ua> <47B3214D.2050507@icyb.net.ua> <47B40529.1040400@icyb.net.ua> In-Reply-To: <47B40529.1040400@icyb.net.ua> X-Enigmail-Version: 0.95.6 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-acpi@freebsd.org Subject: Re: cx_lowest and CPU usage 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: Fri, 15 Feb 2008 23:29:14 -0000 Andriy Gapon wrote: > on 13/02/2008 18:56 Andriy Gapon said the following: >> on 11/02/2008 23:33 Andriy Gapon said the following: >>> Hmm, it seems that the quirk is only honored if you actually try to use >>> C3 state, but it doesn't exclude the state from the available states. >>> This is OK, but seems to be a little bit non-user-friendly. >>> >> >> It seems that the following code in acpi_cpu_generic_cx_probe() should >> have a check for the quirk (for C3 to not be present in the available >> states): >> >> /* Validate and allocate resources for C3 (P_LVL3). */ >> if (AcpiGbl_FADT->Plvl3Lat <= 1000) { >> gas.Address = sc->cpu_p_blk + 5; >> acpi_bus_alloc_gas(sc->cpu_dev, &cx_ptr->res_type, &sc->cpu_rid, &gas, >> &cx_ptr->p_lvlx, RF_SHAREABLE); >> if (cx_ptr->p_lvlx != NULL) { >> sc->cpu_rid++; >> cx_ptr->type = ACPI_STATE_C3; >> cx_ptr->trans_lat = AcpiGbl_FADT->Plvl3Lat; >> cx_ptr++; >> sc->cpu_cx_count++; >> } >> } >> >> I will test this hypothesis tonight. >> It is definite that my system goes through this routine, because DSDT >> doesn't have _CST defined. >> >> > > The following patch did help to eliminate C3 from cx_supported. > Sorry, the patch is a copy/paste, tabs lost, but the change is tiny. > > @@ -590,7 +595,7 @@ > return; > > /* Validate and allocate resources for C3 (P_LVL3). */ > - if (AcpiGbl_FADT.C3Latency <= 1000) { > + if (AcpiGbl_FADT.C3Latency <= 1000 && (cpu_quirks & > CPU_QUIRK_NO_C3) == 0) { > gas.Address = sc->cpu_p_blk + 5; > acpi_bus_alloc_gas(sc->cpu_dev, &cx_ptr->res_type, &sc->cpu_rid, > &gas, > &cx_ptr->p_lvlx, RF_SHAREABLE); > > I've reviewed it, this patch is correct. -- Nate