标签: linux linux-kernel signals
我对linux信号处理机制有疑问。当要将信号传递给进程时,内核会设置进程堆栈(使用sys_sigreturn成功将系统调用返回到内核中)然后执行sysexit / sysret以跳转到进程的已注册信号处理程序。我想知道如果存在信号处理程序代码的页面,当内核执行sysret时会发生什么?执行ring 0代码时,内核不期望页面错误吗? 内核是否始终将进程信号处理代码保存在内存中?