(阅读本文前需对NVMe/PCIe/MSI有一定的了解)
INTX与MSI
为什么在越来越多的PCIe外设驱动中摒弃INTx,而采用MSI/MSI-X?概括有三:
1. 单个设备INTx最多支持4个中断,MSI支持最多32个中断,MSI-X可以达到更多。
2. INTx需要专门的中断pin。
3. INTx随时发生,MSI发生在DMA完成后,对上下文切换影响较小。
MSI-X如何发生
本文探讨了为何PCIe外设驱动从INTx转向MSI/MSI-X,强调MSI-X的中断数量优势和上下文切换影响小的特性。详细解释了MSI-X的发生过程,并阐述了NVMe协议中的CQ vector如何与MSI-X结合工作,通过中断处理流程展示了两者如何协同完成中断管理。
(阅读本文前需对NVMe/PCIe/MSI有一定的了解)
为什么在越来越多的PCIe外设驱动中摒弃INTx,而采用MSI/MSI-X?概括有三:
1. 单个设备INTx最多支持4个中断,MSI支持最多32个中断,MSI-X可以达到更多。
2. INTx需要专门的中断pin。
3. INTx随时发生,MSI发生在DMA完成后,对上下文切换影响较小。
735