vgic_lazy_init(9)
πΈ vgic_lazy_init(9) β from the Kernel API Manual π
okay so bestie, buckle up, because this one is a tiny little page from the Kernel API Manual and it's literally just vibes about when you're allowed to be lazy π¦
β¨ NAME β¨
vgic_lazy_init β the way that lazy init is only allowed if the GIC exposed to the guest is a GICv2. That's the whole vibe check, no cap π
And like, a GICv3? Nope. A GICv3 must be explicitly initialized by userspace using the KVM_DEV_ARM_VGIC_GRP_CTRL KVM_DEVICE group. Not me explaining the rules but here we are π
β SYNOPSIS β
int vgic_lazy_init (struct kvm *kvm );
like, that's it, that's the whole signature, iconic π
π ARGUMENTS π
kvmβ akvmstruct pointer. yes bestie, a pointer, to akvmstruct, we love a simple queen πΈ
π SEE ALSO π
fr fr go read these, they're all in the kernel file ./arch/arm64/kvm/vgic/vgic-init.c and they're lowkey the whole squad π«Ά
kvm_vgic_early_init(9)kvm_vgic_create(9)kvm_vgic_dist_init(9)kvm_vgic_vcpu_init(9)kvm_vgic_map_resources(9)kvm_vgic_init_cpu_hardware(9)kvm_vgic_hyp_init(9)
ok and like a lil PSA before you go: if the guest's GIC is a GICv3, lazy init is not it. userspace has to step up and do it explicitly withKVM_DEV_ARM_VGIC_GRP_CTRLin theKVM_DEVICEgroup. no shortcuts, periodt π
and that's the page!! π§ this little cutie lives in ./arch/arm64/kvm/vgic, dated October 2026, mwah π slay, go init some virtual interrupts responsibly β¨π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms