RE: [3/4] ACPI C-States: only demote on current bus mastering activity

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

 



applied.
thanks,
-Len 

>-----Original Message-----
>From: Dominik Brodowski [mailto:[email protected]] 
>Sent: Monday, June 19, 2006 5:31 PM
>To: Thomas Gleixner; Brown, Len
>Cc: Con Kolivas; Ingo Molnar; LKML; Andrew Morton; john stultz
>Subject: [3/4] ACPI C-States: only demote on current bus 
>mastering activity
>
>Only if bus master activity is going on at the present, we should
>avoid entering C3-type sleep, as it might be a faulty 
>transition. As long
>as the bm_activity bitmask was based on the number of calls to the ACPI
>idle function, looking at previous moments made sense. Now, 
>with it being
>based on what happened this jiffy, looking at this jiffy should be
>sufficient.
>
>Signed-off-by: Dominik Brodowski <[email protected]>
>
> drivers/acpi/processor_idle.c |    7 ++++---
> 1 files changed, 4 insertions(+), 3 deletions(-)
>
>Index: linux-2.6.16-rc5-dt/drivers/acpi/processor_idle.c
>===================================================================
>--- linux-2.6.16-rc5-dt.orig/drivers/acpi/processor_idle.c	
>2006-02-27 20:32:58.000000000 +1100
>+++ linux-2.6.16-rc5-dt/drivers/acpi/processor_idle.c	
>2006-02-27 20:32:59.000000000 +1100
>@@ -287,10 +287,10 @@ static void acpi_processor_idle(void)
> 		pr->power.bm_check_timestamp = jiffies;
> 
> 		/*
>-		 * Apply bus mastering demotion policy.  
>Automatically demote
>+		 * If bus mastering is or was active this jiffy, demote
> 		 * to avoid a faulty transition.  Note that the 
>processor
> 		 * won't enter a low-power state during this 
>call (to this
>-		 * funciton) but should upon the next.
>+		 * function) but should upon the next.
> 		 *
> 		 * TBD: A better policy might be to fallback to 
>the demotion
> 		 *      state (use it for this quantum only) istead of
>@@ -298,7 +298,8 @@ static void acpi_processor_idle(void)
> 		 *      qualification.  This may, however, introduce DMA
> 		 *      issues (e.g. floppy DMA transfer 
>overrun/underrun).
> 		 */
>-		if (pr->power.bm_activity & cx->demotion.threshold.bm) {
>+		if ((pr->power.bm_activity & 0x1) &&
>+		    cx->demotion.threshold.bm) {
> 			local_irq_enable();
> 			next_state = cx->demotion.state;
> 			goto end;
>
-
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