Luca Tettamanti wrote:
> Il Wed, Aug 22, 2007 at 08:02:07AM +0300, Avi Kivity ha scritto: 
>   
>> Luca Tettamanti wrote:
>>
>>     
>>> Actually I'm having troubles with cyclesoak (probably it's calibration),
>>> numbers are not very stable across multiple runs...
>>>   
>>>       
>> I've had good results with cyclesoak; maybe you need to run it in
>> runlevel 3 so the load generated by moving the mouse or breathing
>> doesn't affect meaurements.
>>     
>
> This is what I did, I tested with -no-grapich in text console.
>
>   

Okay.  Maybe cpu frequency scaling confused it then.  Or something else?

>>> The guest is an idle kernel with HZ=1000.
>>>   
>>>       
>> Can you double check this?  The dyntick results show that this is either
>> a 100Hz kernel, or that there is a serious bug in dynticks.
>>     
>
> Ops I sent the wrong files, sorry.
>
> This is QEMU, with dynticks and HPET:
>
> % time     seconds  usecs/call     calls    errors syscall
> ------ ----------- ----------- --------- --------- ----------------
>  52.10    0.002966           0     96840           clock_gettime
>  19.50    0.001110           0     37050           timer_gettime
>  10.66    0.000607           0     20086           timer_settime
>  10.40    0.000592           0      8985      2539 sigreturn
>   4.94    0.000281           0      8361      2485 select
>   2.41    0.000137           0      8362           gettimeofday
> ------ ----------- ----------- --------- --------- ----------------
> 100.00    0.005693                179684      5024 total
>   

This looks like 250 Hz?  And a huge number of settime calls?

Something's broken with dynticks.

> % time     seconds  usecs/call     calls    errors syscall
> ------ ----------- ----------- --------- --------- ----------------
>  93.37    0.025541           3     10194     10193 select
>   4.82    0.001319           0     33259           clock_gettime
>   1.10    0.000301           0     10195           gettimeofday
>   0.71    0.000195           0     10196     10194 sigreturn
> ------ ----------- ----------- --------- --------- ----------------
> 100.00    0.027356                 63844     20387 total
>   

This is expected and sane.

> And this KVM:
>
> % time     seconds  usecs/call     calls    errors syscall
> ------ ----------- ----------- --------- --------- ----------------
>  42.66    0.002885           0     45527        24 ioctl
>  25.62    0.001733           0     89305           clock_gettime
>  13.12    0.000887           0     34894           timer_gettime
>   7.97    0.000539           0     18016           timer_settime
>   4.70    0.000318           0     12224      7270 rt_sigtimedwait
>   2.79    0.000189           0      7271           select
>   1.86    0.000126           0      7271           gettimeofday
>   1.27    0.000086           0      4954           rt_sigaction
> ------ ----------- ----------- --------- --------- ----------------
> 100.00    0.006763                219462      7294 total
>   

Similarly broken.  The effective frequency is twice qemu's.  I think we
had the same effect last time.

> % time     seconds  usecs/call     calls    errors syscall
> ------ ----------- ----------- --------- --------- ----------------
>  49.41    0.004606           0     59900        27 ioctl
>  24.14    0.002250           0     31252     21082 rt_sigtimedwait
>   9.65    0.000900           0     51856           clock_gettime
>   8.44    0.000787           0     17819           select
>   4.42    0.000412           0     17819           gettimeofday
>   3.94    0.000367           0     10170           rt_sigaction
> ------ ----------- ----------- --------- --------- ----------------
> 100.00    0.009322                188816     21109 total
>
>   

Similarly sane.


-- 
Do not meddle in the internals of kernels, for they are subtle and quick to 
panic.



Reply via email to