[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] kvm: print suberror on all internal errors
From: |
Laszlo Ersek |
Subject: |
Re: [Qemu-devel] [PATCH] kvm: print suberror on all internal errors |
Date: |
Tue, 21 Jan 2014 18:20:38 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20131118 Thunderbird/17.0.11 |
On 01/21/14 18:11, Radim Krčmář wrote:
> 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čmář <address@hidden>
> ---
> 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 = 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 == KVM_INTERNAL_ERROR_EMULATION) {
> fprintf(stderr, "emulation failure\n");
>
Based on earlier discussion
Reviewed-by: Laszlo Ersek <address@hidden>