Message ID | 20220613133922.2875594-1-vkuznets@redhat.com (mailing list archive) |
---|---|
Headers | show |
Series | KVM: x86: hyper-v: Fine-grained TLB flush + L2 TLB flush features | expand |
On 6/13/22 15:38, Vitaly Kuznetsov wrote: > Changes since v6: > - Rebase to the latest kvm/queue [8baacf67c76c], newly introduced > selftests had to be adapted to the overhauled API [blame Sean]. > - Rename 'entry' to 'flush_all_entry' in hv_tlb_flush_enqueue() [Max]. > - Add "KVM: selftests: Rename 'evmcs_test' to 'hyperv_evmcs'" patch. > - Collect R-b tags. > > Original description: > > Currently, KVM handles HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST{,EX} requests > by flushing the whole VPID and this is sub-optimal. This series introduces > the required mechanism to make handling of these requests more > fine-grained by flushing individual GVAs only (when requested). On this > foundation, "Direct Virtual Flush" Hyper-V feature is implemented. The > feature allows L0 to handle Hyper-V TLB flush hypercalls directly at > L0 without the need to reflect the exit to L1. This has at least two > benefits: reflecting vmexit and the consequent vmenter are avoided + L0 > has precise information whether the target vCPU is actually running (and > thus requires a kick). I haven't reviewed the selftests part yet, but for the rest I only had two very small comments. Paolo
Paolo Bonzini <pbonzini@redhat.com> writes: > On 6/13/22 15:38, Vitaly Kuznetsov wrote: >> Changes since v6: >> - Rebase to the latest kvm/queue [8baacf67c76c], newly introduced >> selftests had to be adapted to the overhauled API [blame Sean]. >> - Rename 'entry' to 'flush_all_entry' in hv_tlb_flush_enqueue() [Max]. >> - Add "KVM: selftests: Rename 'evmcs_test' to 'hyperv_evmcs'" patch. >> - Collect R-b tags. >> >> Original description: >> >> Currently, KVM handles HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST{,EX} requests >> by flushing the whole VPID and this is sub-optimal. This series introduces >> the required mechanism to make handling of these requests more >> fine-grained by flushing individual GVAs only (when requested). On this >> foundation, "Direct Virtual Flush" Hyper-V feature is implemented. The >> feature allows L0 to handle Hyper-V TLB flush hypercalls directly at >> L0 without the need to reflect the exit to L1. This has at least two >> benefits: reflecting vmexit and the consequent vmenter are avoided + L0 >> has precise information whether the target vCPU is actually running (and >> thus requires a kick). > > I haven't reviewed the selftests part yet, but for the rest I only had > two very small comments. I got back to this today and turns out there's a conflict with commit cc5851c6be864c5772944e32df3da322fe3ad415 Author: Sean Christopherson <seanjc@google.com> Date: Wed Jun 8 22:45:15 2022 +0000 KVM: selftests: Use exception fixup for #UD/#GP Hyper-V MSR/hcall tests in selftest part. It's nothing big but I did some non-trivial changes when resolving and I think the reslut looks a bit nicer at the end. Also, I've addresed one of your comments and moved kvm_hv_get_tlb_flush_fifo()'s 'is_guest_mode' parameter introduction to PATCH11. I'm going to send out v8 with these changes.