Linux kernel ARM-如果IRQ发生在USR模式和SVC模式下,那么上下文切换处理有什么不同?

Linux kernel ARM-如果IRQ发生在USR模式和SVC模式下,那么上下文切换处理有什么不同?,linux-kernel,operating-system,arm,linux-device-driver,Linux Kernel,Operating System,Arm,Linux Device Driver,为了便于学习,我正在研究一个非常旧的Linux内核版本。特别是此处链接的IRQ处理程序 我从一个典型的OS101课程中了解到,当系统采用IRQ时,通常会发生上下文切换。因此,使用Linux作为参考,我一直在努力理解以下内容: 如果IRQ发生在系统处于USR模式(用户空间)时,与如果IRQ发生在系统处于SVC模式(内核空间)时,IRQ处理有什么区别。因为似乎有两种可能的路径uu irq_svc和uu irq_usr 其次,上述IRQ处理中的差异(如果有的话)对上下文转换过程有什么影响 我希望在这方

为了便于学习,我正在研究一个非常旧的Linux内核版本。特别是此处链接的IRQ处理程序

我从一个典型的OS101课程中了解到,当系统采用IRQ时,通常会发生上下文切换。因此,使用Linux作为参考,我一直在努力理解以下内容:

  • 如果IRQ发生在系统处于USR模式(用户空间)时,与如果IRQ发生在系统处于SVC模式(内核空间)时,IRQ处理有什么区别。因为似乎有两种可能的路径uu irq_svc和uu irq_usr

  • 其次,上述IRQ处理中的差异(如果有的话)对上下文转换过程有什么影响


  • 我希望在这方面能有一些见解。

    @artless noise我在ARM领域看到了很多来自您的好答案。我希望你能对此有一些想法。这个问题有答案
    LCvectors
    是实向量表。他们跳到树桩上<代码>矢量_IRQ用于IRQ(在本版本中复制等)
    vector\u IRQ
    保存一些寄存器,更改模式,并将表格跳转到
    \u IRQ\u usr
    \u IRQ\u svc
    \u IRQ\u invalid
    irq_usr
    irq_svc
    基本相同,只是
    ret_to_user
    将重新安排;
    irq\u svc
    刚刚返回到原来的位置。这段代码可能也会重新安排,它将决定谁运行,w。irq注意到。