Patchwork kvm: Switch kvm_update_guest_debug to run_on_cpu

login
register
mail settings
Submitter Jan Kiszka
Date May 19, 2010, 10:28 p.m.
Message ID <4BF4661D.5050108@web.de>
Download mbox | patch
Permalink /patch/53032/
State New
Headers show

Comments

Jan Kiszka - May 19, 2010, 10:28 p.m.
From: Jan Kiszka <jan.kiszka@siemens.com>

Guest debugging under KVM is currently broken once io-threads are
enabled. Easily fixable by switching the fake on_vcpu to the real
run_on_cpu implementation.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 kvm-all.c |   12 +-----------
 1 files changed, 1 insertions(+), 11 deletions(-)
Avi Kivity - May 23, 2010, 11:21 a.m.
On 05/20/2010 01:28 AM, Jan Kiszka wrote:
> From: Jan Kiszka<jan.kiszka@siemens.com>
>
> Guest debugging under KVM is currently broken once io-threads are
> enabled. Easily fixable by switching the fake on_vcpu to the real
> run_on_cpu implementation.
>    

Applied uq/master, thanks.

Patch

diff --git a/kvm-all.c b/kvm-all.c
index c238f54..5684e51 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -1033,16 +1033,6 @@  void kvm_setup_guest_memory(void *start, size_t size)
 }
 
 #ifdef KVM_CAP_SET_GUEST_DEBUG
-static void on_vcpu(CPUState *env, void (*func)(void *data), void *data)
-{
-#ifdef CONFIG_IOTHREAD
-    if (env != cpu_single_env) {
-        abort();
-    }
-#endif
-    func(data);
-}
-
 struct kvm_sw_breakpoint *kvm_find_sw_breakpoint(CPUState *env,
                                                  target_ulong pc)
 {
@@ -1086,7 +1076,7 @@  int kvm_update_guest_debug(CPUState *env, unsigned long reinject_trap)
     kvm_arch_update_guest_debug(env, &data.dbg);
     data.env = env;
 
-    on_vcpu(env, kvm_invoke_set_guest_debug, &data);
+    run_on_cpu(env, kvm_invoke_set_guest_debug, &data);
     return data.err;
 }