Module: xenomai-jki Branch: for-forge Commit: 2f31985139fcec026e178abd13c688cf6d3dea47 URL: http://git.xenomai.org/?p=xenomai-jki.git;a=commit;h=2f31985139fcec026e178abd13c688cf6d3dea47
Author: Jan Kiszka <jan.kis...@siemens.com> Date: Wed Jul 29 17:30:47 2015 +0200 kernel/cobalt: Add reason to gorelax trace point Trace and print the name of the relaxation reason whenever available. Signed-off-by: Jan Kiszka <jan.kis...@siemens.com> --- kernel/cobalt/thread.c | 2 +- kernel/cobalt/trace/cobalt-core.h | 26 +++++++++++++++++++++++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/kernel/cobalt/thread.c b/kernel/cobalt/thread.c index 4cec6e7..2d1f840 100644 --- a/kernel/cobalt/thread.c +++ b/kernel/cobalt/thread.c @@ -1997,7 +1997,7 @@ void xnthread_relax(int notify, int reason) * domain to the Linux domain. This will cause the Linux task * to resume using the register state of the shadow thread. */ - trace_cobalt_shadow_gorelax(thread); + trace_cobalt_shadow_gorelax(thread, reason); /* * If you intend to change the following interrupt-free diff --git a/kernel/cobalt/trace/cobalt-core.h b/kernel/cobalt/trace/cobalt-core.h index ee20b7c..d2b1c7e 100644 --- a/kernel/cobalt/trace/cobalt-core.h +++ b/kernel/cobalt/trace/cobalt-core.h @@ -357,9 +357,29 @@ DEFINE_EVENT(thread_event, cobalt_shadow_hardened, TP_ARGS(thread) ); -DEFINE_EVENT(thread_event, cobalt_shadow_gorelax, - TP_PROTO(struct xnthread *thread), - TP_ARGS(thread) +#define cobalt_print_relax_reason(reason) \ + __print_symbolic(reason, \ + { SIGDEBUG_UNDEFINED, "undefined" }, \ + { SIGDEBUG_MIGRATE_SIGNAL, "signal" }, \ + { SIGDEBUG_MIGRATE_SYSCALL, "syscall" }, \ + { SIGDEBUG_MIGRATE_FAULT, "fault" }) + +TRACE_EVENT(cobalt_shadow_gorelax, + TP_PROTO(struct xnthread *thread, int reason), + TP_ARGS(thread, reason), + + TP_STRUCT__entry( + __field(struct xnthread *, thread) + __field(int, reason) + ), + + TP_fast_assign( + __entry->thread = thread; + __entry->reason = reason; + ), + + TP_printk("thread=%p reason=%s", + __entry->thread, cobalt_print_relax_reason(__entry->reason)) ); DEFINE_EVENT(thread_event, cobalt_shadow_relaxed, _______________________________________________ Xenomai-git mailing list Xenomai-git@xenomai.org http://xenomai.org/mailman/listinfo/xenomai-git