* [PATCH 1/2] Update kvm.h in qemu-kvm tree
@ 2009-08-28 14:48 Mohammed Gamal
2009-08-28 14:48 ` [PATCH 2/2] Handle emulation failure in userspace Mohammed Gamal
0 siblings, 1 reply; 4+ messages in thread
From: Mohammed Gamal @ 2009-08-28 14:48 UTC (permalink / raw)
To: avi; +Cc: kvm, Mohammed Gamal
Update struct kvm_run and KVM_EXIT_* constants to match the one in the
kernel-space tree
Signed-off-by: Mohammed Gamal <m.gamal005@gmail.com>
---
kvm/include/linux/kvm.h | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/kvm/include/linux/kvm.h b/kvm/include/linux/kvm.h
index ff1025d..801865d 100644
--- a/kvm/include/linux/kvm.h
+++ b/kvm/include/linux/kvm.h
@@ -135,6 +135,10 @@ struct kvm_pit_config {
#define KVM_EXIT_S390_RESET 14
#define KVM_EXIT_DCR 15
#define KVM_EXIT_NMI 16
+#define KVM_EXIT_INTERNAL_ERROR 17
+
+/* For KVM_EXIT_INTERNAL_ERROR */
+#define KVM_INTERNAL_ERROR_EMULATION 1
/* for KVM_RUN, returned by mmap(vcpu_fd, offset=0) */
struct kvm_run {
@@ -221,6 +225,9 @@ struct kvm_run {
__u32 data;
__u8 is_write;
} dcr;
+ struct {
+ __u32 suberror;
+ } internal;
/* Fix the size of the union. */
char padding[256];
};
--
1.6.0.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] Handle emulation failure in userspace
2009-08-28 14:48 [PATCH 1/2] Update kvm.h in qemu-kvm tree Mohammed Gamal
@ 2009-08-28 14:48 ` Mohammed Gamal
2009-09-01 12:31 ` Marcelo Tosatti
0 siblings, 1 reply; 4+ messages in thread
From: Mohammed Gamal @ 2009-08-28 14:48 UTC (permalink / raw)
To: avi; +Cc: kvm, Mohammed Gamal
Since we return to userspace from KVM on invalid state emulation failure, let
qemu handle it.
Signed-off-by: Mohammed Gamal <m.gamal005@gmail.com>
---
qemu-kvm.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/qemu-kvm.c b/qemu-kvm.c
index b59e403..a1648e0 100644
--- a/qemu-kvm.c
+++ b/qemu-kvm.c
@@ -1029,6 +1029,14 @@ int kvm_run(kvm_vcpu_context_t vcpu, void *env)
r = kvm_s390_handle_reset(kvm, vcpu, run);
break;
#endif
+ case KVM_EXIT_INTERNAL_ERROR:
+ kvm_show_regs(vcpu);
+ fprintf(stderr, "\nKVM internal error. Suberror: %d\n",
+ run->internal.suberror);
+ if (run->internal.suberror == KVM_INTERNAL_ERROR_EMULATION)
+ fprintf(stderr, "emulation failure, check dmesg for details\n");
+ abort();
+ break;
default:
if (kvm_arch_run(vcpu)) {
fprintf(stderr, "unhandled vm exit: 0x%x\n", run->exit_reason);
--
1.6.0.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] Handle emulation failure in userspace
2009-08-28 14:48 ` [PATCH 2/2] Handle emulation failure in userspace Mohammed Gamal
@ 2009-09-01 12:31 ` Marcelo Tosatti
2009-09-01 12:56 ` Mohammed Gamal
0 siblings, 1 reply; 4+ messages in thread
From: Marcelo Tosatti @ 2009-09-01 12:31 UTC (permalink / raw)
To: Mohammed Gamal; +Cc: avi, kvm
On Fri, Aug 28, 2009 at 04:48:53PM +0200, Mohammed Gamal wrote:
> Since we return to userspace from KVM on invalid state emulation failure, let
> qemu handle it.
>
> Signed-off-by: Mohammed Gamal <m.gamal005@gmail.com>
> ---
> qemu-kvm.c | 8 ++++++++
> 1 files changed, 8 insertions(+), 0 deletions(-)
>
> diff --git a/qemu-kvm.c b/qemu-kvm.c
> index b59e403..a1648e0 100644
> --- a/qemu-kvm.c
> +++ b/qemu-kvm.c
> @@ -1029,6 +1029,14 @@ int kvm_run(kvm_vcpu_context_t vcpu, void *env)
> r = kvm_s390_handle_reset(kvm, vcpu, run);
> break;
> #endif
> + case KVM_EXIT_INTERNAL_ERROR:
> + kvm_show_regs(vcpu);
> + fprintf(stderr, "\nKVM internal error. Suberror: %d\n",
> + run->internal.suberror);
> + if (run->internal.suberror == KVM_INTERNAL_ERROR_EMULATION)
> + fprintf(stderr, "emulation failure, check dmesg for details\n");
> + abort();
> + break;
> default:
> if (kvm_arch_run(vcpu)) {
> fprintf(stderr, "unhandled vm exit: 0x%x\n", run->exit_reason);
> --
> 1.6.0.4
The common practice is to print msg first and then kvm_show_regs?
Applied the kvm.h update, thanks.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] Handle emulation failure in userspace
2009-09-01 12:31 ` Marcelo Tosatti
@ 2009-09-01 12:56 ` Mohammed Gamal
0 siblings, 0 replies; 4+ messages in thread
From: Mohammed Gamal @ 2009-09-01 12:56 UTC (permalink / raw)
To: Marcelo Tosatti; +Cc: avi, kvm
On Tue, Sep 1, 2009 at 2:31 PM, Marcelo Tosatti<mtosatti@redhat.com> wrote:
> On Fri, Aug 28, 2009 at 04:48:53PM +0200, Mohammed Gamal wrote:
>> Since we return to userspace from KVM on invalid state emulation failure, let
>> qemu handle it.
>>
>> Signed-off-by: Mohammed Gamal <m.gamal005@gmail.com>
>> ---
>> qemu-kvm.c | 8 ++++++++
>> 1 files changed, 8 insertions(+), 0 deletions(-)
>>
>> diff --git a/qemu-kvm.c b/qemu-kvm.c
>> index b59e403..a1648e0 100644
>> --- a/qemu-kvm.c
>> +++ b/qemu-kvm.c
>> @@ -1029,6 +1029,14 @@ int kvm_run(kvm_vcpu_context_t vcpu, void *env)
>> r = kvm_s390_handle_reset(kvm, vcpu, run);
>> break;
>> #endif
>> + case KVM_EXIT_INTERNAL_ERROR:
>> + kvm_show_regs(vcpu);
>> + fprintf(stderr, "\nKVM internal error. Suberror: %d\n",
>> + run->internal.suberror);
>> + if (run->internal.suberror == KVM_INTERNAL_ERROR_EMULATION)
>> + fprintf(stderr, "emulation failure, check dmesg for details\n");
>> + abort();
>> + break;
>> default:
>> if (kvm_arch_run(vcpu)) {
>> fprintf(stderr, "unhandled vm exit: 0x%x\n", run->exit_reason);
>> --
>> 1.6.0.4
>
> The common practice is to print msg first and then kvm_show_regs?
True. I just thought the message would be more visible this way. Will resend
> Applied the kvm.h update, thanks.
>
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2009-09-01 12:56 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-28 14:48 [PATCH 1/2] Update kvm.h in qemu-kvm tree Mohammed Gamal
2009-08-28 14:48 ` [PATCH 2/2] Handle emulation failure in userspace Mohammed Gamal
2009-09-01 12:31 ` Marcelo Tosatti
2009-09-01 12:56 ` Mohammed Gamal
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox