All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] don't call cpu_sychronize_state from reset handlers
@ 2009-09-02 21:18 Glauber Costa
  0 siblings, 0 replies; only message in thread
From: Glauber Costa @ 2009-09-02 21:18 UTC (permalink / raw)
  To: qemu-devel; +Cc: aliguori

Doing this will make the vcpu ioctl be issued from the I/O thread, instead
of cpu thread. The correct behaviour is to call it from within the cpu thread,
as soon as we are ready to go.

Signed-off-by: Glauber Costa <glommer@redhat.com>
---
 hw/apic.c |    2 --
 vl.c      |    7 ++++++-
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/hw/apic.c b/hw/apic.c
index 2c414c1..9f1d25e 100644
--- a/hw/apic.c
+++ b/hw/apic.c
@@ -938,8 +938,6 @@ static void apic_reset(void *opaque)
     APICState *s = opaque;
     int bsp;
 
-    cpu_synchronize_state(s->cpu_env);
-
     bsp = cpu_is_bsp(s->cpu_env);
     s->apicbase = 0xfee00000 |
         (bsp ? MSR_IA32_APICBASE_BSP : 0) | MSR_IA32_APICBASE_ENABLE;
diff --git a/vl.c b/vl.c
index accd69e..ff6a597 100644
--- a/vl.c
+++ b/vl.c
@@ -3759,10 +3759,12 @@ static void *kvm_cpu_thread_fn(void *arg)
     while (!qemu_system_ready)
         qemu_cond_timedwait(&qemu_system_cond, &qemu_global_mutex, 100);
 
+    cpu_synchronize_state(env);
+
     while (1) {
+        qemu_wait_io_event(env);
         if (cpu_can_run(env))
             qemu_cpu_exec(env);
-        qemu_wait_io_event(env);
     }
 
     return NULL;
@@ -3787,6 +3789,9 @@ static void *tcg_cpu_thread_fn(void *arg)
     while (!qemu_system_ready)
         qemu_cond_timedwait(&qemu_system_cond, &qemu_global_mutex, 100);
 
+    for (env = first_cpu; env != NULL; env = env->next_cpu) {
+        cpu_synchronize_state(env);
+    }
     while (1) {
         tcg_cpu_exec();
         qemu_wait_io_event(cur_cpu);
-- 
1.6.2.2

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2009-09-02 20:52 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-09-02 21:18 [Qemu-devel] [PATCH] don't call cpu_sychronize_state from reset handlers Glauber Costa

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.