LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Con Kolivas <kernel@kolivas.org>
To: linux list <linux-kernel@vger.kernel.org>
Cc: malc <av1474@comtv.ru>,
zwane@infradead.org, Ingo Molnar <mingo@elte.hu>,
ck list <ck@vds.kolivas.org>
Subject: Re: [PATCH] [RFC] sched: accurate user accounting
Date: Sun, 25 Mar 2007 12:14:04 +1000 [thread overview]
Message-ID: <200703251214.05058.kernel@kolivas.org> (raw)
In-Reply-To: <200703251159.03616.kernel@kolivas.org>
On Sunday 25 March 2007 11:59, Con Kolivas wrote:
> For an rsdl 0.33 patched kernel. Comments? Overhead worth it?
>
> ---
> Currently we only do cpu accounting to userspace based on what is actually
> happening precisely on each tick. The accuracy of that accounting gets
> progressively worse the lower HZ is. As we already keep accounting of
> nanosecond resolution we can accurately track user cpu, nice cpu and idle
> cpu if we move the accounting to update_cpu_clock with a nanosecond
> cpu_usage_stat entry. This increases overhead slightly but avoids the
> problem of tick aliasing errors making accounting unreliable.
Vale, this fixes your testcase you sent. Attached below for reference.
P.S. Sorry about one of the cc email addresses in the first email; I succumbed
to a silly practical joke unwittingly so you'll have to remove it when
replying to all.
/* gcc -o hog smallhog.c */
#include <time.h>
#include <limits.h>
#include <signal.h>
#include <sys/time.h>
#define HIST 10
static sig_atomic_t stop;
static void sighandler (int signr)
{
(void) signr;
stop = 1;
}
static unsigned long hog (unsigned long niters)
{
stop = 0;
while (!stop && --niters);
return niters;
}
int main (void)
{
int i;
struct itimerval it = { .it_interval = { .tv_sec = 0, .tv_usec = 1 },
.it_value = { .tv_sec = 0, .tv_usec = 1 } };
sigset_t set;
unsigned long v[HIST];
double tmp = 0.0;
unsigned long n;
signal (SIGALRM, &sighandler);
setitimer (ITIMER_REAL, &it, NULL);
for (i = 0; i < HIST; ++i) v[i] = ULONG_MAX - hog (ULONG_MAX);
for (i = 0; i < HIST; ++i) tmp += v[i];
tmp /= HIST;
n = tmp - (tmp / 3.0);
sigemptyset (&set);
sigaddset (&set, SIGALRM);
for (;;) {
hog (n);
sigwait (&set, &i);
}
return 0;
}
--
-ck
next prev parent reply other threads:[~2007-03-25 2:14 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-25 1:59 Con Kolivas
2007-03-25 2:14 ` Con Kolivas [this message]
2007-03-25 7:51 ` [patch] " Ingo Molnar
2007-03-25 8:39 ` Con Kolivas
2007-03-25 9:04 ` Ingo Molnar
2007-03-25 11:34 ` malc
2007-03-25 11:46 ` Con Kolivas
2007-03-25 12:02 ` Con Kolivas
2007-03-25 12:32 ` Gene Heskett
2007-03-25 12:41 ` Con Kolivas
2007-03-25 13:33 ` Gene Heskett
2007-03-25 13:05 ` malc
2007-03-25 13:06 ` malc
2007-03-25 14:15 ` Con Kolivas
2007-03-25 14:57 ` malc
2007-03-25 15:08 ` Con Kolivas
2007-03-25 15:19 ` malc
2007-03-25 15:28 ` Con Kolivas
2007-03-25 17:14 ` malc
2007-03-25 23:01 ` Con Kolivas
2007-03-25 23:57 ` Con Kolivas
2007-03-26 10:49 ` malc
2007-03-28 11:37 ` Ingo Molnar
2007-06-14 17:56 ` Vassili Karpov
2007-06-14 20:42 ` Ingo Molnar
2007-06-14 20:56 ` malc
2007-06-14 21:18 ` Ingo Molnar
2007-06-14 21:37 ` malc
2007-06-15 3:44 ` Balbir Singh
2007-06-15 6:07 ` malc
2007-06-16 13:21 ` Balbir Singh
2007-06-16 14:07 ` malc
2007-06-16 18:40 ` Ingo Molnar
2007-06-16 20:31 ` malc
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=200703251214.05058.kernel@kolivas.org \
--to=kernel@kolivas.org \
--cc=av1474@comtv.ru \
--cc=ck@vds.kolivas.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=zwane@infradead.org \
--subject='Re: [PATCH] [RFC] sched: accurate user accounting' \
/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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).