It's exactly the same issue as with systime and usertime. The interrupt
samples the program counter at various points at a fairly low frequency
(milliseconds) while syscalls last a few dozens of microseconds.
Probability makes it average out correctly in the end.
[Ingo, what about dyntick? suppose you have just one process that calls
read() from /dev/zero repeatedly. There'd be very few (or no)
interrupts -- what happens to accounting accuracy?]
Suppose the time to service the I/O is exactly equal to the amount
running in guest mode. Then the probability of the interrupt happening
in guest mode is equal to it happening outside guest mode and you'd get
50% guest, 50% system/user, which is what you want.
It's at least consistent... the same errors for everyone, so it averages
out in the end.
--
error compiling committee.c: too many arguments to function
-