Maxim Levitsky <mlevitsk@xxxxxxxxxx> writes: > On Thu, 2022-04-14 at 15:19 +0200, Vitaly Kuznetsov wrote: >> KVM_REQ_TLB_FLUSH_CURRENT is an even stronger operation than >> KVM_REQ_TLB_FLUSH_GUEST so KVM_REQ_HV_TLB_FLUSH needs not to be >> processed after it. >> >> Signed-off-by: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx> >> --- >> arch/x86/kvm/x86.c | 5 ++++- >> 1 file changed, 4 insertions(+), 1 deletion(-) >> >> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c >> index e5aec386d299..d3839e648ab3 100644 >> --- a/arch/x86/kvm/x86.c >> +++ b/arch/x86/kvm/x86.c >> @@ -3357,8 +3357,11 @@ static inline void kvm_vcpu_flush_tlb_current(struct kvm_vcpu *vcpu) >> */ >> void kvm_service_local_tlb_flush_requests(struct kvm_vcpu *vcpu) >> { >> - if (kvm_check_request(KVM_REQ_TLB_FLUSH_CURRENT, vcpu)) >> + if (kvm_check_request(KVM_REQ_TLB_FLUSH_CURRENT, vcpu)) { >> kvm_vcpu_flush_tlb_current(vcpu); >> + if (kvm_check_request(KVM_REQ_HV_TLB_FLUSH, vcpu)) >> + kvm_hv_vcpu_empty_flush_tlb(vcpu); >> + } >> >> if (kvm_check_request(KVM_REQ_TLB_FLUSH_GUEST, vcpu)) { >> kvm_vcpu_flush_tlb_guest(vcpu); > > > I think that this patch should be moved near patch 1 and/or even squished with it. > Sure, will merge. This, however, made me think there's room for optimization here. In some cases, when both KVM_REQ_TLB_FLUSH_CURRENT and KVM_REQ_TLB_FLUSH_GUEST were requested, there's no need to flush twice, e.g. on SVM .flush_tlb_current == .flush_tlb_guest. I'll probably not go into this territory with this series as it's already fairly big, just something for the future. -- Vitaly