虚拟化(7):kvm+kernel kvm子系统初始化流程(GIC)

0.总流程

来看,依然回到这个函数上

https://elixir.bootlin.com/linux/v6.6/source/arch/arm64/kvm/arm.c#L2397

初始化子系统:

其中就包括CPU的hyp_init, cpu低功耗init, virt gic初始化,virt timer初始化

一行行解释我们会碰到的log:

1.GICv3: no GICV resource entry

这里 是指并未提供GICV的物理基址资源,它可以兼容GICv2, 实际我们并没有打算支持v2, v3 在 arm64上仍是主流

2.disabling GICv2 emulation

https://elixir.bootlin.com/linux/v6.6/source/arch/arm64/kvm/vgic/vgic-v3.c#L685

这里是disable GICv2 emulation(仿真)

3.GIC system register CPU interface enabled

https://elixir.bootlin.com/linux/v6.6/source/arch/arm64/kvm/vgic/vgic-init.c#L586

GIC打开

4.vgic interrupt IRQ%d

https://elixir.bootlin.com/linux/v6.6/source/arch/arm64/kvm/vgic/vgic-init.c#L613

调用request_percpu_irq把vgic_maintenance_handler 绑定到per CPU 独立的中断线

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务