[Bug 219588] [6.13.0-rc2+]WARNING: CPU: 52 PID: 12253 at arch/x86/kvm/mmu/tdp_mmu.c:1001 tdp_mmu_map_handle_target_level+0x1f0/0x310 [kvm]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.kernel.org/show_bug.cgi?id=219588

--- Comment #5 from leiyang@xxxxxxxxxx ---
Due to the fixed patch has been merge into the upstream master branch, so close
done this bug.

commit 386d69f9f29b0814881fa4f92ac7b8dfa9b4f44a
Author: Sean Christopherson <seanjc@xxxxxxxxxx>
Date:   Wed Dec 18 13:36:11 2024 -0800

    KVM: x86/mmu: Treat TDP MMU faults as spurious if access is already allowed

    Treat slow-path TDP MMU faults as spurious if the access is allowed given
    the existing SPTE to fix a benign warning (other than the WARN itself)
    due to replacing a writable SPTE with a read-only SPTE, and to avoid the
    unnecessary LOCK CMPXCHG and subsequent TLB flush.

    If a read fault races with a write fault, fast GUP fails for any reason
    when trying to "promote" the read fault to a writable mapping, and KVM
    resolves the write fault first, then KVM will end up trying to install a
    read-only SPTE (for a !map_writable fault) overtop a writable SPTE.

    Note, it's not entirely clear why fast GUP fails, or if that's even how
    KVM ends up with a !map_writable fault with a writable SPTE.  If something
    else is going awry, e.g. due to a bug in mmu_notifiers, then treating read
    faults as spurious in this scenario could effectively mask the underlying
    problem.

    However, retrying the faulting access instead of overwriting an existing
    SPTE is functionally correct and desirable irrespective of the WARN, and
    fast GUP _can_ legitimately fail with a writable VMA, e.g. if the Accessed
    bit in primary MMU's PTE is toggled and causes a PTE value mismatch.  The
    WARN was also recently added, specifically to track down scenarios where
    KVM is unnecessarily overwrites SPTEs, i.e. treating the fault as spurious
    doesn't regress KVM's bug-finding capabilities in any way.  In short,
    letting the WARN linger because there's a tiny chance it's due to a bug
    elsewhere would be excessively paranoid.

    Fixes: 1a175082b190 ("KVM: x86/mmu: WARN and flush if resolving a TDP MMU
fault clears MMU-writable")
    Reported-by: Lei Yang <leiyang@xxxxxxxxxx>
    Closes: https://bugzilla.kernel.org/show_bug.cgi?id=219588

-- 
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux