[TEST/REVIEW] CPU accounting patches
John Baldwin
jhb at freebsd.org
Tue Jan 24 14:45:16 PST 2006
On Tuesday 24 January 2006 17:16, Poul-Henning Kamp wrote:
> In message <200601241709.03450.jhb at freebsd.org>, John Baldwin writes:
> >On Tuesday 24 January 2006 16:10, Poul-Henning Kamp wrote:
> >> Here is a new version of my cpu accounting change patch.
> >
> >The XXX in calcru1() you can remove. The rux you are adding the current
> > time to is a local rusage_ext on the stack.
>
> I found that out myself and forgot to remove the XXX :-)
>
> >However, your changes probably make
> >it bogus in that the current code assumes it can subtract the start time
> > of another CPU (for a thread running on another CPU) from the current
> > time on this CPU to get the amount of time the other thread has been
> > running on the other CPU since it last updated p->p_rux.rux_runtime.
>
> This is when we call calcru on a running process ?
>
> Yeah, that's a problem.
Yeah, SIGINFO is an example, and getrusage() of another process might run into
this, too.
> I'd tend to say we should just forget about accounting for the
> current quantum in that case.
It was added to fix some of the "time going backwards" and "negative uptime"
stuff I think. Ask Bruce.
> This is a valid handling IMO because the result can never be used
> in any final or definitive kind of way anyway. When the process
> finishes or deschedules the numbers will get updated correctly.
Unfortunately calcru() updates the millisecond counts (uu, su, iu) for running
processes and I think having a bogus runtime gets that very confused.
> Doing this may also simplify the locking of calcru ?
Nah, it already runs lockless in some cases I think.
> >Other than that this patch looks fine to me. FYI, Alpha also has a
> > per-cpu counter (RPCC) that is used for the timecounter on UP Alphas.
>
> My Alpha is hosed right now and doesn't want to boot 6.0-R. I havn't had
> time to boot my 5.0-R on it and do the upgrade to -current the long way.
Heh, I have one running head atm. However, it's second CPU is having issues
(I think the CPU fan has died) so it's less useful than in the past. :(
--
John Baldwin <jhb at FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve" = http://www.FreeBSD.org
More information about the freebsd-current
mailing list