Re: [PATCH v3 0/2] KVM: arm64: ptdump: Shadow ptdump fixes

From: Itaru Kitayama

Date: Thu Sep 17 2026 - 03:49:04 EST


Hi Wei-Lin,

On Thu, Sep 17, 2026 at 12:03:35AM +0100, Wei-Lin Chang wrote:
> Hi,
>
> This is v3 of fixing the sleep-in-atomic problem of the shadow ptdump.
> The approach taken this time is simply creating a file for each nested
> mmu.
>
> The ptdump files are created alongside the nested mmus in
> kvm_vcpu_init_nested(), in a sleepable context, and removed when the VM
> is destroyed (kvm_destroy_vm_debugfs(), before the nested mmus are freed
> in kvm_destroy_nested()). This allows us to store the kvm_s2_mmu pointers
> in the ptdump code, after Marc's nested mmu lifecycle fixes [1].
>
> For the shadow ptdump, for valid nested mmus the first line will show
> the nested context's VTTBR and VTCR values, and whether s2 is enabled or
> not. The ptdump then follows.
>
> The first patch fixes mmu->pgt accesses after the VM MMU teardown in
> ptdump.c, the second patch switches from per nested context ptdumps to
> per nested mmu ptdumps.
>
> Tested with CONFIG_PROVE_LOCKING, CONFIG_DEBUG_ATOMIC_SLEEP, and
> CONFIG_KASAN.
>
> Series based on kvmarm/fixes.
>
> * Changes from v2 [2]:
>
> - Changed from creating a file that contains all nested mmus to
> creating one file for each nested mmu.

I've booted your kernel built only CONFIG_DEBUG_ATOMIC_SLEEP enabled
mentioned above kernel configs; on Grace CPUs shadow_stage2 test did
not trigger the sleep in atomic message.

Tested-by: Itaru Kitayama <itaru.kitayama@xxxxxxxxxxx>

Thanks,
Itaru.

>
> Thanks!
>
> [1]: https://lore.kernel.org/kvmarm/20260911162203.1919330-1-maz@xxxxxxxxxx/
> [2]: https://lore.kernel.org/kvmarm/20260630121005.1130996-1-weilin.chang@xxxxxxx/
>
> Wei-Lin Chang (2):
> KVM: arm64: ptdump: Check the page tables aren't freed when accessing
> KVM: arm64: ptdump: Fix shadow ptdump sleep-in-atomic-context problem
>
> arch/arm64/include/asm/kvm_host.h | 4 --
> arch/arm64/include/asm/kvm_mmu.h | 6 +--
> arch/arm64/kvm/nested.c | 9 ++--
> arch/arm64/kvm/ptdump.c | 75 ++++++++++++++++++++-----------
> 4 files changed, 54 insertions(+), 40 deletions(-)
>
> --
> 2.43.0
>