kvm_handle_guest_abort(9)
π kvm_handle_guest_abort β the Kernel API Manual page, bestie edition β¨
okay so this is the manual page for kvm_handle_guest_abort from the Kernel API Manual, and it's literally the girlboss that handles all 2nd stage aborts π«Ά
β¨ NAME β¨
kvm_handle_guest_abort β handles all 2nd stage aborts π
πΈ SYNOPSIS πΈ
int kvm_handle_guest_abort (struct kvm_vcpu *vcpu );
like, that's the whole signature. short and iconic, no notes π
π ARGUMENTS π
vcpuβ the VCPU pointer. that's it. that's the whole argument. she takes one (1) VCPU pointer and minds her business π¦
π DESCRIPTION π
okay so bestie, listen π β any abort that gets all the way to the host is almost guaranteed to be caused by a missing second stage translation table entry. like, that's the vibe check it's failing, no cap.
and that missing entry can mean one of two things:
- the guest simply needs more memory, and we must allocate an appropriate page π
- the guest tried to access I/O memory, which is emulated by user space π§
the way she tells them apart is based on the IPA causing the fault, and whether this memory region has been registered as standard RAM by user space β that's the whole distinction, periodt.
π₯ SEE ALSO π₯
the kernel file ./arch/arm64/kvm/mmu.c is right there if you wanna go read it iykyk, and also go check out these icons:
kvm_arch_flush_remote_tlbs(9)__unmap_stage2_range(9)stage2_flush_vm(9)free_hyp_pgds(9)create_hyp_mappings(9)hyp_alloc_private_va_range(9)create_hyp_io_mappings(9)create_hyp_exec_mappings(9)kvm_init_stage2_mmu(9)stage2_unmap_vm(9)kvm_phys_addr_ioremap(9)kvm_stage2_wp_range(9)kvm_mmu_wp_memory_region(9)kvm_mmu_split_memory_region(9)
and that's the page, bestie π«Ά this one came out of ./arch/arm64/kvm, dated October 2026 β mwah, slay, go read your aborts ππ
π¦ 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