为啥pcie上的MMIO需要中断?
Posted
技术标签:
【中文标题】为啥pcie上的MMIO需要中断?【英文标题】:Why are interrupts needed for MMIO on pcie?为什么pcie上的MMIO需要中断? 【发布时间】:2021-10-02 21:06:24 【问题描述】:这篇博文讨论了为 ARM 设备带来 pci passtrhough 支持的困难:https://www.linaro.org/blog/kvm-pciemsi-passthrough-armarm64/
它包括 GICv2/GICv3,它们是 ARM 的中断控制器。您可以通过 MMIO 对其进行写入,并使其向 CPU 发送中断。
但是,为什么需要中断? PCIe 驱动程序不应该通过 MMIO 与 PCIe 设备通信。也就是从内存中写/读?
【问题讨论】:
【参考方案1】:这是必要的,因为否则操作系统无法知道事件的发生。操作系统不会不断地轮询内存。他们仍然需要知道事件发生以及何时发生。这就是中断进来的地方。
假设您有一个硬盘 PCIe 控制器。操作系统如何知道磁盘何时将其数据写入 RAM?
【讨论】:
以上是关于为啥pcie上的MMIO需要中断?的主要内容,如果未能解决你的问题,请参考以下文章