为什么pcie上的MMIO需要中断?
Why are interrupts needed for MMIO on pcie?
此博客post讨论了为 ARM 设备带来 pci passtrhough 支持的困难:https://www.linaro.org/blog/kvm-pciemsi-passthrough-armarm64/
它cies GICv2/GICv3 是ARM 的中断控制器。您可以通过 MMIO 写入它并使其向 CPU 传递中断。
但是,为什么需要中断? PCIe 驱动程序不应该通过 MMIO 与 PCIe 设备通信。即writing/reading从记忆中?
这是必要的,否则操作系统无法知道事件的发生。操作系统不会不断地轮询内存。他们仍然需要知道事件发生的时间。这就是中断的来源。
假设您有一个硬盘 PCIe 控制器。操作系统如何知道磁盘何时将其数据写入 RAM?
此博客post讨论了为 ARM 设备带来 pci passtrhough 支持的困难:https://www.linaro.org/blog/kvm-pciemsi-passthrough-armarm64/
它cies GICv2/GICv3 是ARM 的中断控制器。您可以通过 MMIO 写入它并使其向 CPU 传递中断。
但是,为什么需要中断? PCIe 驱动程序不应该通过 MMIO 与 PCIe 设备通信。即writing/reading从记忆中?
这是必要的,否则操作系统无法知道事件的发生。操作系统不会不断地轮询内存。他们仍然需要知道事件发生的时间。这就是中断的来源。
假设您有一个硬盘 PCIe 控制器。操作系统如何知道磁盘何时将其数据写入 RAM?