kvm: Print MSR information if KVM_{GET,SET}_MSRS failed
When a KVM_{GET,SET}_MSRS ioctl() fails, it is difficult to find out which MSR caused the problem. Print an error message for debugging, before we trigger the (ret == cpu->kvm_msr_buf->nmsrs) assert. Suggested-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Message-Id: <20170309194634.28457-1-ehabkost@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
79ca7a1b89
commit
c70b11d160
|
@ -1824,6 +1824,12 @@ static int kvm_put_msrs(X86CPU *cpu, int level)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ret < cpu->kvm_msr_buf->nmsrs) {
|
||||||
|
struct kvm_msr_entry *e = &cpu->kvm_msr_buf->entries[ret];
|
||||||
|
error_report("error: failed to set MSR 0x%" PRIx32 " to 0x%" PRIx64,
|
||||||
|
(uint32_t)e->index, (uint64_t)e->data);
|
||||||
|
}
|
||||||
|
|
||||||
assert(ret == cpu->kvm_msr_buf->nmsrs);
|
assert(ret == cpu->kvm_msr_buf->nmsrs);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -2189,6 +2195,12 @@ static int kvm_get_msrs(X86CPU *cpu)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ret < cpu->kvm_msr_buf->nmsrs) {
|
||||||
|
struct kvm_msr_entry *e = &cpu->kvm_msr_buf->entries[ret];
|
||||||
|
error_report("error: failed to get MSR 0x%" PRIx32,
|
||||||
|
(uint32_t)e->index);
|
||||||
|
}
|
||||||
|
|
||||||
assert(ret == cpu->kvm_msr_buf->nmsrs);
|
assert(ret == cpu->kvm_msr_buf->nmsrs);
|
||||||
/*
|
/*
|
||||||
* MTRR masks: Each mask consists of 5 parts
|
* MTRR masks: Each mask consists of 5 parts
|
||||||
|
|
Loading…
Reference in a new issue