* [Xenomai-help] Xenomai 2.5.1: trace_mark usable on 2.6.30.1 without LTT patch?
@ 2010-04-23 10:17 Joerg Albert
2010-04-23 12:15 ` Jan Kiszka
0 siblings, 1 reply; 2+ messages in thread
From: Joerg Albert @ 2010-04-23 10:17 UTC (permalink / raw)
To: xenomai
Hi,
I run Xenomai 2.5.1 on top of ipipe-2.6.30-powerpc-2.7-01 from
http://git.denx.de/ipipe-2.6.git with Adeos updated from 2.7-01 to 2.7-06.
Platform is a MPC8533.
In order to track down a problem I'd like to use trace_mark() (with my own probe
function), but I'm a bit confused by the code in
include/asm-generic/xenomai/wrappers.h:
#ifdef CONFIG_LTT
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
#define trace_mark(channel, ev, fmt, args...) \
MARK(channel##_##ev, fmt , ##args)
#else /* >= 2.6.24 */
#include <linux/marker.h>
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)
#undef trace_mark
#define trace_mark(channel, ev, fmt, args...) \
__trace_mark(0, channel##_##ev, NULL, fmt, ## args)
#endif /* < 2.6.27 */
#endif /* >= 2.6.24 */
#else /* !CONFIG_LTT */
#undef trace_mark
#define trace_mark(channel, ev, fmt, args...) do { } while (0)
#endif /* !CONFIG_LTT */
My kernel doesn't provide CONFIG_LTT and its trace_mark() implementation in
include/linux/marker.h is:
#define trace_mark(name, format, args...)
Does this imply that I have trace_mark inside the Xenomai code only after
applying some additional LTT patch to the kernel?
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [Xenomai-help] Xenomai 2.5.1: trace_mark usable on 2.6.30.1 without LTT patch?
2010-04-23 10:17 [Xenomai-help] Xenomai 2.5.1: trace_mark usable on 2.6.30.1 without LTT patch? Joerg Albert
@ 2010-04-23 12:15 ` Jan Kiszka
0 siblings, 0 replies; 2+ messages in thread
From: Jan Kiszka @ 2010-04-23 12:15 UTC (permalink / raw)
To: Joerg Albert; +Cc: xenomai
Joerg Albert wrote:
> Hi,
>
> I run Xenomai 2.5.1 on top of ipipe-2.6.30-powerpc-2.7-01 from
> http://git.denx.de/ipipe-2.6.git with Adeos updated from 2.7-01 to 2.7-06.
> Platform is a MPC8533.
>
> In order to track down a problem I'd like to use trace_mark() (with my own probe
> function), but I'm a bit confused by the code in
> include/asm-generic/xenomai/wrappers.h:
>
> #ifdef CONFIG_LTT
>
> #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
> #define trace_mark(channel, ev, fmt, args...) \
> MARK(channel##_##ev, fmt , ##args)
> #else /* >= 2.6.24 */
> #include <linux/marker.h>
> #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)
> #undef trace_mark
> #define trace_mark(channel, ev, fmt, args...) \
> __trace_mark(0, channel##_##ev, NULL, fmt, ## args)
> #endif /* < 2.6.27 */
> #endif /* >= 2.6.24 */
>
> #else /* !CONFIG_LTT */
> #undef trace_mark
> #define trace_mark(channel, ev, fmt, args...) do { } while (0)
> #endif /* !CONFIG_LTT */
>
>
> My kernel doesn't provide CONFIG_LTT and its trace_mark() implementation in
> include/linux/marker.h is:
> #define trace_mark(name, format, args...)
>
> Does this imply that I have trace_mark inside the Xenomai code only after
> applying some additional LTT patch to the kernel?
Yes and no.
No, as you just have to register your tracing back-end with the marker
subsystem (and make sure that the latter is enabled). That's what LTT
did as well. Check linux/samples/markers.
Yes, because some bits of the LTT-for-Ipipe patch [1] perpare the marker
call path for use over Xenomai.
BTW, as trace_mark disappeared again with kernel 2.6.32, we have to
rework this in the near future, hopefully being able to exploit native
tracing (aka ftrace) this time.
Jan
[1]http://git.kiszka.org/?p=ipipe-2.6.git;a=commitdiff;h=c4574be8999093f556ae386fa299e05d72132543
--
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2010-04-23 12:15 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-04-23 10:17 [Xenomai-help] Xenomai 2.5.1: trace_mark usable on 2.6.30.1 without LTT patch? Joerg Albert
2010-04-23 12:15 ` Jan Kiszka
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.