lkml.org 
[lkml]   [2011]   [Mar]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: intel_ips produces constant load of 1
On Wed, 23 Mar 2011 19:15:57 +0100
Andreas Hartmann <andihartmann@freenet.de> wrote:

> Jesse Barnes wrote:
> > On Mon, 21 Mar 2011 11:04:04 -0700
> > Jesse Barnes <jbarnes@virtuousgeek.org> wrote:
> >
> >>> ps aux | grep ips
> >>> root 593 0.0 0.0 0 0 ? S 17:20 0:00
> >>> [ips-adjust]
> >>> root 594 0.0 0.0 0 0 ? D 17:20 0:00
> >>> [ips-monitor]
> >>>
> >>> If the module isn't loaded, the load of the machine in idle mode is 0 as
> >>> expected.
> >>
> >> This is a reporting problem, and probably due to the schedule() call
> >> and associated task state in the ips-monitor thread. I thought setting
> >> the task state to interruptible would prevent this, but it seems like
> >> it's not enough for the deferrable on-stack timers?
> >>
> >> At any rate, it's not actually causing increased CPU usage, so you can
> >> safely ignore it until we have a fix.
> >
> > Oops, one task uses interruptible correctly, but the monitor thread
> > doesn't.
> >
> > Does this patch fix your load average?
>
> Which patch? I can't see any patch :-).
>

Did I forget to paste it? See below.

--
Jesse Barnes, Intel Open Source Technology Center

diff --git a/drivers/platform/x86/intel_ips.c b/drivers/platform/x86/intel_ips.c
index 1294a39..85c8ad4 100644
--- a/drivers/platform/x86/intel_ips.c
+++ b/drivers/platform/x86/intel_ips.c
@@ -1111,7 +1111,7 @@ static int ips_monitor(void *data)
last_msecs = jiffies_to_msecs(jiffies);
expire = jiffies + msecs_to_jiffies(IPS_SAMPLE_PERIOD);

- __set_current_state(TASK_UNINTERRUPTIBLE);
+ __set_current_state(TASK_INTERRUPTIBLE);
mod_timer(&timer, expire);
schedule();


\
 
 \ /
  Last update: 2011-03-23 19:23    [W:0.049 / U:0.968 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site