中断重映射的硬件支持
中断重映射为重映射和路由中断来自I/O设备(直接或者通过I/O中断控制器生成)的请求提供了硬件支持。通过重映射间接实现可以分离不同分区之间的中断请求。中断重映射硬件有以下几种用途。
中断分离
在英特尔架构平台上,中断请求是通过Root-Complex来识别的,因为写入交易是以架构地址区间(0xFEEx_xxxxh)为目标。中断请求是自描述的(例如,中断请求的特征被编码到请求地址和数据中),让任何DMA发起者能够生成带有任意特征的中断信息。
虚拟机管理器可以利用中断重映射来加强域之间对外部中断请求的隔离。例如,虚拟机管理器可以利用中断重映射硬件来将中断请求域特定设备区分开来,并将其路由到设备被分配到的虚拟机中。虚拟机管理器还可以利用中断重映射硬件力控制这些中断请求的属性(例如目标CPU、中断向量和交付模式等)。
虚拟机管理器的另一个使用实例就是利用中断重映射硬件将外部中断从虚拟机管理器所拥有的中间处理器中断(IPI)解除。软件可以强制实施这一操作,确保重新映射的外部中断具有匹配虚拟机IPI特性的属性(例如向量数)。
中断迁移
当一个中断请求的目标从一个逻辑处理器迁移到另一个逻辑处理器的时候,中断重映射架构可用于支持中断请求的动态重定向。如果没有中断重映射的硬件支持,那么中断请求的重新均衡需要软件来重新编程中断源。然而,这些资源的重新编程是非原子的(要求多个寄存器重新编程),这通常是很复杂的(可能需要暂时屏蔽中断源),并且取决于中断源的特征(例如对于某些中断源来说没有屏蔽功能;当屏蔽了某些源之后,周边中断请求可能会丢失等)。
中断重映射让软件能够有效地对中断进行重新定向,无需在来源处重新编程中断配置。操作系统软件可以使用中断迁移在处理器之间均衡负载(例如当运行I/O密集工作负载的时候),或者通过虚拟机管理器在物理处理器之间迁移分区的虚拟CPU来提高CPU利用率。
x2APIC支持
Intel 64 x2APIC架构将APIC可寻址性从8位扩展到32位。中断重映射让x2APIC能够支持针对外部中断请求的扩展的APIC可寻址性,无需对中断来源进行硬件变更(例如I/OxAPIC和MSI/MSIX设备)。