lkml.org 
[lkml]   [2011]   [Mar]   [22]   [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 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?

    --
    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-22 21:29    [W:0.021 / U:0.232 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site