qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH V10 05/15] xen: Add xenfv machine


From: Anthony Liguori
Subject: Re: [Qemu-devel] [PATCH V10 05/15] xen: Add xenfv machine
Date: Thu, 24 Feb 2011 11:31:18 -0600
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.15) Gecko/20101027 Lightning/1.0b1 Thunderbird/3.0.10

On 02/02/2011 08:49 AM, address@hidden wrote:
From: Anthony PERARD<address@hidden>

Introduce the Xen FV (Fully Virtualized) machine to Qemu, some more Xen
specific call will be added in further patches.

Signed-off-by: Anthony PERARD<address@hidden>
---
  hw/pc.c      |   19 +++++++++++++++++--
  hw/pc_piix.c |   21 ++++++++++++++++++++-
  hw/xen.h     |    4 ++++
  3 files changed, 41 insertions(+), 3 deletions(-)

diff --git a/hw/pc.c b/hw/pc.c
index 4dfdc0b..ab9d365 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -41,6 +41,7 @@
  #include "sysemu.h"
  #include "blockdev.h"
  #include "ui/qemu-spice.h"
+#include "xen.h"

  /* output Bochs bios info messages */
  //#define DEBUG_BIOS
@@ -906,7 +907,11 @@ static void pc_cpu_reset(void *opaque)
      CPUState *env = opaque;

      cpu_reset(env);
-    env->halted = !cpu_is_bsp(env);
+    if (!xen_enabled()) {
+        env->halted = !cpu_is_bsp(env);
+    } else {
+        env->halted = 1;
+    }
  }

  static CPUState *pc_new_cpu(const char *cpu_model)
@@ -940,7 +945,12 @@ void pc_cpus_init(const char *cpu_model)
  #endif
      }

-    for(i = 0; i<  smp_cpus; i++) {
+    if (!xen_enabled()) {
+        for(i = 0; i<  smp_cpus; i++) {
+            pc_new_cpu(cpu_model);
+        }
+    } else {
+        /* Xen require only one Qemu VCPU */
          pc_new_cpu(cpu_model);
      }
  }
@@ -968,6 +978,11 @@ void pc_memory_init(ram_addr_t ram_size,
      *above_4g_mem_size_p = above_4g_mem_size;
      *below_4g_mem_size_p = below_4g_mem_size;

+    if (xen_enabled()) {
+        /* Nothing to do for Xen */
+        return;
+    }
+
  #if TARGET_PHYS_ADDR_BITS == 32
      if (above_4g_mem_size>  0) {
          hw_error("To much RAM for 32-bit physical address");
diff --git a/hw/pc_piix.c b/hw/pc_piix.c
index 7b74473..0ab8907 100644
--- a/hw/pc_piix.c
+++ b/hw/pc_piix.c
@@ -36,6 +36,10 @@
  #include "sysbus.h"
  #include "arch_init.h"
  #include "blockdev.h"
+#include "xen.h"
+#ifdef CONFIG_XEN
+#  include "xen/hvm/hvm_info_table.h"
+#endif

Admittedly a nit, but isn't this a system header?

Regards,

Anthony Liguori



reply via email to

[Prev in Thread] Current Thread [Next in Thread]