🎢服务器虚拟化——中断虚拟化🎢

607 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

x86中断

中断就是给CPU发一个信号,把CPU从正常执行流中打断,让CPU执行其它指令,这个信号来自于其它CPU或者中断控制器,中断有优先级之分,高优先级和低优先级的中断同时来,中断控制器负责把高优先级的中断交给CPU,中断都有编号,不同的编号对于CPU对应不同事件,如时钟中断/网卡中断/CPU间中断,CPU可以选择屏蔽中断,不让中断再打断自己的执行流,但是有些中断是不可以中断的。

ARM中断

GIC (Generic Interrupt Controller) 是ARM公司提供的中断控制器统一架构,它详细定义了ARM平台上,中断控制器的内部分发逻辑 (Distributor) 和CPU接口 (CPU Interface)。目前GICv3引入了对ITS (Interrupt Translation Service)的支持,而GICv4则引入了LPIs (Locality-specific Peripheral Interrupts)中断的透传功能。

从GICv2开始,支持中断虚拟化硬件扩展。vGIC为每个CPU引入了一个vGIC CPU接口和相应的hypervisor控制接口,虚拟机可以被配置成直接使用vGIC CPU接口。当非安全物理中断发送给某个CPU CORE后,可以触发该CPU CORE陷入到EL2模式,并允许VMM中的中断处理程序,中断处理程序会根据该物理中断对应的VMID等信息,通过List Registers,配置并发送虚拟中断到vGIC CPU接口,并路由到相应的vCPU CORE上。

求点赞呀

image.png