KVM: x86: On emulation failure, convey the exit reason, etc. to userspace
Should instruction emulation fail, include the VM exit reason, etc. in the emulation_failure data passed to userspace, in order that the VMM can report it as a debugging aid when describing the failure. Suggested-by: Joao Martins <joao.m.martins@oracle.com> Signed-off-by: David Edmondson <david.edmondson@oracle.com> Reviewed-by: Sean Christopherson <seanjc@google.com> Message-Id: <20210920103737.2696756-4-david.edmondson@oracle.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
0a62a0319a
commit
e615e35589
4 changed files with 69 additions and 18 deletions
|
|
@ -398,6 +398,11 @@ struct kvm_run {
|
|||
* "ndata" is correct, that new fields are enumerated in "flags",
|
||||
* and that each flag enumerates fields that are 64-bit aligned
|
||||
* and sized (so that ndata+internal.data[] is valid/accurate).
|
||||
*
|
||||
* Space beyond the defined fields may be used to store arbitrary
|
||||
* debug information relating to the emulation failure. It is
|
||||
* accounted for in "ndata" but the format is unspecified and is
|
||||
* not represented in "flags". Any such information is *not* ABI!
|
||||
*/
|
||||
struct {
|
||||
__u32 suberror;
|
||||
|
|
@ -409,6 +414,7 @@ struct kvm_run {
|
|||
__u8 insn_bytes[15];
|
||||
};
|
||||
};
|
||||
/* Arbitrary debug data may follow. */
|
||||
} emulation_failure;
|
||||
/* KVM_EXIT_OSI */
|
||||
struct {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue