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
