]> xenbits.xensource.com Git - people/vhanquez/xen-unstable.git/commitdiff
libxl: Specify the target ram size to Qemu (new) when calling it
authorAnthony PERARD <anthony.perard@citrix.com>
Thu, 6 Jan 2011 14:27:33 +0000 (14:27 +0000)
committerAnthony PERARD <anthony.perard@citrix.com>
Thu, 6 Jan 2011 14:27:33 +0000 (14:27 +0000)
This patch adds target_ram in device_model_info structure, to be used in
libxl_build_device_model_args_new. Qemu upstream needs to know about it.

It introduces also libxl__sizekb_to_mb to convert size from KB to MB by
rounding up the result.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
tools/libxl/libxl.c
tools/libxl/libxl.idl
tools/libxl/libxl_utils.h
tools/libxl/xl_cmdimpl.c

index 2c3fb0f72f1228b18c266a8962f65d0bf0aa7e3d..6caa147bfda5d15946fa33ee855473a612dbbf47 100644 (file)
@@ -1390,6 +1390,10 @@ static char ** libxl_build_device_model_args_new(libxl__gc *gc,
     else
         flexarray_set(dm_args, num++, "xenfv");
 
+    /* RAM Size */
+    flexarray_set(dm_args, num++, "-m");
+    flexarray_set(dm_args, num++, libxl__sprintf(gc, "%d", info->target_ram));
+
     if (info->type == XENFV) {
         disks = libxl_device_disk_list(libxl__gc_owner(gc), info->domid, &nb);
         for (i; i < nb; i++) {
index 81fcfd9a5045dc0ccb018aed5541dbedd3a96ce2..e6a8805584b93511ab2d8906b72bf4d2d6e9c609 100644 (file)
@@ -140,6 +140,7 @@ libxl_device_model_info = Struct("device_model_info",[
     ("device_model",     string),
     ("saved_state",      string),
     ("type",             libxl_qemu_machine_type),
+    ("target_ram",       uint32),
     ("videoram",         integer,           False, "size of the videoram in MB"),
     ("stdvga",           bool,              False, "stdvga enabled or disabled"),
     ("vnc",              bool,              False, "vnc enabled or disabled"),
index 075197e4cb79a6835ce1c6c24f21288b36e83fa3..3ec67e5eb07f6e1e6499c07265f1cacb8329e044 100644 (file)
@@ -85,5 +85,9 @@ void libxl_cpumap_reset(libxl_cpumap *cpumap, int cpu);
 
 int libxl_cpuarray_alloc(libxl_ctx *ctx, libxl_cpuarray *cpuarray);
 
+static inline uint32_t libxl__sizekb_to_mb(uint32_t s) {
+    return (s + 1023) / 1024;
+}
+
 #endif
 
index 9d55259bdfeb8afa5b75313d6ad6747abfcae504..b7d30507388a2d812e050fc1d35955320f0ff95a 100644 (file)
@@ -359,7 +359,8 @@ static void init_dm_info(libxl_device_model_info *dm_info,
 
     dm_info->dom_name = strdup(c_info->name);
     dm_info->device_model = strdup("qemu-dm");
-    dm_info->videoram = b_info->video_memkb / 1024;
+    dm_info->target_ram = libxl__sizekb_to_mb(b_info->target_memkb);
+    dm_info->videoram = libxl__sizekb_to_mb(b_info->video_memkb);
     dm_info->apic = b_info->u.hvm.apic;
     dm_info->vcpus = b_info->max_vcpus;
     dm_info->vcpu_avail = b_info->cur_vcpus;