From: David Matlack <dmatlack@google.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: Sean Christopherson <seanjc@google.com>,
Vitaly Kuznetsov <vkuznets@redhat.com>,
Wanpeng Li <wanpengli@tencent.com>,
Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>,
Ben Gardon <bgardon@google.com>,
kvm@vger.kernel.org, David Matlack <dmatlack@google.com>
Subject: [PATCH v2 0/4] KVM: x86/mmu: Fix write-protection bug in the TDP MMU
Date: Thu, 13 Jan 2022 23:30:16 +0000 [thread overview]
Message-ID: <20220113233020.3986005-1-dmatlack@google.com> (raw)
While attempting to understand the big comment in
kvm_mmu_slot_remove_write_access() about TLB flushing, I discovered a
bug in the way the TDP MMU write-protects GFNs. I have not managed to
reproduce the bug as it requires a rather complex set up of live
migrating a VM that is using nested virtualization while the TDP MMU is
enabled.
Patch 1 fixes the bug and is CC'd to stable.
Patch 2-3 fix, document, and enforce invariants around MMU-writable
and Host-writable bits.
Patch 4 fixes up the aformentioned comment to be more readable.
Tested using the kvm-unit-tests and KVM selftests.
v2:
- Skip setting the SPTE when MMU-writable is already clear [Sean]
- Add patches for {MMU,Host}-writable invariants [Sean]
- Fix inaccuracies in kvm_mmu_slot_remove_write_access() comment [Sean]
v1: https://lore.kernel.org/kvm/20220112215801.3502286-1-dmatlack@google.com/
David Matlack (4):
KVM: x86/mmu: Fix write-protection of PTs mapped by the TDP MMU
KVM: x86/mmu: Clear MMU-writable during changed_pte notifier
KVM: x86/mmu: Document and enforce MMU-writable and Host-writable
invariants
KVM: x86/mmu: Improve TLB flush comment in
kvm_mmu_slot_remove_write_access()
arch/x86/kvm/mmu/mmu.c | 31 ++++++++++++++++++++--------
arch/x86/kvm/mmu/spte.c | 1 +
arch/x86/kvm/mmu/spte.h | 42 ++++++++++++++++++++++++++++++++------
arch/x86/kvm/mmu/tdp_mmu.c | 6 +++---
4 files changed, 62 insertions(+), 18 deletions(-)
base-commit: fea31d1690945e6dd6c3e89ec5591490857bc3d4
--
2.34.1.703.g22d0c6ccf7-goog
next reply other threads:[~2022-01-13 23:30 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-13 23:30 David Matlack [this message]
2022-01-13 23:30 ` [PATCH v2 1/4] KVM: x86/mmu: Fix write-protection of PTs mapped by the TDP MMU David Matlack
2022-01-14 23:38 ` Sean Christopherson
2022-01-13 23:30 ` [PATCH v2 2/4] KVM: x86/mmu: Clear MMU-writable during changed_pte notifier David Matlack
2022-01-14 23:41 ` Sean Christopherson
2022-01-13 23:30 ` [PATCH v2 3/4] KVM: x86/mmu: Document and enforce MMU-writable and Host-writable invariants David Matlack
2022-01-14 22:29 ` Sean Christopherson
2022-01-18 17:45 ` David Matlack
2022-01-13 23:30 ` [PATCH v2 4/4] KVM: x86/mmu: Improve TLB flush comment in kvm_mmu_slot_remove_write_access() David Matlack
2022-01-14 23:58 ` Sean Christopherson
2022-01-17 17:59 ` [PATCH v2 0/4] KVM: x86/mmu: Fix write-protection bug in the TDP MMU Paolo Bonzini
2022-01-18 17:38 ` David Matlack
2022-01-18 17:41 ` Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220113233020.3986005-1-dmatlack@google.com \
--to=dmatlack@google.com \
--cc=bgardon@google.com \
--cc=jmattson@google.com \
--cc=joro@8bytes.org \
--cc=kvm@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=seanjc@google.com \
--cc=vkuznets@redhat.com \
--cc=wanpengli@tencent.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.