All of lore.kernel.org
 help / color / mirror / Atom feed
From: Darren Hart <dvhart@linux.intel.com>
To: Chris Friesen <chris.friesen@genband.com>
Cc: Jesper Juhl <jj@chaosbits.net>,
	linux-kernel@vger.kernel.org, Eric Dumazet <dada1@cosmosbay.com>,
	Darren Hart <dvhltc@us.ibm.com>, Ingo Molnar <mingo@redhat.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Rusty Russell <rusty@rustcorp.com.au>
Subject: Re: App blocked in futex() burns 14% CPU.
Date: Fri, 15 Jul 2011 11:52:05 -0700	[thread overview]
Message-ID: <4E208C55.30507@linux.intel.com> (raw)
In-Reply-To: <4E1F72E1.3040102@genband.com>



On 07/14/2011 03:51 PM, Chris Friesen wrote:
> On 07/14/2011 04:34 PM, Jesper Juhl wrote:
>> So, I've recently started enabling the KDE desktop search on my box and it
>> runs some indexing services (naturally) to keep track of changes to files.
>> One of the apps it starts is a process named "virtuoso-t". This process
>> burns a *lot* of CPU when it's just started, but once it has caught up
>> with recent changes it quiets down. It doesn't quite quiet down to the
>> level I'd expect though. I see it constantly using 12-14% CPU time in
>> 'top' even when there is *nothing* going on on the machine :
>>
>> top - 00:25:09 up  2:38,  2 users,  load average: 0.01, 0.04, 0.05
>> Tasks: 155 total,   1 running, 153 sleeping,   0 stopped,   1 zombie
>> Cpu(s):  0.7%us,  0.8%sy,  3.7%ni, 94.6%id,  0.1%wa,  0.0%hi,  0.0%si,  0.0%st
>> Mem:   3853028k total,  2154696k used,  1698332k free,   184280k buffers
>> Swap:  4200992k total,        0k used,  4200992k free,   996824k cached
>>
>>    PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
>>   1952 jj        39  19  362m 263m 6544 S   14  7.0  25:09.54 virtuoso-t
>>   1811 jj        20   0  635m  27m  17m S    2  0.7   2:49.78 knotify4
>>   1928 jj        39  19  595m  26m  18m S    1  0.7   2:58.40 nepomukservices
>>
>> This box has a dual core Intel core i5-560M CPU with hyperthreading, so it
>> is 12-14% of a fairly capable CPU - that's rather a lot more than I'd
>> expect when the box is idle and there's nothing for the process to do.
>>
>> So, I tried strace'ing the process and it seems to just be blocked in
>> futex() most of the time (like 99%) :
>>
>> [jj@dragon ~]$ strace -p 1952
>> Process 1952 attached - interrupt to quit
>> futex(0x3086424, FUTEX_WAIT_PRIVATE, 503, NULL

Try strace with -f. If you really want to collect statistics about where
it is spending it's time, consider oprofile or perf.

>>
>> So it's just sitting there doing nothing, which lead me to think that this
>> is probably not a bug in the application - if it was doing some silly
>> polling loop or similar I would not just see it blocked in a futex() call.
>> So I'm guessing something must be happening in kernel space that's burning
>> a lot of CPU.. I could be completely wrong of course, and if I am, please
>> feel free to enlighten me.
> 
> You don't have enough kernel activity to account for 14% of a cpu.  Have 
> you checked whether there's another thread within the process that's 
> doing something in userspace?
> 

Agreed.

-- 
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel

  reply	other threads:[~2011-07-15 18:52 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-14 22:34 App blocked in futex() burns 14% CPU Jesper Juhl
2011-07-14 22:46 ` Jesper Juhl
2011-07-14 22:51 ` Chris Friesen
2011-07-15 18:52   ` Darren Hart [this message]
2011-07-17 18:47     ` Jesper Juhl

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4E208C55.30507@linux.intel.com \
    --to=dvhart@linux.intel.com \
    --cc=chris.friesen@genband.com \
    --cc=dada1@cosmosbay.com \
    --cc=dvhltc@us.ibm.com \
    --cc=jj@chaosbits.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=rusty@rustcorp.com.au \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.