FAILED: patch "[PATCH] KVM: SVM: Fix disable pause loop exit/pause filtering" failed to apply to 4.19-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 4.19-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 830f01b089b12bbe93bd55f2d62837253012a30e Mon Sep 17 00:00:00 2001
From: Wanpeng Li <[email protected]>
Date: Fri, 31 Jul 2020 11:12:21 +0800
Subject: [PATCH] KVM: SVM: Fix disable pause loop exit/pause filtering
capability on SVM
'Commit 8566ac8b8e7c ("KVM: SVM: Implement pause loop exit logic in SVM")' drops disable pause loop exit/pause filtering capability completely, I guess it is a merge fault by Radim since disable vmexits capabilities and pause loop exit for SVM patchsets are merged at the same time. This patch reintroduces the disable pause loop exit/pause filtering capability support.
Message-Id: <[email protected]>
arch/x86/kvm/svm/svm.c +6 -3
@@ -1090,7 +1090,7 @@ static void init_vmcb(struct vcpu_svm *svm) svm->nested.vmcb =0 ; svm->vcpu.arch.hflags =0 ; -if (pause_filter_count) { +if (!kvm_pause_in_guest (svm->vcpu.kvm)) { control->pause_filter_count = pause_filter_count;if (pause_filter_thresh) control->pause_filter_thresh = pause_filter_thresh;
@@ -2693,7 +2693,7 @@ static int pause_interception(struct vcpu_svm *svm)struct kvm_vcpu *vcpu = &svm->vcpu;bool in_kernel = (svm_get_cpl (vcpu) ==0 ); -if (pause_filter_thresh) +if (!kvm_pause_in_guest (vcpu->kvm))grow_ple_window (vcpu);kvm_vcpu_on_spin (vcpu, in_kernel);
@@ -3780,7 +3780,7 @@ static void svm_handle_exit_irqoff(struct kvm_vcpu *vcpu)static void svm_sched_in (struct kvm_vcpu *vcpu,int cpu) { -if (pause_filter_thresh) +if (!kvm_pause_in_guest (vcpu->kvm))shrink_ple_window (vcpu); }
@@ -3958,6 +3958,9 @@ static void svm_vm_destroy(struct kvm *kvm)static int svm_vm_init (struct kvm *kvm) { +if (!pause_filter_count || !pause_filter_thresh) + kvm->arch.pause_in_guest = true; +if (avic) {int ret =avic_vm_init (kvm);if (ret)