Linux kernel 使用MIPS上的NetBSD内核回溯在内核线程上进行中断处理

Linux kernel 使用MIPS上的NetBSD内核回溯在内核线程上进行中断处理,linux-kernel,kernel,interrupt,bsd,netbsd,Linux Kernel,Kernel,Interrupt,Bsd,Netbsd,我遇到一个在MIPS上运行的NetBSD 5内核崩溃。 从panicstring来看,我们似乎陷入了内核线程中,永远无法摆脱它 堆栈跟踪中的函数(见下文)与mini-core无关。根据代码,两个函数调用都没有调用方-被调用方关系。据我所知,genfs_getpages是一个页面错误处理例程,允许它休眠/阻塞直到请求得到满足。欢迎有任何想法来帮助我理解这个堆栈跟踪 如果认为在内核线程上安排了两种不同类型的中断,而第一种中断尚未完成,这似乎有点愚蠢 panic string is :No conte

我遇到一个在MIPS上运行的NetBSD 5内核崩溃。 从panicstring来看,我们似乎陷入了内核线程中,永远无法摆脱它

堆栈跟踪中的函数(见下文)与mini-core无关。根据代码,两个函数调用都没有调用方-被调用方关系。据我所知,genfs_getpages是一个页面错误处理例程,允许它休眠/阻塞直到请求得到满足。欢迎有任何想法来帮助我理解这个堆栈跟踪

如果认为在内核线程上安排了两种不同类型的中断,而第一种中断尚未完成,这似乎有点愚蠢

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--------------

很久以前我研究NetBSD的时候,但是从这里我可以告诉你,首先用户对genfs进行了IOCTL什么是genfs?不记得了,后来它转到网络支持接口,返回到genfs并再次调用get_pages。后者被称为mySetPeerRouting,我怀疑这是你自己的部分代码,并坚持在那里。通常当任务进入可中断睡眠状态时会发生这种情况,但没有任何类型的中断。@Andy Shevchenko:genfs是一个通用库,几乎所有的文件系统都可以使用它进行普通操作。正如我所提到的,genfs_getpages是一个页面错误处理程序,允许休眠。当我引用代码时,我没有看到任何函数调用任何其他函数。这很奇怪。哎呀,这可能是真实的图片是一个正向跟踪,那么,mySetPeerRouting到底在做什么呢?谁写的?