From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: [PATCH kvm-unit-tests 2/4] x86: vmx: fix vm{launch,resume} early exit logic Date: Sat, 19 Mar 2016 10:18:50 +0100 Message-ID: <56ED197A.3000702@redhat.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit To: Peter Feiner , jan.kiszka@siemens.com, kvm@vger.kernel.org Return-path: Received: from mail-wm0-f65.google.com ([74.125.82.65]:33540 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752200AbcCSJSy (ORCPT ); Sat, 19 Mar 2016 05:18:54 -0400 Received: by mail-wm0-f65.google.com with SMTP id x188so10746501wmg.0 for ; Sat, 19 Mar 2016 02:18:53 -0700 (PDT) In-Reply-To: Sender: kvm-owner@vger.kernel.org List-ID: On 18/03/2016 23:39, Peter Feiner wrote: > If vmlaunch or vmresume returns immediately, there's definitely been > an error -- rflags only needs to be consulted to determine what > error occurred. By setting fail=1 unconditionally, the test framework > will now detect problems with rflags *not* being set properly. You should still do the setbe, and follow it with orl $2, %0. Then if fail==2 there is a problem. Paolo > Signed-off-by: Peter Feiner > --- > x86/vmx.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/x86/vmx.c b/x86/vmx.c > index b2e015f..27e85eb 100644 > --- a/x86/vmx.c > +++ b/x86/vmx.c > @@ -911,6 +911,7 @@ static int vmx_run() > u32 ret = 0, fail = 0; > > while (1) { > + > asm volatile ( > "mov %%rsp, %%rsi\n\t" > "mov %2, %%rdi\n\t" > @@ -926,7 +927,7 @@ static int vmx_run() > "vmresume\n\t" > "2: " > SAVE_GPR_C > - "setbe %0\n\t" > + "movl $1, %0\n\t" > "jmp 3f\n\t" > "vmx_return:\n\t" > SAVE_GPR_C >