From: Chuck Ebbert <cebbert@redhat.com>
To: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: "Luca Tettamanti" <kronos.it@gmail.com>,
"Frans Pop" <elendil@planet.nl>, "Willy Tarreau" <w@1wt.eu>,
LKML <linux-kernel@vger.kernel.org>,
"Ilpo Järvinen" <ilpo.jarvinen@helsinki.fi>,
"Alexander E. Patrakov" <patrakov@ums.usu.ru>,
"Ingo Molnar" <mingo@elte.hu>
Subject: Re: [PATCH for testing] Re: Decreasing stime running confuses top
Date: Thu, 04 Oct 2007 18:01:29 -0400 [thread overview]
Message-ID: <470562B9.6060200@redhat.com> (raw)
In-Reply-To: <200710042310.25223.borntraeger@de.ibm.com>
On 10/04/2007 05:10 PM, Christian Borntraeger wrote:
> <patch reverting to 2.6.22 behavior>
Alternative patch:
procfs: Don't read runtime twice when computing task's stime
Current code reads p->se.sum_exec_runtime twice and goes through
multiple type conversions to calculate stime. Read it once and
skip some of the conversions.
Signed-off-by: Chuck Ebbert <cebbert@redhat.com>
--- linux-2.6.23-rc6-dell.orig/fs/proc/array.c
+++ linux-2.6.23-rc6-dell/fs/proc/array.c
@@ -334,39 +334,38 @@ static cputime_t task_stime(struct task_
return p->stime;
}
#else
-static cputime_t task_utime(struct task_struct *p)
+static clock_t __task_utime(struct task_struct *p, u64 runtime)
{
clock_t utime = cputime_to_clock_t(p->utime),
total = utime + cputime_to_clock_t(p->stime);
- u64 temp;
/*
* Use CFS's precise accounting:
*/
- temp = (u64)nsec_to_clock_t(p->se.sum_exec_runtime);
-
if (total) {
- temp *= utime;
- do_div(temp, total);
+ runtime *= utime;
+ do_div(runtime, total);
}
- utime = (clock_t)temp;
+ return (clock_t)runtime;
+}
- return clock_t_to_cputime(utime);
+static cputime_t task_utime(struct task_struct *p)
+{
+ u64 runtime = (u64)nsec_to_clock_t(p->se.sum_exec_runtime);
+
+ return clock_t_to_cputime(__task_utime(p, runtime));
}
static cputime_t task_stime(struct task_struct *p)
{
- clock_t stime;
+ u64 runtime = (u64)nsec_to_clock_t(p->se.sum_exec_runtime);
/*
* Use CFS's precise accounting. (we subtract utime from
* the total, to make sure the total observed by userspace
* grows monotonically - apps rely on that):
*/
- stime = nsec_to_clock_t(p->se.sum_exec_runtime) -
- cputime_to_clock_t(task_utime(p));
-
- return clock_t_to_cputime(stime);
+ return clock_t_to_cputime(runtime - __task_utime(p, runtime));
}
#endif
next prev parent reply other threads:[~2007-10-04 22:02 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-03 12:33 top displaying 9999% CPU usage Frans Pop
2007-10-03 12:52 ` Jan Engelhardt
2007-10-03 13:03 ` Alexander E. Patrakov
2007-10-03 14:04 ` Frans Pop
2007-10-03 14:43 ` Ilpo Järvinen
2007-10-03 14:51 ` Ilpo Järvinen
2007-10-03 19:27 ` Decreasing stime running confuses top (was: top displaying 9999% CPU usage) Frans Pop
2007-10-03 20:24 ` Willy Tarreau
2007-10-03 23:32 ` Frans Pop
2007-10-04 19:19 ` Luca Tettamanti
2007-10-04 19:32 ` Decreasing stime running confuses top Chuck Ebbert
2007-10-04 20:00 ` Christian Borntraeger
2007-10-04 20:21 ` Chuck Ebbert
2007-10-04 21:10 ` [PATCH for testing] " Christian Borntraeger
2007-10-04 22:01 ` Chuck Ebbert [this message]
2007-10-04 22:31 ` Christian Borntraeger
2007-10-05 11:43 ` Luca
2007-10-05 15:07 ` Frans Pop
2007-10-05 15:49 ` Frans Pop
2007-10-08 16:49 ` Christian Borntraeger
2007-10-08 17:00 ` Ingo Molnar
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=470562B9.6060200@redhat.com \
--to=cebbert@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=elendil@planet.nl \
--cc=ilpo.jarvinen@helsinki.fi \
--cc=kronos.it@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=patrakov@ums.usu.ru \
--cc=w@1wt.eu \
/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.