From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39441) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W5yj9-0003eP-9F for qemu-devel@nongnu.org; Wed, 22 Jan 2014 09:24:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W5yj3-0006Fo-AY for qemu-devel@nongnu.org; Wed, 22 Jan 2014 09:24:23 -0500 Received: from mx1.redhat.com ([209.132.183.28]:52334) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W5yj3-0006BE-1i for qemu-devel@nongnu.org; Wed, 22 Jan 2014 09:24:17 -0500 Message-ID: <52DFC1A0.3090308@redhat.com> Date: Wed, 22 Jan 2014 14:03:28 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1390324291-9847-1-git-send-email-rkrcmar@redhat.com> In-Reply-To: <1390324291-9847-1-git-send-email-rkrcmar@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH] kvm: print suberror on all internal errors List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , qemu-devel@nongnu.org Cc: drjones@redhat.com, kvm@vger.kernel.org Il 21/01/2014 18:11, Radim Kr=C4=8Dm=C3=A1=C5=99 ha scritto: > KVM introduced internal error exit reason and suberror at the same time= , > and later extended it with internal error data. > QEMU does not report suberror on hosts between these two events because > we check for the extension. (half a year in 2009, but it is misleading) > > Fix by removing KVM_CAP_INTERNAL_ERROR_DATA condition on printf. > > (partially improved by bb44e0d12df70 and ba4047cf848a3 in the past) > > Signed-off-by: Radim Kr=C4=8Dm=C3=A1=C5=99 > --- > kvm-all.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/kvm-all.c b/kvm-all.c > index 0bfb060..0a91d8e 100644 > --- a/kvm-all.c > +++ b/kvm-all.c > @@ -1539,17 +1539,16 @@ static void kvm_handle_io(uint16_t port, void *= data, int direction, int size, > > static int kvm_handle_internal_error(CPUState *cpu, struct kvm_run *ru= n) > { > - fprintf(stderr, "KVM internal error."); > + fprintf(stderr, "KVM internal error. Suberror: %d\n", > + run->internal.suberror); > + > if (kvm_check_extension(kvm_state, KVM_CAP_INTERNAL_ERROR_DATA)) { > int i; > > - fprintf(stderr, " Suberror: %d\n", run->internal.suberror); > for (i =3D 0; i < run->internal.ndata; ++i) { > fprintf(stderr, "extra data[%d]: %"PRIx64"\n", > i, (uint64_t)run->internal.data[i]); > } > - } else { > - fprintf(stderr, "\n"); > } > if (run->internal.suberror =3D=3D KVM_INTERNAL_ERROR_EMULATION) { > fprintf(stderr, "emulation failure\n"); > Applied to uq/master, thanks (please remember uq/master in the subject=20 line in the future). Paolo