Kernel 当处理一个中断时,当另一个硬件中断出现时,内核会做什么

Kernel 当处理一个中断时,当另一个硬件中断出现时,内核会做什么,kernel,Kernel,当内核处理一个中断时,如果硬件发出另一个中断请求,它会怎么做?或者这种行为有害吗?在linux内核2.6+中,它会将中断请求添加到队列中,请求将处于等待状态,除非中断的优先级高于前一个,否则中断将保持在等待状态,在这种情况下,它可能会抢占前一个。另外,如果挂起的中断太多,内核将(至少linux)恢复为软件对中断进行排队 对于带有各种RT补丁的内核要小心:那里的中断是有优先级的,因此有可能在另一个中断中有一个中断。实际上,这种情况下的自旋锁不再是自旋锁了,它们变成了互斥锁;因此,可以用高优先级中断

当内核处理一个中断时,如果硬件发出另一个中断请求,它会怎么做?或者这种行为有害吗?

在linux内核2.6+中,它会将中断请求添加到队列中,请求将处于等待状态,除非中断的优先级高于前一个,否则中断将保持在等待状态,在这种情况下,它可能会抢占前一个。另外,如果挂起的中断太多,内核将(至少linux)恢复为软件对中断进行排队

对于带有各种RT补丁的内核要小心:那里的中断是有优先级的,因此有可能在另一个中断中有一个中断。实际上,这种情况下的自旋锁不再是自旋锁了,它们变成了互斥锁;因此,可以用高优先级中断中断低优先级中断

例如,见

祝你好运