Hi,
> the need for a high-level tracing tool constantly increases with the
> growing code base of Xenomai applications.
>
> Yesterday I started a short discussion with Alexis about the status of
> his LTTng combo patch, the Xenomai integration, and the advances of
> LTTng itself. But there are certainly more people interested in this
> topic and may contribute ideas, comments, or even concrete code.
>
> Daniel, you once said that some of your students would start to work on
> this topic. In which domain precisely, more at patch level or rather on
> tools? What is the scheduled beginning and/or deadline for this thesis?
>
> Moreover, does anyone on this list recently tried LTTng on standard
> Linux? Can we consider it reasonably stable and usable? One new thing
> about LTTng internals which Alexis brought up were changes in the custom
> tracing event interface. As this is a rather crucial point with respect
> to the Xenomai instrumentation, we certainly do not want to change it
> back and forth until LTTng stabilises.
Here is a little quotation from the LTTng Quickstart guide, I used it to
define the LTT events for Xenomai:
* Add new events to the kernel with genevent
su -
cd /usr/local/share/LinuxTraceToolkitViewer/facilities
cp process.xml yourfacility.xml
* edit yourfacility.xml to fit your needs.
cd /tmp
/usr/local/bin/genevent
/usr/local/share/LinuxTraceToolkitViewer/facilities/yourfacility.xml
cp ltt-facility-yourfacility.h ltt-facility-id-yourfacility.h \
/usr/src/linux-2.6.16-lttng-0.x.xx8/include/linux/ltt
cp ltt-facility-loader-yourfacility.c ltt-facility-loader-yourfacility.h \
/usr/src/linux-2.6.16-lttng-0.x.xx/ltt
* edit the kernel file you want to instrument
- Add #include at the beginning
of the file.
- Add a call to the tracing functions. See their names and parameters in
/usr/src/linux-2.6.16-lttng-0.x.xx/include/linux/ltt/ltt-facility-yourfacility.h
So, In order to test the combo patch adeos + LTTng I made:
-> I wrote xenomai.xml (cf. attached file) which defines all the Xeno-LTT
events;
-> I used genevent so as to generate the sources and the headers relative with
my events;
-> Instead of copying them in the kernel, I integrated the sources in Xenomai.
I was considering that the Xeno events was independant from Linux.
As a matter of fact, the last point should be rethought as the Xeno build
procedure is now integrated in the kernel.
Things are simpler now, we could create an "I-pipe aware LTTng" patch which
could contain :
-> the modifications in Relayfs (for a proper functioning with Adeos);
-> the LTTng core stuff adapted for Adeos (not much work to do on this part);
-> the Xenomai events in include/linux/ltt, and the loading code in ...
This patch would be applied after the I-pipe patch (in the same way as the
I-pipe tracer patch). So there would be no need to make combo patches, an
arch-independant additionnal patch would be easier to maintain.
What do you think of that ?
Eventually, concerning LTTng stabilisation status, I had a look a their
mailing-list (I am lurking on it since the beginning of LTTng) and at their
roadmap: starting from now, their TODO list contains integration and ports,
therefore undertaking an integration of LTTng with Xenomai (rigth now or next
month) does not seem too risky, does it?
Jan,
Yesterday I told you that that Matthieu Desnoyers proposed a new way of
defining custom events since my last patch proposal. That was false: MD
proposed his new method before my patch proposal; however, the genevent
features kept on evolving. Sorry that was not very clear.
Best regards.
Alexis.
The Xenomai facility has events related to Xenomai process
execution.
Xenomai timer tick
Xenomai irq enter
Xenomai irq exit
Xenomai reschedule event
Xenomai smp schedule event
Xenomai fast schedule event
Xenomai process switch
Xenomai fault
Xenomai callout
Xenomai finalize
Xenomai thread init
Xenomai thread start
Xenomai thread restart
Xenomai thread delete
Xenomai thread start
Xenomai thread resume
Xenomai thread unblock
Xenomai thread renice
Xenomai CPU migrate
Xenomai signal dispatch
Xenomai thread begin
Xenomai sleepon
Xenomai wakeup1
Xenomai wakeupx
Xenomai syncflush
Xenomai syncforget
Xenomai lohandler
Xenomai modsw1
Xenomai modex1
Xenomai modsw2
Xenomai modex2
Xenomai shadow map
Xeno