我看到一个问题,netbsd系统内核有看门狗超时,堆栈跟踪显示内核页面错误处理程序被软件中断中断,处理ip包,跟踪看起来像这样。这个netbsd 4.x
0xcf910db0:at m_copyback0 + 0x3fc
0xcf910e00:at m_makewritable + 0x40
0xcf910e20:at fr_check_wrapper + 0x44
0xcf910e50:at pfil_run_hooks + 0xd0
0xcf910e90:at ip_input + 0x3dc
0xcf910ed0:在ipintr + 0x4c
0xcf910f00:at netintr + 0x60
0xcf910f20:在softintr_dispatch + 0x150
0xcf910f60:在ext_intr + 0x2bc
0xcf910fa0:at cpu_switchto + 0x768
0xf1733d90:at uvm_fault_internal + 0x150
我的问题是,在页面错误处理程序中启用中断是一个好主意吗?
答案 0 :(得分:0)
看起来保持中断是一种防止死锁的好方法,因为页面错误处理程序也可以在可以进入休眠状态的用户进程上下文中运行。