Hello. Benjamin Herrenschmidt wrote:
>>>Not sure when this started happening, but I wanted to report it. I'll >>>start bisecting in a day or two if noone else has gotten around to >>>looking at it: >>>$ echo "int main(void) { while(1); }" > test.c ; gcc test.c >>>$ time ./a.out & sleep 2 ; killall a.out >>>real 0m2.008s >>>user 0m4.014s >>>sys 0m0.002s >>>Seen on POWER5 and PA6T, haven't tried anything else yet. >> I'm not surprised -- the kernel accounts twice for each tick. > Your input would be much more valuable if you actually pointed out where > that happens and why since you seem to know it. I've already pointed out the reason, yet it won't hurt to repeat indeed. timer_interrupt() calls both account_process_time() and the hrtimers event handler which leads to: - if determenistic accounting is off, account_process_time() is the same as update_process_times() which gets also calleed by hrtimers via the event handler, so we get each tick accounted for twice; - if determenistic accounting is on, then timer_interrupt() calls account_process_time() and update_process_times() is still called by hrtimers, so each tick's gets accounted for userspace twice... > Ben. WBR, Sergei _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev