RE: [2/4] ACPI C-States: bm_activity improvements

From: Brown, Len
Date: Wed Jun 28 2006 - 03:26:54 EST


applied.
thanks,
-Len

>-----Original Message-----
>From: linux-kernel-owner@xxxxxxxxxxxxxxx
>[mailto:linux-kernel-owner@xxxxxxxxxxxxxxx] On Behalf Of
>Dominik Brodowski
>Sent: Monday, June 19, 2006 5:30 PM
>To: Thomas Gleixner; Brown, Len
>Cc: Con Kolivas; Ingo Molnar; LKML; Andrew Morton; john stultz
>Subject: [2/4] ACPI C-States: bm_activity improvements
>
>Do not assume there was bus mastering activity if the idle
>handler didn't
>get called, as there's only reason to not enter C3-type sleep
>if there is
>bus master activity going on. Only for the "promotion" into
>C3-type sleep
>bus mastering activity is taken into account, and there only
>current bus
>mastering activity, and not pure guessing should lead to the
>decision on
>whether to enter C3-type sleep or not.
>
>Also, as bm_activity is a jiffy-based bitmask (bit 0: bus
>mastering activity
>during this juffy, bit 31: bus mastering activity 31 jiffies
>ago), fix the
>setting of bit 0, as it might be called multiple times within
>one jiffy.
>
>Signed-off-by: Dominik Brodowski <linux@xxxxxxxxxxxxxxxxxxxx>
>
>---
>
> drivers/acpi/processor_idle.c | 18 ++++++------------
> 1 files changed, 6 insertions(+), 12 deletions(-)
>
>2e1b29fabc1085e1ab5b05dcac5d59e82c633668
>diff --git a/drivers/acpi/processor_idle.c
>b/drivers/acpi/processor_idle.c
>index 4f166fa..29470e1 100644
>--- a/drivers/acpi/processor_idle.c
>+++ b/drivers/acpi/processor_idle.c
>@@ -3,7 +3,7 @@
> *
> * Copyright (C) 2001, 2002 Andy Grover <andrew.grover@xxxxxxxxx>
> * Copyright (C) 2001, 2002 Paul Diefenbaugh
><paul.s.diefenbaugh@xxxxxxxxx>
>- * Copyright (C) 2004 Dominik Brodowski <linux@xxxxxxxx>
>+ * Copyright (C) 2004, 2005 Dominik Brodowski <linux@xxxxxxxx>
> * Copyright (C) 2004 Anil S Keshavamurthy
><anil.s.keshavamurthy@xxxxxxxxx>
> * - Added processor hotplug support
> * Copyright (C) 2005 Venkatesh Pallipadi
><venkatesh.pallipadi@xxxxxxxxx>
>@@ -261,21 +261,15 @@ static void acpi_processor_idle(void)
> u32 bm_status = 0;
> unsigned long diff = jiffies -
>pr->power.bm_check_timestamp;
>
>- if (diff > 32)
>- diff = 32;
>+ if (diff > 31)
>+ diff = 31;
>
>- while (diff) {
>- /* if we didn't get called, assume
>there was busmaster activity */
>- diff--;
>- if (diff)
>- pr->power.bm_activity |= 0x1;
>- pr->power.bm_activity <<= 1;
>- }
>+ pr->power.bm_activity <<= diff;
>
> acpi_get_register(ACPI_BITREG_BUS_MASTER_STATUS,
> &bm_status, ACPI_MTX_DO_NOT_LOCK);
> if (bm_status) {
>- pr->power.bm_activity++;
>+ pr->power.bm_activity |= 0x1;
> acpi_set_register(ACPI_BITREG_BUS_MASTER_STATUS,
> 1, ACPI_MTX_DO_NOT_LOCK);
> }
>@@ -287,7 +281,7 @@ static void acpi_processor_idle(void)
> else if (errata.piix4.bmisx) {
> if ((inb_p(errata.piix4.bmisx + 0x02) & 0x01)
> || (inb_p(errata.piix4.bmisx +
>0x0A) & 0x01))
>- pr->power.bm_activity++;
>+ pr->power.bm_activity |= 0x1;
> }
>
> pr->power.bm_check_timestamp = jiffies;
>--
>1.2.4
>
>-
>To unsubscribe from this list: send the line "unsubscribe
>linux-kernel" in
>the body of a message to majordomo@xxxxxxxxxxxxxxx
>More majordomo info at http://vger.kernel.org/majordomo-info.html
>Please read the FAQ at http://www.tux.org/lkml/
>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/