lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20110322132555.715dc096@jbarnes-desktop>
Date:	Tue, 22 Mar 2011 13:25:55 -0700
From:	Jesse Barnes <jbarnes@...tuousgeek.org>
To:	Jesse Barnes <jbarnes@...tuousgeek.org>
Cc:	Andreas Hartmann <andihartmann@...19freenet.de>,
	linux-kernel@...r.kernel.org
Subject: Re: intel_ips produces constant load of 1

On Mon, 21 Mar 2011 11:04:04 -0700
Jesse Barnes <jbarnes@...tuousgeek.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();
 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ