2012/2/29 Gilles Chanteperdrix <[email protected]>

> On 02/29/2012 07:03 PM, Charles Lesire-Cabaniols wrote:
> > 2012/2/29 Gilles Chanteperdrix <[email protected]>
> >
> >> On 02/29/2012 06:52 PM, Charles Lesire-Cabaniols wrote:
> >>> 2012/2/29 Gilles Chanteperdrix <[email protected]>
> >>>
> >>>> On 02/29/2012 06:29 PM, Charles Lesire-Cabaniols wrote:
> >>>>> Hi guys,
> >>>>>
> >>>>> I have installed a Debian+Xenomai (2.6.0) OS on my Gumstix Overo.
> >>>>>
> >>>>> I want to evaluate the execution time of a simple program, executed
> as
> >> a
> >>>>> real-time thread.
> >>>>>
> >>>>> I definitely wonder about which functions to use, as I have
> completely
> >>>>> inconsistent measures.
> >>>>> I have tried using rt_timer_read, rt_timer_tsc, clock_gettime.
> >>>>> I also directly read the CNNT register with ARM instructions (which
> is
> >>>> the
> >>>>> only one I think correct) in order to have a (good?) reference.
> >>>>> (...)
> >>>>> What am I doing wrong?
> >>>>
> >>>> So, you should printf("%Lu %Lu\n", rt_timer_read(), rt_timer_tsc());
> >>>>
> >>>> Not printf("%lu", ...)
> >>>>
> >>>> --
> >>>>                                            Gilles.
> >>>>
> >>>
> >>> Effectively, that looks cleaner, thanks:
> >>>
> >>> ----- Xenomai rt_timer_read -----
> >>> start: 49166276042 ; end: 49166432273 ; (s-e): 156231 ; CET: 156231
> >>> ----- Xenomai rt_timer_tsc -----
> >>> start: 639161547 ; end: 639163539 ; (s-e): 1992 ; CET: 1992
> >>> ----- Xenomai clock_gettime -----
> >>> [ s] start: 946684855 ; end: 946684855 ; (s-e): 0 ; CET: 0
> >>> [ns] start: 275520245 ; end: 275677089 ; (s-e): 156844 ; CET: 156844
> >>>
> >>> My ARM instruction reads 110554.
> >>>
> >>> Which Xenomai function should I use?
> >>> Which one is supposed to be the more accurate?
> >>> Does rt_timer_read return nsecs?
> >>> What is the unit of rt_timer_tsc?
> >>
> >> rt_timer_tsc uses whatever hardware counter is available, you need
> >> rt_timer_tsc2ns or rt_timer_ns2tsc to convert between this unit to and
> >> from nanoseconds.
> >>
> >> For more details, see:
> >>
> >>
> >>
> http://www.xenomai.org/documentation/xenomai-2.6/html/api/group__native__timer.html
> >>
> >> Depending on how xenomai user-space was compiled, rt_timer_tsc should
> >> have the lowest overhead.
> >>
> >
> > And are the default options the best ones?
>
> Yes, but I am not sure the debian package uses the default one. Please
> post here the disassembly of rt_timer_tsc, I will tell you if your
> system is compiled for the lowest overhead.
>
>
How to do that?


> > How can I tune the TSC performance?
>
> You use the --enable-arm-tsc or --disable-arm-tsc option of xenomai
> configure script. The default is --enable-arm-tsc=kuser and should be
> the best option. If you pass --disable-arm-tsc, rt_timer_tsc will emit a
> system call.
>
>
I do not use the debian package, but I compile Xenomai from sources ;
actually I have a vanilla kernel and a debain rootfs.
I think --enable-arm-tsc is the default then.


> --
>                                                                Gilles.
>
_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to