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,

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to