Messages in this thread Patch in this message |  | | Date | Wed, 23 Mar 2011 11:20:06 -0700 | From | Jesse Barnes <> | Subject | Re: 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();
|  |