numbers don't lie ...

Mike Meyer mwm-keyword-freebsdhackers2.e313df at mired.org
Thu Sep 14 10:39:14 PDT 2006


In <45099123.4000500 at rcn.com>, Gary Corcoran <gcorcoran at rcn.com> typed:
> The confusing thing is that I thought 'real' time should be >= 'user' + 'sys'.
> But here 'user' is much greater than 'real' for both machines!  The sense I
> got from the other messages in this thread is that 'user' time is somewhat
> meaningless (i.e. unreliable as a measure) in a multi-CPU and/or hyperthreading
> environment.  Can you clarify?

'real' is wall clock time. 'user' and 'sys' are cpu time. If your
process gets all of some cpu, then user + sys will be the same as real
time. It's not possible to get more than all of a cpu, so that's a
maximum *per cpu*. If you have multiple cpus, the formula you want is
'real' * ncpu >= 'user' + 'sys'.

I made the comment about freebsd's measure of user time being skewed
by hyperthreading. That's a bit vague. The problem is that waiting
caused by hyperthreading will count against the instruction that's
doing the waiting, which skews them. But as Kris pointed out, there
are other things that have that property, so this is just one more
complication when it comes to figuring the performance of modern CPUs.

	<mike
-- 
Mike Meyer <mwm at mired.org>		http://www.mired.org/consulting.html
Independent Network/Unix/Perforce consultant, email for more information.


More information about the freebsd-hackers mailing list