Skip to contentSkip to conversation

Simplify cpu_exec_all to tcg_exec_all

PATCH Applied Jan Kiszka 4 participants 4 messages Sep 26, 2011 – Nov 1, 2011

lore
Share & tools
lore

Jan Kiszka

author
#0 lore raw

PATCH 1/1 Simplify cpu_exec_all to tcg_exec_all

After the removal of the non-threaded mode cpu_exec_all is now only used by TCG. Refactor it accordingly, also dropping its unused return value.

---
 cpus.c |   14 +++++---------
 cpus.h |    1 -
 2 files changed, 5 insertions(+), 10 deletions(-)
cpus.c +5 -9
index 8978779..f983033 100644
@@ -664,6 +664,8 @@ static void *qemu_kvm_cpu_thread_fn(void *arg)
     return NULL;
 }
 
+static void tcg_exec_all(void);
+
 static void *qemu_tcg_cpu_thread_fn(void *arg)
 {
     CPUState *env = arg;
@@ -685,7 +687,7 @@ static void *qemu_tcg_cpu_thread_fn(void *arg)
     }
 
     while (1) {
-        cpu_exec_all();
+        tcg_exec_all();
         if (use_icount && qemu_next_icount_deadline() <= 0) {
             qemu_notify_event();
         }
@@ -925,7 +927,7 @@ static int tcg_cpu_exec(CPUState *env)
     return ret;
 }
 
-bool cpu_exec_all(void)
+static void tcg_exec_all(void)
 {
     int r;
 
@@ -942,12 +944,7 @@ bool cpu_exec_all(void)
                           (env->singlestep_enabled & SSTEP_NOTIMER) == 0);
 
         if (cpu_can_run(env)) {
-            if (kvm_enabled()) {
-                r = kvm_cpu_exec(env);
-                qemu_kvm_eat_signals(env);
-            } else {
-                r = tcg_cpu_exec(env);
-            }
+            r = tcg_cpu_exec(env);
             if (r == EXCP_DEBUG) {
                 cpu_handle_guest_debug(env);
                 break;
@@ -957,7 +954,6 @@ bool cpu_exec_all(void)
         }
     }
     exit_request = 0;
-    return !all_cpu_threads_idle();
 }
 
 void set_numa_modes(void)
cpus.h +0 -1
index 5885885..bb91684 100644
@@ -15,7 +15,6 @@ void cpu_synchronize_all_post_init(void);
 /* vl.c */
 extern int smp_cores;
 extern int smp_threads;
-bool cpu_exec_all(void);
 void set_numa_modes(void);
 void set_cpu_log(const char *optarg);
 void set_cpu_log_filename(const char *optarg);
Signature · 1 line
1.7.3.4
#1 lore raw

i have sent a patch, which duplicated the function of this patch.

this one was not approved yet??

thanks,
Jun

Quoted 78 lines · Jan Kiszka

After the removal of the non-threaded mode cpu_exec_all is now only used by TCG. Refactor it accordingly, also dropping its unused return value.

---
 cpus.c |   14 +++++---------
 cpus.h |    1 -

 2 files changed, 5 insertions(+), 10 deletions(-)
cpus.c +5 -9
index 8978779..f983033 100644
@@ -664,6 +664,8 @@ static void *qemu_kvm_cpu_thread_fn(void *arg)
     return NULL;
  }
 
+static void tcg_exec_all(void);
+
  static void *qemu_tcg_cpu_thread_fn(void *arg)
  {
     CPUState *env = arg;
@@ -685,7 +687,7 @@ static void *qemu_tcg_cpu_thread_fn(void *arg)
     }
 
     while (1) {
-        cpu_exec_all();
+        tcg_exec_all();
         if (use_icount && qemu_next_icount_deadline() <= 0) {
             qemu_notify_event();
         }
@@ -925,7 +927,7 @@ static int tcg_cpu_exec(CPUState *env)
     return ret;
  }
 
-bool cpu_exec_all(void)
+static void tcg_exec_all(void)
  {
     int r;
 
@@ -942,12 +944,7 @@ bool cpu_exec_all(void)
                           (env->singlestep_enabled & SSTEP_NOTIMER) == 0);
 
         if (cpu_can_run(env)) {
-            if (kvm_enabled()) {
-                r = kvm_cpu_exec(env);
-                qemu_kvm_eat_signals(env);
-            } else {
-                r = tcg_cpu_exec(env);
-            }
+            r = tcg_cpu_exec(env);
             if (r == EXCP_DEBUG) {
                 cpu_handle_guest_debug(env);
                 break;
@@ -957,7 +954,6 @@ bool cpu_exec_all(void)
         }
     }
     exit_request = 0;
-    return !all_cpu_threads_idle();
  }
 
  void set_numa_modes(void)
cpus.h +0 -2
index 5885885..bb91684 100644
@@ -15,7 +15,6 @@ void cpu_synchronize_all_post_init(void);
  /* vl.c */
  extern int smp_cores;
  extern int smp_threads;
-bool cpu_exec_all(void);
  void set_numa_modes(void);
  void set_cpu_log(const char *optarg);
  void set_cpu_log_filename(const char *optarg);
--

1.7.3.4

#2 lore raw
Quoted 3 lines · Jun Koi

i have sent a patch, which duplicated the function of this patch.

this one was not approved yet??

I assume my patch is in some queue, just waiting to be reviewed and applied.

Jan

#3 lore raw
In reply to Jan Kiszka
Quoted 4 lines · Jan Kiszka

After the removal of the non-threaded mode cpu_exec_all is now only used by TCG. Refactor it accordingly, also dropping its unused return value.

Applied. Thanks.

Regards,

Anthony Liguori

Quoted 70 lines
---
  cpus.c |   14 +++++---------
  cpus.h |    1 -
  2 files changed, 5 insertions(+), 10 deletions(-)
cpus.c +5 -9
index 8978779..f983033 100644
@@ -664,6 +664,8 @@ static void *qemu_kvm_cpu_thread_fn(void *arg)
      return NULL;
  }
 
+static void tcg_exec_all(void);
+
  static void *qemu_tcg_cpu_thread_fn(void *arg)
  {
      CPUState *env = arg;
@@ -685,7 +687,7 @@ static void *qemu_tcg_cpu_thread_fn(void *arg)
      }
 
      while (1) {
-        cpu_exec_all();
+        tcg_exec_all();
          if (use_icount&&  qemu_next_icount_deadline()<= 0) {
              qemu_notify_event();
          }
@@ -925,7 +927,7 @@ static int tcg_cpu_exec(CPUState *env)
      return ret;
  }
 
-bool cpu_exec_all(void)
+static void tcg_exec_all(void)
  {
      int r;
 
@@ -942,12 +944,7 @@ bool cpu_exec_all(void)
                            (env->singlestep_enabled&  SSTEP_NOTIMER) == 0);
 
          if (cpu_can_run(env)) {
-            if (kvm_enabled()) {
-                r = kvm_cpu_exec(env);
-                qemu_kvm_eat_signals(env);
-            } else {
-                r = tcg_cpu_exec(env);
-            }
+            r = tcg_cpu_exec(env);
              if (r == EXCP_DEBUG) {
                  cpu_handle_guest_debug(env);
                  break;
@@ -957,7 +954,6 @@ bool cpu_exec_all(void)
          }
      }
      exit_request = 0;
-    return !all_cpu_threads_idle();
  }
 
  void set_numa_modes(void)
cpus.h +0 -1
index 5885885..bb91684 100644
@@ -15,7 +15,6 @@ void cpu_synchronize_all_post_init(void);
  /* vl.c */
  extern int smp_cores;
  extern int smp_threads;
-bool cpu_exec_all(void);
  void set_numa_modes(void);
  void set_cpu_log(const char *optarg);
  void set_cpu_log_filename(const char *optarg);