• Interrupt handling on kernel thread on MIPS

    From Ripunjay Tripathi@21:1/5 to All on Mon Oct 12 21:30:18 2015
    I encountered a NetBSD 5 kernel crash running on MIPS. From panic string it looks like we were stuck in a kernel thread and could never come out of it.

    Functions in the stack trace (see below)from mini-core are unrelated functions. As per code none of two function calls have caller-callee relationship. As I understand genfs_getpages() is a page fault handling routine which is allowed to sleep/block
    untill the request is fulfilled. Any ideas to help me understand this stack trace is welcome.

    This seems slightly foolish to think that two different kind of interrupts (bottom halves) get scheduled on a kernel thread while the first one is still unfinished.

    ======================================================

    panic string is :No context switch for too long

    sys/netmy/if_lip.c:2627: 8038f13c <check_my_vlt_mrtmsync_pkt+0x34>:
    sys/net/route.c:3552: 802f7e38 <mySetPeerRouting>:
    sys/kern/kern_lwp.c:1467: 80263b60 <lwp_initspecific>:
    sys/uvm_mips/uvm_amap.c:183: 80224190 <amap_alloc+0x8>:
    sys/net/route.c:2156: 802fafbc <my_rtalloc1_xten+0x13c>:
    sys/miscfs/genfs/genfs_io.c:313: 802e5860 <genfs_getpages+0x2a8>:
    sys/net/if.c:3685: 802eed08 <my_gen_ctl_request+0x588>:
    sys/net/if.c:1690: 802efcfc <if_slowtimo+0x84>:
    sys/miscfs/genfs/genfs_io.c:200: 802e5700 <genfs_getpages+0x148>: sys/miscfs/genfs/genfs_vnops.c:416: 802e67fc <filt_genfsvnode+0x4>:
    sys/net/if_ethersubr.c:585: 802f37a0 <ether_output+0xa68>:
    sys/dev/clockctl.c:105: 80241bc0 <clockctlioctl+0xc8>:
    sys/uvm_mips/uvm_object.c:145: 80234c58 <uobj_unwirepages+0x18>:
    sys/net/if.c:1915: 802f00d0 <ifioctl_common+0x2d0>:
    sys/miscfs/genfs/genfs_io.c:76: 802e5a0c <genfs_getpages+0x454>: ------------KERNEL PROBABLY LOOPING AROUND HERE--------------

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)