mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Christian Borntraeger <borntraeger@de.ibm.com>
To: balbir@linux.vnet.ibm.com
Cc: Chuck Ebbert <cebbert@redhat.com>, Frans Pop <elendil@planet.nl>,
	Greg KH <greg@kroah.com>,
	stable@kernel.org, linux-kernel@vger.kernel.org,
	Ingo Molnar <mingo@elte.hu>
Subject: Re: [stable] 2.6.23 regression: top displaying 9999% CPU usage
Date: Tue, 16 Oct 2007 12:34:35 +0200	[thread overview]
Message-ID: <200710161234.35529.borntraeger@de.ibm.com> (raw)
In-Reply-To: <471484B3.9010903@linux.vnet.ibm.com>

Am Dienstag, 16. Oktober 2007 schrieb Balbir Singh:
> I am trying to think out loud as to what the root cause of the problem
> might be. In one of the discussion threads, I saw utime going backwards,
> which seemed very odd, I suspect that those are rounding errors.
> 
> I don't understand your explanation below
> 
> Initially utime = 9, stime = 0, sum_exec_runtime = S1
> 
> Later
> 
> utime = 9, stime = 1, sum_exec_runtime = S2
> 
> We can be sure that S >= (utime + stime)

I think here is the problem. How can we be sure? We cant. utime and stime
are sampled, so they can be largely off in any direction,if the program
sleeps often and manages to synchronize itself to the timer tick. Lets say
a program only does a simple system call and then sleeps. So sum_exec_runtime
is increased by lets say 1000 cycles on a 1Ghz box which means 1000ns. If now 
the timer tick happens exactly at this moment, stime is increased by 1 tick
= 1000000ns. 

Maybe there is some magic in the code which I did not see, but obviously
the problem exists and looking at Frans data (stime+utime) are not decreasing,
but stime isnt and utime is. If you look at Frans data you see:
Oct 16 11:54:48 8 10
Oct 16 11:54:49 6 12  <-- utime
Oct 16 11:54:50 6 12
Oct 16 11:54:51 6 12
Oct 16 11:54:52 8 10  <-- stime
Oct 16 11:54:53 8 10
Oct 16 11:54:54 8 10
Oct 16 11:54:55 8 12
Oct 16 11:54:56 8 12

(stime+utime) is constant. That means that S2-S1 is obviously smaller than
one tick (See the calculation in task_stime). I am quite sure it is caused
by changes in the sampled values p->utime and p->stime.

> 
> If S2 = S1 + delta, then as per our calculation
> 
> Initially
> 
> utime_proc = (utime * (S1))/(utime + stime)
>            = nsec_to_clock_t(9 * S1 / 9)
> 
> later
> 
> utime_proc = nsec_to_clock_t(9 * S2/10)
> 
> Given that S >= (utime + stime), we should be fine.




  parent reply	other threads:[~2007-10-16 10:35 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-12 20:31 Frans Pop
2007-10-12 21:22 ` [stable] " Greg KH
2007-10-13  7:53   ` Frans Pop
2007-10-14 20:36     ` Christian Borntraeger
2007-10-16  8:29       ` Christian Borntraeger
2007-10-16  9:30         ` Balbir Singh
2007-10-16 10:11           ` Frans Pop
2007-10-16 10:38             ` Balbir Singh
2007-10-16 10:34           ` Christian Borntraeger [this message]
2007-10-16 12:59             ` Balbir Singh
2007-10-29 12:05               ` Frans Pop
2007-10-29 12:31                 ` Balbir Singh
2007-10-29 20:04                   ` Ingo Molnar
2007-10-29 20:33                     ` Christian Borntraeger
2007-10-29 20:41                       ` Ingo Molnar
2007-10-29 21:11                         ` Peter Zijlstra
2007-10-29 21:22                         ` Frans Pop
2007-10-29 21:43                     ` Balbir Singh
2007-10-29 23:19                       ` Frans Pop
2007-10-29 23:22                         ` Ingo Molnar
2007-10-30 20:22                           ` Otavio Salvador
2007-10-29 23:24                         ` Balbir Singh
2007-10-30  5:56                       ` Christian Borntraeger
2007-10-30  6:00                         ` Balbir Singh

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=200710161234.35529.borntraeger@de.ibm.com \
    --to=borntraeger@de.ibm.com \
    --cc=balbir@linux.vnet.ibm.com \
    --cc=cebbert@redhat.com \
    --cc=elendil@planet.nl \
    --cc=greg@kroah.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=stable@kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome