From: Matt Evans <matt@ozlabs.org>
To: kvm@vger.kernel.org, kvm-ppc@vger.kernel.org
Cc: penberg@kernel.org, asias.hejun@gmail.com,
levinsasha928@gmail.com, gorcunov@gmail.com
Subject: [PATCH V2 05/23] kvm tools: Add arch-specific KVM_RUN exit handling
Date: Fri, 09 Dec 2011 06:53:56 +0000 [thread overview]
Message-ID: <4EE1B084.3010404@ozlabs.org> (raw)
In-Reply-To: <cover.1323413420.git.matt@ozlabs.org>
This patch creates a new function in x86/kvm-cpu.c, kvm_cpu__handle_exit(), in
which arch-specific exit reasons can be handled outside of the common runloop.
Signed-off-by: Matt Evans <matt@ozlabs.org>
---
tools/kvm/include/kvm/kvm-cpu.h | 2 ++
tools/kvm/kvm-cpu.c | 10 ++++++++--
tools/kvm/x86/kvm-cpu.c | 5 +++++
3 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/tools/kvm/include/kvm/kvm-cpu.h b/tools/kvm/include/kvm/kvm-cpu.h
index 719e286..15618f1 100644
--- a/tools/kvm/include/kvm/kvm-cpu.h
+++ b/tools/kvm/include/kvm/kvm-cpu.h
@@ -2,6 +2,7 @@
#define KVM__KVM_CPU_H
#include "kvm/kvm-cpu-arch.h"
+#include <stdbool.h>
struct kvm_cpu *kvm_cpu__init(struct kvm *kvm, unsigned long cpu_id);
void kvm_cpu__delete(struct kvm_cpu *vcpu);
@@ -11,6 +12,7 @@ void kvm_cpu__enable_singlestep(struct kvm_cpu *vcpu);
void kvm_cpu__run(struct kvm_cpu *vcpu);
void kvm_cpu__reboot(void);
int kvm_cpu__start(struct kvm_cpu *cpu);
+bool kvm_cpu__handle_exit(struct kvm_cpu *vcpu);
int kvm_cpu__get_debug_fd(void);
void kvm_cpu__set_debug_fd(int fd);
diff --git a/tools/kvm/kvm-cpu.c b/tools/kvm/kvm-cpu.c
index 5aba3bb..9bc0796 100644
--- a/tools/kvm/kvm-cpu.c
+++ b/tools/kvm/kvm-cpu.c
@@ -137,8 +137,14 @@ int kvm_cpu__start(struct kvm_cpu *cpu)
goto exit_kvm;
case KVM_EXIT_SHUTDOWN:
goto exit_kvm;
- default:
- goto panic_kvm;
+ default: {
+ bool ret;
+
+ ret = kvm_cpu__handle_exit(cpu);
+ if (!ret)
+ goto panic_kvm;
+ break;
+ }
}
kvm_cpu__handle_coalesced_mmio(cpu);
}
diff --git a/tools/kvm/x86/kvm-cpu.c b/tools/kvm/x86/kvm-cpu.c
index b26b208..a0d10cc 100644
--- a/tools/kvm/x86/kvm-cpu.c
+++ b/tools/kvm/x86/kvm-cpu.c
@@ -212,6 +212,11 @@ void kvm_cpu__reset_vcpu(struct kvm_cpu *vcpu)
kvm_cpu__setup_msrs(vcpu);
}
+bool kvm_cpu__handle_exit(struct kvm_cpu *vcpu)
+{
+ return false;
+}
+
static void print_dtable(const char *name, struct kvm_dtable *dtable)
{
dprintf(debug_fd, " %s %016llx %08hx\n",
WARNING: multiple messages have this Message-ID (diff)
From: Matt Evans <matt@ozlabs.org>
To: kvm@vger.kernel.org, kvm-ppc@vger.kernel.org
Cc: penberg@kernel.org, asias.hejun@gmail.com,
levinsasha928@gmail.com, gorcunov@gmail.com
Subject: [PATCH V2 05/23] kvm tools: Add arch-specific KVM_RUN exit handling via kvm_cpu__handle_exit()
Date: Fri, 09 Dec 2011 17:53:56 +1100 [thread overview]
Message-ID: <4EE1B084.3010404@ozlabs.org> (raw)
In-Reply-To: <cover.1323413420.git.matt@ozlabs.org>
This patch creates a new function in x86/kvm-cpu.c, kvm_cpu__handle_exit(), in
which arch-specific exit reasons can be handled outside of the common runloop.
Signed-off-by: Matt Evans <matt@ozlabs.org>
---
tools/kvm/include/kvm/kvm-cpu.h | 2 ++
tools/kvm/kvm-cpu.c | 10 ++++++++--
tools/kvm/x86/kvm-cpu.c | 5 +++++
3 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/tools/kvm/include/kvm/kvm-cpu.h b/tools/kvm/include/kvm/kvm-cpu.h
index 719e286..15618f1 100644
--- a/tools/kvm/include/kvm/kvm-cpu.h
+++ b/tools/kvm/include/kvm/kvm-cpu.h
@@ -2,6 +2,7 @@
#define KVM__KVM_CPU_H
#include "kvm/kvm-cpu-arch.h"
+#include <stdbool.h>
struct kvm_cpu *kvm_cpu__init(struct kvm *kvm, unsigned long cpu_id);
void kvm_cpu__delete(struct kvm_cpu *vcpu);
@@ -11,6 +12,7 @@ void kvm_cpu__enable_singlestep(struct kvm_cpu *vcpu);
void kvm_cpu__run(struct kvm_cpu *vcpu);
void kvm_cpu__reboot(void);
int kvm_cpu__start(struct kvm_cpu *cpu);
+bool kvm_cpu__handle_exit(struct kvm_cpu *vcpu);
int kvm_cpu__get_debug_fd(void);
void kvm_cpu__set_debug_fd(int fd);
diff --git a/tools/kvm/kvm-cpu.c b/tools/kvm/kvm-cpu.c
index 5aba3bb..9bc0796 100644
--- a/tools/kvm/kvm-cpu.c
+++ b/tools/kvm/kvm-cpu.c
@@ -137,8 +137,14 @@ int kvm_cpu__start(struct kvm_cpu *cpu)
goto exit_kvm;
case KVM_EXIT_SHUTDOWN:
goto exit_kvm;
- default:
- goto panic_kvm;
+ default: {
+ bool ret;
+
+ ret = kvm_cpu__handle_exit(cpu);
+ if (!ret)
+ goto panic_kvm;
+ break;
+ }
}
kvm_cpu__handle_coalesced_mmio(cpu);
}
diff --git a/tools/kvm/x86/kvm-cpu.c b/tools/kvm/x86/kvm-cpu.c
index b26b208..a0d10cc 100644
--- a/tools/kvm/x86/kvm-cpu.c
+++ b/tools/kvm/x86/kvm-cpu.c
@@ -212,6 +212,11 @@ void kvm_cpu__reset_vcpu(struct kvm_cpu *vcpu)
kvm_cpu__setup_msrs(vcpu);
}
+bool kvm_cpu__handle_exit(struct kvm_cpu *vcpu)
+{
+ return false;
+}
+
static void print_dtable(const char *name, struct kvm_dtable *dtable)
{
dprintf(debug_fd, " %s %016llx %08hx\n",
next prev parent reply other threads:[~2011-12-09 6:53 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <cover.1323413420.git.matt@ozlabs.org>
2011-12-09 6:52 ` [PATCH V2 01/23] kvm tools: Only build/init i8042 on x86 Matt Evans
2011-12-09 6:52 ` Matt Evans
2011-12-09 6:52 ` [PATCH V2 03/23] kvm tools: Re-arrange Makefile to heed CFLAGS before Matt Evans
2011-12-09 6:52 ` [PATCH V2 03/23] kvm tools: Re-arrange Makefile to heed CFLAGS before checking for optional libs Matt Evans
2011-12-09 6:53 ` [PATCH V2 02/23] kvm tools: Add Makefile parameter for kernel include Matt Evans
2011-12-09 6:53 ` [PATCH V2 02/23] kvm tools: Add Makefile parameter for kernel include path Matt Evans
2011-12-09 6:53 ` [PATCH V2 04/23] kvm tools: Get correct 64-bit types on PPC64 and Matt Evans
2011-12-09 6:53 ` [PATCH V2 04/23] kvm tools: Get correct 64-bit types on PPC64 and link appropriately Matt Evans
2011-12-09 8:24 ` [PATCH V2 04/23] kvm tools: Get correct 64-bit types on PPC64 Sasha Levin
2011-12-09 8:24 ` [PATCH V2 04/23] kvm tools: Get correct 64-bit types on PPC64 and link appropriately Sasha Levin
2011-12-09 8:29 ` [PATCH V2 04/23] kvm tools: Get correct 64-bit types on PPC64 and Pekka Enberg
2011-12-09 8:29 ` [PATCH V2 04/23] kvm tools: Get correct 64-bit types on PPC64 and link appropriately Pekka Enberg
2011-12-12 1:03 ` [PATCH V2 04/23] kvm tools: Get correct 64-bit types on PPC64 Matt Evans
2011-12-12 1:03 ` [PATCH V2 04/23] kvm tools: Get correct 64-bit types on PPC64 and link appropriately Matt Evans
2011-12-12 5:57 ` [PATCH V2 04/23] kvm tools: Get correct 64-bit types on PPC64 Pekka Enberg
2011-12-12 5:57 ` [PATCH V2 04/23] kvm tools: Get correct 64-bit types on PPC64 and link appropriately Pekka Enberg
2011-12-13 6:44 ` [PATCH V2 04/23] kvm tools: Get correct 64-bit types on PPC64 Matt Evans
2011-12-13 6:44 ` [PATCH V2 04/23] kvm tools: Get correct 64-bit types on PPC64 and link appropriately Matt Evans
2011-12-09 6:53 ` Matt Evans [this message]
2011-12-09 6:53 ` [PATCH V2 05/23] kvm tools: Add arch-specific KVM_RUN exit handling via kvm_cpu__handle_exit() Matt Evans
2011-12-09 6:54 ` [PATCH V2 06/23] kvm tools: Don't die if KVM_CAP_NR_VCPUS isn't available Matt Evans
2011-12-09 6:54 ` Matt Evans
2011-12-09 6:54 ` [PATCH V2 07/23] kvm tools: Fix KVM_RUN exit code check Matt Evans
2011-12-09 6:54 ` Matt Evans
2011-12-09 6:54 ` [PATCH V2 08/23] kvm tools: Add kvm__arch_periodic_poll() Matt Evans
2011-12-09 6:54 ` Matt Evans
2011-12-09 6:54 ` [PATCH V2 09/23] kvm tools: Move arch-specific cmdline init into Matt Evans
2011-12-09 6:54 ` [PATCH V2 09/23] kvm tools: Move arch-specific cmdline init into kvm__arch_set_cmdline() Matt Evans
2011-12-09 6:54 ` [PATCH V2 10/23] kvm tools: Add CONSOLE_HV term type and allow it Matt Evans
2011-12-09 6:54 ` [PATCH V2 10/23] kvm tools: Add CONSOLE_HV term type and allow it to be selected Matt Evans
2011-12-09 6:54 ` [PATCH V2 11/23] kvm tools: Fix term_getc(), term_getc_iov() endian Matt Evans
2011-12-09 6:54 ` [PATCH V2 11/23] kvm tools: Fix term_getc(), term_getc_iov() endian bugs Matt Evans
2011-12-09 6:54 ` [PATCH V2 12/23] kvm tools: Allow initrd_check() to match a cpio Matt Evans
2011-12-09 6:54 ` Matt Evans
2011-12-09 6:54 ` [PATCH V2 13/23] kvm tools: Allow load_flat_binary() to load an initrd Matt Evans
2011-12-09 6:54 ` [PATCH V2 13/23] kvm tools: Allow load_flat_binary() to load an initrd alongside Matt Evans
2011-12-09 6:55 ` [PATCH V2 14/23] kvm tools: Initialise PCI before devices start getting Matt Evans
2011-12-09 6:55 ` [PATCH V2 14/23] kvm tools: Initialise PCI before devices start getting registered with PCI Matt Evans
2011-12-09 6:55 ` [PATCH V2 15/23] kvm tools: Perform CPU and firmware setup after Matt Evans
2011-12-09 6:55 ` [PATCH V2 15/23] kvm tools: Perform CPU and firmware setup after devices are added Matt Evans
2011-12-09 6:55 ` [PATCH V2 16/23] kvm tools: Init IRQs after determining nrcpus Matt Evans
2011-12-09 6:55 ` Matt Evans
2011-12-09 6:55 ` [PATCH V2 17/23] kvm tools: Add ability to map guest RAM from hugetlbfs Matt Evans
2011-12-09 6:55 ` Matt Evans
2011-12-09 7:39 ` [PATCH V2 17/23] kvm tools: Add ability to map guest RAM from Sasha Levin
2011-12-09 7:39 ` [PATCH V2 17/23] kvm tools: Add ability to map guest RAM from hugetlbfs Sasha Levin
2011-12-12 5:05 ` [PATCH V2 17/23] kvm tools: Add ability to map guest RAM from Matt Evans
2011-12-12 5:05 ` [PATCH V2 17/23] kvm tools: Add ability to map guest RAM from hugetlbfs Matt Evans
2011-12-09 8:38 ` Pekka Enberg
2011-12-09 8:38 ` Pekka Enberg
2011-12-12 6:19 ` [PATCH V2 17/23] kvm tools: Add ability to map guest RAM from Matt Evans
2011-12-12 6:19 ` [PATCH V2 17/23] kvm tools: Add ability to map guest RAM from hugetlbfs Matt Evans
2011-12-09 8:42 ` Pekka Enberg
2011-12-09 8:42 ` Pekka Enberg
2011-12-12 5:17 ` [PATCH V2 17/23] kvm tools: Add ability to map guest RAM from Matt Evans
2011-12-12 5:17 ` [PATCH V2 17/23] kvm tools: Add ability to map guest RAM from hugetlbfs Matt Evans
2011-12-12 6:06 ` Pekka Enberg
2011-12-12 6:06 ` Pekka Enberg
2011-12-09 6:55 ` [PATCH V2 18/23] kvm tools: Move PCI_MAX_DEVICES to pci.h Matt Evans
2011-12-09 6:55 ` Matt Evans
2011-12-09 6:55 ` [PATCH V2 19/23] kvm tools: Endian-sanitise pci.h and PCI device Matt Evans
2011-12-09 6:55 ` [PATCH V2 19/23] kvm tools: Endian-sanitise pci.h and PCI device setup Matt Evans
2011-12-09 6:55 ` [PATCH V2 20/23] kvm tools: Correctly set virtio-pci bar_size and Matt Evans
2011-12-09 6:55 ` [PATCH V2 20/23] kvm tools: Correctly set virtio-pci bar_size and remove hardwired address Matt Evans
2011-12-09 6:55 ` [PATCH V2 21/23] kvm tools: Add pci__config_{rd,wr}(), pci__find_dev() Matt Evans
2011-12-09 6:55 ` Matt Evans
2011-12-09 6:55 ` [PATCH V2 22/23] kvm tools: Arch-specific define for PCI MMIO allocation Matt Evans
2011-12-09 6:55 ` [PATCH V2 22/23] kvm tools: Arch-specific define for PCI MMIO allocation area Matt Evans
2011-12-09 6:56 ` [PATCH V2 23/23] kvm tools: Create arch-specific kvm_cpu__emulate_{mm}io() Matt Evans
2011-12-09 6:56 ` Matt Evans
2011-12-09 7:53 ` [PATCH V2 23/23] kvm tools: Create arch-specific Sasha Levin
2011-12-09 7:53 ` [PATCH V2 23/23] kvm tools: Create arch-specific kvm_cpu__emulate_{mm}io() Sasha Levin
2011-12-12 1:08 ` Matt Evans
2011-12-12 1:08 ` Matt Evans
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4EE1B084.3010404@ozlabs.org \
--to=matt@ozlabs.org \
--cc=asias.hejun@gmail.com \
--cc=gorcunov@gmail.com \
--cc=kvm-ppc@vger.kernel.org \
--cc=kvm@vger.kernel.org \
--cc=levinsasha928@gmail.com \
--cc=penberg@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.