From: Balbir Singh <balbir@linux.vnet.ibm.com>
To: Christian Borntraeger <borntraeger@de.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 15:00:27 +0530 [thread overview]
Message-ID: <471484B3.9010903@linux.vnet.ibm.com> (raw)
In-Reply-To: <200710161029.27132.borntraeger@de.ibm.com>
Christian Borntraeger wrote:
> Chuck, Balbir,
>
> we still have a problem with stime occosionally going backwards. I stated
> below that I think this is not fixable with the current utime/stime split
> algorithm.
>
Hi,
I missed seeing this problem before, sorry about that. Thanks for the
link below, I now understand the problem.
> Balbir, you wrote this code, Chuck you tried to fix it. Any ideas how to
> fix this properly? The only idea I have requires that we save the old value
> of utime and stime and therefore requires additional locking.
>
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)
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.
The only problem I see is with rounding, like I mentioned before at two
places
1. Rounding at do_div() in task_utime()
2. Rounding in conversion from clock_t_to_cputime()
I have tried and not had any success reproducing the problem, could you
please help me with some pointers/steps to reproduce the problem?
--
Warm Regards,
Balbir Singh
Linux Technology Center
IBM, ISTL
next prev parent reply other threads:[~2007-10-16 9:31 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-12 20:31 2.6.23 regression: top displaying 9999% CPU usage 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 [this message]
2007-10-16 10:11 ` Frans Pop
2007-10-16 10:38 ` Balbir Singh
2007-10-16 10:34 ` Christian Borntraeger
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=471484B3.9010903@linux.vnet.ibm.com \
--to=balbir@linux.vnet.ibm.com \
--cc=borntraeger@de.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 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.