Port-sparc64 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: How to get a crash dump with recursive panic?



On Wed, Jun 11, 2014 at 04:19:20AM +1000, matthew green wrote:
> i haven't looked closely, but i'm pretty sure there is a bug in
> the sparc64 crash handling where it sets doing_shutdown and that
> triggers the "Skipping crash dump on recursive panic" message,
> when infact it hasn't gotten that far yet.

We should avoid leaking it, but I haven't looked closely either.

Martin

Index: db_interface.c
===================================================================
RCS file: /cvsroot/src/sys/arch/sparc64/sparc64/db_interface.c,v
retrieving revision 1.132
diff -u -p -r1.132 db_interface.c
--- db_interface.c      12 Sep 2013 19:38:59 -0000      1.132
+++ db_interface.c      10 Jun 2014 18:31:44 -0000
@@ -295,8 +295,11 @@ kdb_trap(int type, struct trapframe64 *t
                printf("kdb tf=%p\n", tf);
                break;
        default:
-               if (!db_onpanic && db_recover==0)
+               if (!db_onpanic && db_recover==0) {
+                       trap_trace_dis--;
+                       doing_shutdown--;
                        return (0);
+               }
 
                printf("kernel trap %x: %s\n", type, trap_type[type & 0x1ff]);
                if (db_recover != 0) {
@@ -314,6 +317,8 @@ kdb_trap(int type, struct trapframe64 *t
 #if defined(MULTIPROCESSOR)
        if (!db_suspend_others()) {
                ddb_suspend(tf);
+               trap_trace_dis--;
+               doing_shutdown--;
                return 1;
        }
 #endif


Home | Main Index | Thread Index | Old Index