vgic_lazy_init(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 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 β€” a kvm struct pointer. yes bestie, a pointer, to a kvm struct, 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 🫢


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 with KVM_DEV_ARM_VGIC_GRP_CTRL in the KVM_DEVICE group. 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