From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: [PATCH] kvm: print suberror on all internal errors Date: Wed, 22 Jan 2014 14:03:28 +0100 Message-ID: <52DFC1A0.3090308@redhat.com> References: <1390324291-9847-1-git-send-email-rkrcmar@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: kvm@vger.kernel.org, drjones@redhat.com To: =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , qemu-devel@nongnu.org Return-path: Received: from mx1.redhat.com ([209.132.183.28]:24341 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755462AbaAVNDc (ORCPT ); Wed, 22 Jan 2014 08:03:32 -0500 In-Reply-To: <1390324291-9847-1-git-send-email-rkrcmar@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: 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 ti= me, > and later extended it with internal error data. > QEMU does not report suberror on hosts between these two events becau= se > we check for the extension. (half a year in 2009, but it is misleadin= g) > > 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 *= run) > { > - 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