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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



applied.
thanks,
-Len 

>-----Original Message-----
>From: [email protected] 
>[mailto:[email protected]] 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 <[email protected]>
>
>---
>
> 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 <[email protected]>
>  *  Copyright (C) 2001, 2002 Paul Diefenbaugh 
><[email protected]>
>- *  Copyright (C) 2004       Dominik Brodowski <[email protected]>
>+ *  Copyright (C) 2004, 2005 Dominik Brodowski <[email protected]>
>  *  Copyright (C) 2004  Anil S Keshavamurthy 
><[email protected]>
>  *  			- Added processor hotplug support
>  *  Copyright (C) 2005  Venkatesh Pallipadi 
><[email protected]>
>@@ -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 [email protected]
>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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux