On Fri, 19 Mar 2021 16:17:09 +0000, Yoan Picchi <yoan.picchi@xxxxxxx> wrote: > > Add a counter for when a memory slot is unmapped, meaning that all > memory belonging to a specific VM is made available to be mapped for > anoother VM. No. It just means it is unmapped from the guest. The VMM still has the pages. > A memory slot is the memory that can be used to hold a > guest's pages and can be made available by Qemu for instance. For > now the memory slot are only unmapped when a vm restarts. > > Signed-off-by: Yoan Picchi <yoan.picchi@xxxxxxx> > --- > arch/arm64/include/asm/kvm_host.h | 1 + > arch/arm64/kvm/guest.c | 1 + > arch/arm64/kvm/mmu.c | 1 + > 3 files changed, 3 insertions(+) > > diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h > index e6967951f..76c81aa79 100644 > --- a/arch/arm64/include/asm/kvm_host.h > +++ b/arch/arm64/include/asm/kvm_host.h > @@ -548,6 +548,7 @@ static inline bool __vcpu_write_sys_reg_to_cpu(u64 val, int reg) > struct kvm_vm_stat { > ulong remote_tlb_flush; > ulong flush_all_cache_lines; > + ulong memory_slot_unmaped; > ulong cached_page_invalidated; > }; > > diff --git a/arch/arm64/kvm/guest.c b/arch/arm64/kvm/guest.c > index d948c3bd2..cd227136e 100644 > --- a/arch/arm64/kvm/guest.c > +++ b/arch/arm64/kvm/guest.c > @@ -42,6 +42,7 @@ struct kvm_stats_debugfs_item debugfs_entries[] = { > VCPU_STAT("huge_page_mapped", huge_page_mapped), > VM_STAT("remote_tlb_flush", remote_tlb_flush), > VM_STAT("flush_all_cache_lines", flush_all_cache_lines), > + VM_STAT("memory_slot_unmaped", memory_slot_unmaped), > VM_STAT("cached_page_invalidated", cached_page_invalidated), > VCPU_STAT("exits", exits), > VCPU_STAT("halt_poll_success_ns", halt_poll_success_ns), > diff --git a/arch/arm64/kvm/mmu.c b/arch/arm64/kvm/mmu.c > index 985b048df..1e8aeafc2 100644 > --- a/arch/arm64/kvm/mmu.c > +++ b/arch/arm64/kvm/mmu.c > @@ -419,6 +419,7 @@ static void stage2_unmap_memslot(struct kvm *kvm, > phys_addr_t addr = memslot->base_gfn << PAGE_SHIFT; > phys_addr_t size = PAGE_SIZE * memslot->npages; > hva_t reg_end = hva + size; > + kvm->stat.memory_slot_unmaped++; Why is that a relevant thing to track? You even increment the counter before even checking whether this will unmap anything... :-( M. -- Without deviation from the norm, progress is not possible. _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm