| Introduce a minimum value for the memory assigned to dom0.
Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
diff -r 101149a58c1d tools/libxl/libxl.c
--- a/tools/libxl/libxl.c       Wed Sep 01 13:04:21 2010 +0100
+++ b/tools/libxl/libxl.c       Wed Sep 01 13:04:50 2010 +0100
@@ -2815,6 +2815,12 @@ int libxl_set_memory_target(libxl_ctx *c
     char *uuid;
     xs_transaction_t t;
 
+    if (!domid && target_memkb < LIBXL_MIN_DOM0_MEM) {
+        XL_LOG(ctx, XL_LOG_ERROR,
+                "new target for dom0 is below the minimum threshold\n");
+        return ERROR_NOMEM;
+    }
+
 retry_transaction:
     t = xs_transaction_start(ctx->xsh);
 
@@ -2967,6 +2973,12 @@ retry_transaction:
         abort = 1;
         goto out;
     }
+    if (!domid && new_target_memkb < LIBXL_MIN_DOM0_MEM) {
+        XL_LOG(ctx, XL_LOG_ERROR,
+                "new target for dom0 is below the minimum threshold\n");
+        abort = 1;
+        goto out;
+    }
 
     libxl_xs_write(&gc, t, libxl_sprintf(&gc, "%s/memory/target",
                 dompath), "%"PRIu32, new_target_memkb);
diff -r 101149a58c1d tools/libxl/libxl_internal.h
--- a/tools/libxl/libxl_internal.h      Wed Sep 01 13:04:21 2010 +0100
+++ b/tools/libxl/libxl_internal.h      Wed Sep 01 13:04:50 2010 +0100
@@ -43,6 +43,7 @@
 #define LIBXL_MAXMEM_CONSTANT 1024
 #define LIBXL_PV_EXTRA_MEMORY 1024
 #define LIBXL_HVM_EXTRA_MEMORY 2048
+#define LIBXL_MIN_DOM0_MEM (128*1024)
 #define QEMU_SIGNATURE "QemuDeviceModelRecord"
 
 #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 |