Messages in this thread | ![/](/images/icornerl.gif) | | From | Vitaly Kuznetsov <> | Subject | Re: [PATCH v2 2/5] x86: KVM: svm: avoid flooding logs when skip_emulated_instruction() fails | Date | Wed, 07 Aug 2019 13:17:08 +0200 |
| |
Sean Christopherson <sean.j.christopherson@intel.com> writes:
> On Tue, Aug 06, 2019 at 08:01:47AM +0200, Vitaly Kuznetsov wrote: >> When we're unable to skip instruction with kvm_emulate_instruction() we >> will not advance RIP and most likely the guest will get stuck as >> consequitive attempts to execute the same instruction will likely result >> in the same behavior. >> >> As we're not supposed to see these messages under normal conditions, switch >> to pr_err_once(). >> >> Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com> >> Reviewed-by: Jim Mattson <jmattson@google.com> >> --- >> arch/x86/kvm/svm.c | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c >> index 7e843b340490..80f576e05112 100644 >> --- a/arch/x86/kvm/svm.c >> +++ b/arch/x86/kvm/svm.c >> @@ -782,7 +782,8 @@ static void skip_emulated_instruction(struct kvm_vcpu *vcpu) >> if (!svm->next_rip) { >> if (kvm_emulate_instruction(vcpu, EMULTYPE_SKIP) != >> EMULATE_DONE) >> - printk(KERN_DEBUG "%s: NOP\n", __func__); >> + pr_err_once("KVM: %s: unable to skip instruction\n", >> + __func__); > > IMO the proper fix would be to change skip_emulated_instruction() to > return an int so that emulation failure can be reported back up the stack. > It's a relatively minor change as there are a limited number of call sites > to skip_emulated_instruction() in SVM and VMX. >
(I'm always wondering when is the right time to add "plus a bunch of miscellaneous fixes all over" to the PATCH0's Subject line :-)
Will do in the next version, thanks!
>> return; >> } >> if (svm->next_rip - kvm_rip_read(vcpu) > MAX_INST_SIZE) >> -- >> 2.20.1 >>
-- Vitaly
| ![\](/images/icornerr.gif) |