[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: [PATCH 11/15] kvm: Rework inner loop of kvm_cpu_exec
From: |
Marcelo Tosatti |
Subject: |
[Qemu-devel] Re: [PATCH 11/15] kvm: Rework inner loop of kvm_cpu_exec |
Date: |
Sat, 5 Mar 2011 13:05:19 -0300 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Fri, Mar 04, 2011 at 11:20:08AM +0100, Jan Kiszka wrote:
> Let kvm_cpu_exec return EXCP_* values consistently and generate those
> codes already inside its inner loop. This means we will now re-enter the
> kernel while ret == 0.
>
> Update kvm_handle_internal_error accordingly, but keep
> kvm_arch_handle_exit untouched, it will be converted in a separate step.
>
> Signed-off-by: Jan Kiszka <address@hidden>
> ---
> kvm-all.c | 26 ++++++++++++++------------
> 1 files changed, 14 insertions(+), 12 deletions(-)
>
> diff --git a/kvm-all.c b/kvm-all.c
> index 2952499..cc652cf 100644
> --- a/kvm-all.c
> +++ b/kvm-all.c
> @@ -848,7 +848,7 @@ static int kvm_handle_internal_error(CPUState *env,
> struct kvm_run *run)
> fprintf(stderr, "emulation failure\n");
> if (!kvm_arch_stop_on_emulation_error(env)) {
> cpu_dump_state(env, stderr, fprintf, CPU_DUMP_CODE);
> - return 0;
> + return EXCP_INTERRUPT;
> }
> }
> /* FIXME: Should trigger a qmp message to let management know
> @@ -947,7 +947,7 @@ int kvm_cpu_exec(CPUState *env)
>
> if (ret == -EINTR || ret == -EAGAIN) {
> DPRINTF("io window exit\n");
> - ret = 0;
> + ret = EXCP_INTERRUPT;
> break;
> }
>
> @@ -956,7 +956,6 @@ int kvm_cpu_exec(CPUState *env)
> abort();
> }
>
> - ret = 0; /* exit loop */
> switch (run->exit_reason) {
Better keep ret assignment here so default behaviour is to
exit loop? EXCP_INTERRUPT.
- [Qemu-devel] Re: [PATCH 03/15] kvm: Install optimized interrupt handlers, (continued)
[Qemu-devel] [PATCH 01/15] Break up user and system cpu_interrupt implementations, Jan Kiszka, 2011/03/04
[Qemu-devel] [PATCH 11/15] kvm: Rework inner loop of kvm_cpu_exec, Jan Kiszka, 2011/03/04
- [Qemu-devel] Re: [PATCH 11/15] kvm: Rework inner loop of kvm_cpu_exec,
Marcelo Tosatti <=
[Qemu-devel] [PATCH 04/15] kvm: Add in-kernel irqchip awareness to cpu_thread_is_idle, Jan Kiszka, 2011/03/04
[Qemu-devel] [PATCH 09/15] kvm: x86: Synchronize PAT MSR with the kernel, Jan Kiszka, 2011/03/04
[Qemu-devel] [PATCH 02/15] Redirect cpu_interrupt to callback handler, Jan Kiszka, 2011/03/04