Hi Philippe, now I finally found the bug in my first version of this patch: some UVM skin builds complained about an unknown symbol. Fixed now in this version, please apply.
Jan
Index: include/asm-uvm/system.h =================================================================== --- include/asm-uvm/system.h (Revision 528) +++ include/asm-uvm/system.h (Arbeitskopie) @@ -767,4 +767,7 @@ #define xnarch_post_graph(obj,state) #define xnarch_post_graph_if(obj,state,cond) +/* Ipipe-tracer */ +#define ipipe_trace_panic_freeze() + #endif /* !_XENO_ASM_UVM_SYSTEM_H */ Index: include/asm-generic/system.h =================================================================== --- include/asm-generic/system.h (Revision 528) +++ include/asm-generic/system.h (Arbeitskopie) @@ -39,6 +39,13 @@ #include <asm/xenomai/atomic.h> #include <nucleus/shadow.h> +#ifdef CONFIG_IPIPE_TRACE +#include <linux/ipipe_trace.h> +#else /* !CONFIG_IPIPE_TRACE */ +#define ipipe_trace_panic_freeze() +#define ipipe_trace_panic_dump() +#endif /* CONFIG_IPIPE_TRACE */ + #define module_param_value(parm) (parm) typedef unsigned long spl_t; @@ -185,6 +192,7 @@ rthal_emergency_console(); \ xnarch_logerr("fatal: %s\n",emsg); \ show_stack(NULL,NULL); \ + ipipe_trace_panic_dump(); \ for (;;) cpu_relax(); \ } while(0) Index: include/nucleus/types.h =================================================================== --- include/nucleus/types.h (Revision 528) +++ include/nucleus/types.h (Arbeitskopie) @@ -107,8 +107,10 @@ #define xnpod_fatal(format,args...) \ do { \ - const char *panic = xnpod_fatal_helper(format,##args); \ - xnarch_halt(panic); \ + const char *panic; \ + ipipe_trace_panic_freeze(); \ + panic = xnpod_fatal_helper(format,##args); \ + xnarch_halt(panic); \ } while (0) #if defined(__XENO_SIM__) || defined(__XENO_UVM__) Index: ksrc/nucleus/shadow.c =================================================================== --- ksrc/nucleus/shadow.c (Revision 528) +++ ksrc/nucleus/shadow.c (Arbeitskopie) @@ -1563,6 +1563,7 @@ testbits(status,XNSTARTED) && testbits(status,XNPEND)) { + ipipe_trace_panic_freeze(); show_stack(xnthread_user_task(threadin),NULL); xnpod_fatal("blocked thread %s[%d] rescheduled?! (status=0x%lx, sig=%d, prev=%s[%d])", threadin->name,
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Xenomai-core mailing list Xenomai-core@gna.org https://mail.gna.org/listinfo/xenomai-core