KVM: x86/mmu: Delete pgprintk() and all its usage
authorSean Christopherson <seanjc@google.com>
Sat, 29 Jul 2023 00:47:11 +0000 (17:47 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 31 Aug 2023 17:48:39 +0000 (13:48 -0400)
Delete KVM's pgprintk() and all its usage, as the code is very prone
to bitrot due to being buried behind MMU_DEBUG, and the functionality has
been rendered almost entirely obsolete by the tracepoints KVM has gained
over the years.  And for the situations where the information provided by
KVM's tracepoints is insufficient, pgprintk() rarely fills in the gaps,
and is almost always far too noisy, i.e. developers end up implementing
custom prints anyways.

Link: https://lore.kernel.org/r/20230729004722.1056172-2-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/mmu/mmu.c
arch/x86/kvm/mmu/mmu_internal.h
arch/x86/kvm/mmu/paging_tmpl.h
arch/x86/kvm/mmu/spte.c

index 862604b6e6a3cc13a7f49cacab11d847cd261f80..63a8b82120febbec95440cf3b27465d21424a081 100644 (file)
@@ -2771,12 +2771,9 @@ int kvm_mmu_unprotect_page(struct kvm *kvm, gfn_t gfn)
        LIST_HEAD(invalid_list);
        int r;
 
-       pgprintk("%s: looking for gfn %llx\n", __func__, gfn);
        r = 0;
        write_lock(&kvm->mmu_lock);
        for_each_gfn_valid_sp_with_gptes(kvm, sp, gfn) {
-               pgprintk("%s: gfn %llx role %x\n", __func__, gfn,
-                        sp->role.word);
                r = 1;
                kvm_mmu_prepare_zap_page(kvm, sp, &invalid_list);
        }
@@ -2934,9 +2931,6 @@ static int mmu_set_spte(struct kvm_vcpu *vcpu, struct kvm_memory_slot *slot,
        bool prefetch = !fault || fault->prefetch;
        bool write_fault = fault && fault->write;
 
-       pgprintk("%s: spte %llx write_fault %d gfn %llx\n", __func__,
-                *sptep, write_fault, gfn);
-
        if (unlikely(is_noslot_pfn(pfn))) {
                vcpu->stat.pf_mmio_spte_created++;
                mark_mmio_spte(vcpu, sptep, gfn, pte_access);
@@ -2956,8 +2950,6 @@ static int mmu_set_spte(struct kvm_vcpu *vcpu, struct kvm_memory_slot *slot,
                        drop_parent_pte(child, sptep);
                        flush = true;
                } else if (pfn != spte_to_pfn(*sptep)) {
-                       pgprintk("hfn old %llx new %llx\n",
-                                spte_to_pfn(*sptep), pfn);
                        drop_spte(vcpu->kvm, sptep);
                        flush = true;
                } else
@@ -2982,8 +2974,6 @@ static int mmu_set_spte(struct kvm_vcpu *vcpu, struct kvm_memory_slot *slot,
        if (flush)
                kvm_flush_remote_tlbs_gfn(vcpu->kvm, gfn, level);
 
-       pgprintk("%s: setting spte %llx\n", __func__, *sptep);
-
        if (!was_rmapped) {
                WARN_ON_ONCE(ret == RET_PF_SPURIOUS);
                rmap_add(vcpu, slot, sptep, gfn, pte_access);
@@ -4439,8 +4429,6 @@ out_unlock:
 static int nonpaging_page_fault(struct kvm_vcpu *vcpu,
                                struct kvm_page_fault *fault)
 {
-       pgprintk("%s: gva %lx error %x\n", __func__, fault->addr, fault->error_code);
-
        /* This path builds a PAE pagetable, we can map 2mb pages at maximum. */
        fault->max_level = PG_LEVEL_2M;
        return direct_page_fault(vcpu, fault);
@@ -5616,9 +5604,6 @@ static bool detect_write_misaligned(struct kvm_mmu_page *sp, gpa_t gpa,
 {
        unsigned offset, pte_size, misaligned;
 
-       pgprintk("misaligned: gpa %llx bytes %d role %x\n",
-                gpa, bytes, sp->role.word);
-
        offset = offset_in_page(gpa);
        pte_size = sp->role.has_4_byte_gpte ? 4 : 8;
 
@@ -5684,8 +5669,6 @@ static void kvm_mmu_pte_write(struct kvm_vcpu *vcpu, gpa_t gpa,
        if (!READ_ONCE(vcpu->kvm->arch.indirect_shadow_pages))
                return;
 
-       pgprintk("%s: gpa %llx bytes %d\n", __func__, gpa, bytes);
-
        write_lock(&vcpu->kvm->mmu_lock);
 
        gentry = mmu_pte_write_fetch_gpte(vcpu, &gpa, &bytes);
index 86cb83bb3480468922804e9741e50c029293d9f6..2d6bbf35520f10fdca2e069347c0beab4e6959d5 100644 (file)
 #ifdef MMU_DEBUG
 extern bool dbg;
 
-#define pgprintk(x...) do { if (dbg) printk(x); } while (0)
 #define rmap_printk(fmt, args...) do { if (dbg) printk("%s: " fmt, __func__, ## args); } while (0)
 #define MMU_WARN_ON(x) WARN_ON(x)
 #else
-#define pgprintk(x...) do { } while (0)
 #define rmap_printk(x...) do { } while (0)
 #define MMU_WARN_ON(x) do { } while (0)
 #endif
index 0662e0278e706c742e3468c0bbdec9823766a8da..7a97f769a7cb2363c3b844323d6cc0a74a5526c8 100644 (file)
@@ -456,9 +456,6 @@ retry_walk:
                        goto retry_walk;
        }
 
-       pgprintk("%s: pte %llx pte_access %x pt_access %x\n",
-                __func__, (u64)pte, walker->pte_access,
-                walker->pt_access[walker->level - 1]);
        return 1;
 
 error:
@@ -529,8 +526,6 @@ FNAME(prefetch_gpte)(struct kvm_vcpu *vcpu, struct kvm_mmu_page *sp,
        if (FNAME(prefetch_invalid_gpte)(vcpu, sp, spte, gpte))
                return false;
 
-       pgprintk("%s: gpte %llx spte %p\n", __func__, (u64)gpte, spte);
-
        gfn = gpte_to_gfn(gpte);
        pte_access = sp->role.access & FNAME(gpte_access)(gpte);
        FNAME(protect_clean_gpte)(vcpu->arch.mmu, &pte_access, gpte);
@@ -758,7 +753,6 @@ static int FNAME(page_fault)(struct kvm_vcpu *vcpu, struct kvm_page_fault *fault
        struct guest_walker walker;
        int r;
 
-       pgprintk("%s: addr %lx err %x\n", __func__, fault->addr, fault->error_code);
        WARN_ON_ONCE(fault->is_tdp);
 
        /*
@@ -773,7 +767,6 @@ static int FNAME(page_fault)(struct kvm_vcpu *vcpu, struct kvm_page_fault *fault
         * The page is not mapped by the guest.  Let the guest handle it.
         */
        if (!r) {
-               pgprintk("%s: guest page fault\n", __func__);
                if (!fault->prefetch)
                        kvm_inject_emulated_page_fault(vcpu, &walker.fault);
 
index cf2c6426a6fc36a27c542c0f3e219db45d08aa94..438a86bda9f373345cf04efdc71281fda3c96fa7 100644 (file)
@@ -221,8 +221,6 @@ bool make_spte(struct kvm_vcpu *vcpu, struct kvm_mmu_page *sp,
                 * shadow pages and unsync'ing pages is not allowed.
                 */
                if (mmu_try_to_unsync_pages(vcpu->kvm, slot, gfn, can_unsync, prefetch)) {
-                       pgprintk("%s: found shadow page for %llx, marking ro\n",
-                                __func__, gfn);
                        wrprot = true;
                        pte_access &= ~ACC_WRITE_MASK;
                        spte &= ~(PT_WRITABLE_MASK | shadow_mmu_writable_mask);