On Thu, 2007-06-07 at 11:25 +0200, Gilles Chanteperdrix wrote:
> Jan Kiszka wrote:
> > Perrine Martignoni wrote:
> > 
> >>Ok. I'll do this.
> >>
> >>But I don't understand why the same application compiled without any links
> >>with Xenomai give different results if there is Xenomai in the kernel.
> > 
> > 
> > [Looking at your numbers again] Hmm, maybe some rounding issue of ticks
> > due to whatever side-effect of I-pipe. We would first of all need the
> > usual set of information (.config, involved versions) and also
> > /sys/devices/system/clocksource/clocksource0/current_clocksource.
> 
> Maybe what Perrine is observing is simply the overhead of the I-pipe ?
> I mean, Linux is Xenomai idle task, so it is acceptable for Linux
> numbers to be a bit worse than when Xenomai is not running.
> 

Most of the "known" overhead has disappeared with the PF_EVNOTIFY
extension, so that we relay Linux-originated events (e.g. syscalls) only
to subscribed domains (e.g. Xenomai). In the test case we are discussing
of, no relay should be done since no domain did subscribe to receive
those events.

The best way to check if the I-pipe still adds a noticeable overhead is
to compare:

- a vanilla kernel running cyclic test, 
with
- an I-pipe patched kernel, without Xenomai, using the same .config than
the vanilla kernel used. Without Xenomai either means to not run the
prepare-kernel.sh script, but only patch the kernel with the I-pipe
support, or disable CONFIG_XENOMAI entirely if the preparation script
has been run on the target kernel tree.

_Having both kernel setups share the very same kernel configuration is
mandatory, otherwise you would end up comparing apples and oranges._
The best way to make sure of this is to copy the .config file used for
the vanilla kernel to the I-pipe patched one, and run "make oldconfig".
You should be prompted only once, for the new CONFIG_IPIPE switch. Any
other behaviour would be the sign of some discrepancy in your test
configuration.

Since we can't have any temporal predictability for such configs, the
max value the cyclic test reports has no meaning. The useful figures are
the min and average values, as observed for a few minutes while the
board/box is sitting doing nothing but running the test.

A better way measure such artefacts is to run something like hackbench,
and compare the execution times, on kernels w/ and w/o the I-pipe.
http://developer.osdl.org/craiger/hackbench/src/hackbench.c
Tune the argument representing the number of process groups which you
pass to this program, so that it runs for a few minutes without putting
your box/board on its knees. There should be no significant difference
between the time reported at the end of both tests, at the very least,
not a 30% increase as your first report suggested. If the difference is
noticeable, then, there might be an issue (the final conclusion really
depends on the underlying hw).

-- 
Philippe.



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

Reply via email to