Messages in this thread | | | Date | Tue, 1 Mar 2022 18:08:55 +0100 | Subject | Re: [PATCH v2 0/7] KVM: x86/mmu: Zap only obsolete roots on "reload" | From | Paolo Bonzini <> |
| |
On 2/25/22 19:22, Sean Christopherson wrote: > For all intents and purposes, this is an x86/mmu series, but it touches > s390 and common KVM code because KVM_REQ_MMU_RELOAD is currently a generic > request despite its use being encapsulated entirely within arch code. > > The meat of the series is to zap only obsolete (a.k.a. invalid) roots in > response to KVM marking a root obsolete/invalid due to it being zapped. > KVM currently drops/zaps all roots, which, aside from being a performance > hit if the guest is using multiple roots, complicates x86 KVM paths that > load a new root because it raises the question of what should be done if > there's a pending KVM_REQ_MMU_RELOAD, i.e. if the path _knows_ that any > root it loads will be obliterated. > > Paolo, I'm hoping you can squash patch 01 with your patch it "fixes". > > I'm also speculating that this will be applied after my patch to remove > KVM_REQ_GPC_INVALIDATE, otherwise the changelog in patch 06 will be > wrong.
Queued, thanks.
Paolo
> v2: > - Collect reviews. [Claudio, Janosch] > - Rebase to latest kvm/queue. > > v1: https://lore.kernel.org/all/20211209060552.2956723-1-seanjc@google.com > > Sean Christopherson (7): > KVM: x86: Remove spurious whitespaces from kvm_post_set_cr4() > KVM: x86: Invoke kvm_mmu_unload() directly on CR4.PCIDE change > KVM: Drop kvm_reload_remote_mmus(), open code request in x86 users > KVM: x86/mmu: Zap only obsolete roots if a root shadow page is zapped > KVM: s390: Replace KVM_REQ_MMU_RELOAD usage with arch specific request > KVM: Drop KVM_REQ_MMU_RELOAD and update vcpu-requests.rst > documentation > KVM: WARN if is_unsync_root() is called on a root without a shadow > page > > Documentation/virt/kvm/vcpu-requests.rst | 7 +- > arch/s390/include/asm/kvm_host.h | 2 + > arch/s390/kvm/kvm-s390.c | 8 +-- > arch/s390/kvm/kvm-s390.h | 2 +- > arch/x86/include/asm/kvm_host.h | 2 + > arch/x86/kvm/mmu.h | 1 + > arch/x86/kvm/mmu/mmu.c | 83 ++++++++++++++++++++---- > arch/x86/kvm/x86.c | 10 +-- > include/linux/kvm_host.h | 4 +- > virt/kvm/kvm_main.c | 5 -- > 10 files changed, 90 insertions(+), 34 deletions(-) > > > base-commit: f4bc051fc91ab9f1d5225d94e52d369ef58bec58
| |