Current-Users archive

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

Re: How do I keep testing current-amd64 witout so much trouble?



On Thu, 25 Dec 2008, Christos Zoulas wrote:

Try a lockdebug kernel. I get spinouts when I do that.

Yep, I get some sort of LOCK panic. But most of the info scrolls off the screen before I get a chance to capture it. The backtrace looks like this:
        panic + 0x24d
        lockdebug_abort1 + 0xd3
        _kernel_lock + 0x171
        callout_softclock + 0x215
        softint_dispatch + 0xe7
        DDB lost frame for netbsd:Xsoftintr + 0x50, trying ...
        Xsoftintr + 0x50
        --- interrupt ---
        0
        db{0}>

Any hints on further debugging?

FYI, I've attached the diffs in case anyone wants to look at them.


-------------------------------------------------------------------------
|   Paul Goyette   | PGP DSS Key fingerprint: |  E-mail addresses:      |
| Customer Service | FA29 0E3B 35AF E8AE 6651 |  paul at whooppee.com   |
| Network Engineer | 0786 F758 55DE 53BA 7731 | pgoyette at juniper.net |
|                  |                          | pgoyette at netbsd.org  |
-------------------------------------------------------------------------
Index: kern/kern_module.c
===================================================================
RCS file: /cvsroot/src/sys/kern/kern_module.c,v
retrieving revision 1.37
diff -u -p -r1.37 kern_module.c
--- kern/kern_module.c  5 Dec 2008 12:55:09 -0000       1.37
+++ kern/kern_module.c  25 Dec 2008 19:15:15 -0000
@@ -52,6 +52,9 @@ __KERNEL_RCSID(0, "$NetBSD: kern_module.
 #include <sys/kauth.h>
 #include <sys/kthread.h>
 #include <sys/sysctl.h>
+#include <sys/reboot.h>
+
+#include <dev/cons.h>
 
 #include <uvm/uvm_extern.h>
 
@@ -153,6 +156,14 @@ module_init(void)
            __NetBSD_Version__ / 1000000 % 100);
 #endif
 
+       if (boothowto & RB_ASKNAME) {
+               char buf[sizeof(module_base) + 1];
+
+               printf("path to modules (%s): ", module_base);
+               if (cngetsn(buf, sizeof(buf)) != 0)
+                       strlcpy(module_base, buf, sizeof(module_base));
+       }
+
        error = kthread_create(PRI_VM, KTHREAD_MPSAFE, NULL, module_thread,
            NULL, NULL, "modunload");
        if (error != 0)
Index: rump/librump/rumpkern/misc_stub.c
===================================================================
RCS file: /cvsroot/src/sys/rump/librump/rumpkern/misc_stub.c,v
retrieving revision 1.16
diff -u -p -r1.16 misc_stub.c
--- rump/librump/rumpkern/misc_stub.c   18 Dec 2008 00:24:12 -0000      1.16
+++ rump/librump/rumpkern/misc_stub.c   25 Dec 2008 19:15:15 -0000
@@ -38,6 +38,7 @@ __KERNEL_RCSID(0, "$NetBSD: misc_stub.c,
 #include <sys/syscallvar.h>
 #include <sys/cpu.h>
 #include <sys/evcnt.h>
+#include <dev/cons.h>
 
 #ifdef __sparc__
  /* 
@@ -47,6 +48,8 @@ __KERNEL_RCSID(0, "$NetBSD: misc_stub.c,
 int nbpg = 4096;
 #endif
 
+int boothowto;
+
 void
 yield(void)
 {
@@ -107,3 +110,9 @@ syscall_disestablish(const struct emul *
 
        return 0;
 }
+
+int
+cngetsn(char *buf, int len)
+{
+       return 0;
+}


Home | Main Index | Thread Index | Old Index