This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-changelog] [linux-2.6.18-xen] CPUIDLE: DOM0, enable C1 FFH

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [linux-2.6.18-xen] CPUIDLE: DOM0, enable C1 FFH
From: "Xen patchbot-linux-2.6.18-xen" <patchbot-linux-2.6.18-xen@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 31 Oct 2008 03:40:08 -0700
Delivery-date: Fri, 31 Oct 2008 03:39:52 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1225373683 0
# Node ID 2fb13b8cbe134fdb3f18ee21e641e52655066c62
# Parent  ac9a6209c679196a9ec1ff21d964258f36be439d
CPUIDLE: DOM0, enable C1 FFH

Get C1 info from acpi table and pass it to Xen. It is partially
backported from below kernel commit:

commit 991528d7348667924176f3e29addea0675298944
Author: Venkatesh Pallipadi <venkatesh.pallipadi@xxxxxxxxx>
Date:   Mon Sep 25 16:28:13 2006 -0700

    ACPI: Processor native C-states using MWAIT

    Intel processors starting with the Core Duo support
    support processor native C-state using the MWAIT instruction.
    Refer: Intel Architecture Software Developer's Manual

    Platform firmware exports the support for Native C-state to OS
    ACPI _PDC and _CST methods.
    Refer: Intel Processor Vendor-Specific ACPI: Interface

    With Processor Native C-state, we use 'MWAIT' instruction on the
    to enter different C-states (C1, C2, C3).  We won't use the
    special IO
    ports to enter C-state and no SMM mode etc required to enter
    Overall this will mean better C-state support.

    One major advantage of using MWAIT for all C-states is, with this
    and "treat interrupt as break event" feature of MWAIT, we can now get
    accurate timing for the time spent in C1, C2, ..  states.

    Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@xxxxxxxxx>
    Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
    Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

Signed-off-by: Wei Gang <gang.wei@xxxxxxxxx>
 drivers/acpi/processor_idle.c |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)

diff -r ac9a6209c679 -r 2fb13b8cbe13 drivers/acpi/processor_idle.c
--- a/drivers/acpi/processor_idle.c     Thu Oct 30 13:18:07 2008 +0000
+++ b/drivers/acpi/processor_idle.c     Thu Oct 30 13:34:43 2008 +0000
@@ -654,7 +654,7 @@ static int acpi_processor_get_power_info
        if (nocst)
                return -ENODEV;
-       current_count = 1;
+       current_count = 0;
        /* Zero initialize C2 onwards and prepare for fresh CST lookup */
        for (i = 2; i < ACPI_PROCESSOR_MAX_POWER; i++)
@@ -728,13 +728,17 @@ static int acpi_processor_get_power_info
                cx.type = obj->integer.value;
+               /*
+                * Some buggy BIOSes won't list C1 in _CST -
+                * Let acpi_processor_get_power_info_default() handle them later
+                */
+               if (i == 1 && cx.type != ACPI_STATE_C1)
+                       current_count++;
                /* Following check doesn't apply to external control case */
                if (!processor_pm_external() &&
                    (cx.type != ACPI_STATE_C1) &&
                    (reg->space_id != ACPI_ADR_SPACE_SYSTEM_IO))
-                       continue;
-               if ((cx.type < ACPI_STATE_C2) || (cx.type > ACPI_STATE_C3))
                obj = (union acpi_object *)&(element->package.elements[2]);

Xen-changelog mailing list

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [linux-2.6.18-xen] CPUIDLE: DOM0, enable C1 FFH, Xen patchbot-linux-2.6.18-xen <=