Re: [FYI] 2.6.13-rt3 and a nanosleep jitter test.

Daniel Walker
2005-08-31T15:14:57Z

There is already a suite HRT of tests they include a nanosleep jitter
test with 8 or 9 other tests..

find them inside the hrt-support patch at http://high-res-timer.sf.net

Daniel

On Wed, 2005-08-31 at 11:01 -0400, Steven Rostedt wrote:
> Thomas,
>
> I just was wondering how the HR Timers were in the latest -rtX patch and
> wrote my own little jitter test using nanosleep. Here's the results:
>
> On vanilla 2.6.13-rc7-git1 (Yes I need to get over to 2.6.13)
>
> # ./jitter
> starting calibrate
> finished calibrate: 2133.9060MHz 2133906034
> time slept: 0.010000000 sec: 0 nsec: 10000000
> max: 0.011997701
> min: 0.011890522
> avg: 0.011993485
> greatest time over: 1997.701 usecs
> never ran under (good!)
> average time over: 1993.485 usecs
>
> On 2.6.13-rt3:
>
> # ./jitter
> starting calibrate
> finished calibrate: 2133.2960MHz 2133295991
> time slept: 0.010000000 sec: 0 nsec: 10000000
> max: 0.010034857
> min: 0.010006309
> avg: 0.010009213
> greatest time over: 34.857 usecs
> never ran under (good!)
> average time over: 9.213 usecs
>
>
> Not bad. I then ran a clean kernel compile as root with a -j3 (this is
> an 2x SMP machine), and tried the test again.
>
> # ./jitter
> starting calibrate
> finished calibrate: 2133.3005MHz 2133300491
> time slept: 0.010000000 sec: 0 nsec: 10000000
> max: 0.010044836
> min: 0.010014244
> avg: 0.010030741
> greatest time over: 44.836 usecs
> never ran under (good!)
> average time over: 30.741 usecs
>
>
> Since the ticks per second is also calculated here, I ran it again using
> the calibration of the first run (still running that make):
>
> ./jitter -c 2133295991
> passed in calibrate: 2133.2960MHz 2133295991
> time slept: 0.010000000 sec: 0 nsec: 10000000
> max: 0.010051293
> min: 0.010012155
> avg: 0.010030237
> greatest time over: 51.293 usecs
> never ran under (good!)
> average time over: 30.237 usecs
>
> And once more using the calibration found by 2.6.13-rc7-git1 (still
> running that make):
>
> # ./jitter -c 2133906034
> passed in calibrate: 2133.9060MHz 2133906034
> time slept: 0.010000000 sec: 0 nsec: 10000000
> max: 0.010058339
> min: 0.010016418
> avg: 0.010025571
> greatest time over: 58.339 usecs
> never ran under (good!)
> average time over: 25.571 usecs
>
>
> Some info on my machine:
>
> $ cat /proc/cpuinfo
> processor : 0
> vendor_id : AuthenticAMD
> cpu family : 6
> model : 10
> model name : AMD Athlon(tm) MP 2800+
> stepping : 0
> cpu MHz : 2133.286
> cache size : 512 KB
> fdiv_bug : no
> hlt_bug : no
> f00f_bug : no
> coma_bug : no
> fpu : yes
> fpu_exception : yes
> cpuid level : 1
> wp : yes
> flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
> mca cmov pat pse36 mmx fxsr sse syscall mp mmxext 3dnowext 3dnow
> bogomips : 4259.84
>
> processor : 1
> vendor_id : AuthenticAMD
> cpu family : 6
> model : 10
> model name : AMD Athlon(tm) Processor
> stepping : 0
> cpu MHz : 2133.286
> cache size : 512 KB
> fdiv_bug : no
> hlt_bug : no
> f00f_bug : no
> coma_bug : no
> fpu : yes
> fpu_exception : yes
> cpuid level : 1
> wp : yes
> flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
> mca cmov pat pse36 mmx fxsr sse syscall mp mmxext 3dnowext 3dnow
> bogomips : 4259.84
>
> And attached is the jitter.c test. Must be run as root since it ups the
> priority to the max.
>
> Have fun,
>
> -- Steve
>