[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