Re: intel_ips produces constant load of 1

From: Jesse Barnes
Date: Tue Mar 22 2011 - 16:26:17 EST


On Mon, 21 Mar 2011 11:04:04 -0700
Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx> 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?

--
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();

--
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/