|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 07 of 23] libxl: introduce a descriminating default value for memkb fields
# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxx>
# Date 1329148132 0
# Node ID 2fef3eddec04dd3a56d651d15adcd1f72a201a1e
# Parent 1ace05e41c39f3620b423056004b709965ff6d80
libxl: introduce a descriminating default value for memkb fields.
Consitently make such fields 64 bit values as used by dominfo.
It is not clear if ->video_memkb and/or shadow_memkb shouldn't be part of
->u.hvm but I have not changed that here.
Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
diff -r 1ace05e41c39 -r 2fef3eddec04 tools/libxl/gentest.py
--- a/tools/libxl/gentest.py Mon Feb 13 15:48:52 2012 +0000
+++ b/tools/libxl/gentest.py Mon Feb 13 15:48:52 2012 +0000
@@ -197,6 +197,7 @@ static void libxl_string_list_rand_init(
}
""")
for ty in builtins + types:
+ if isinstance(ty, idl.Number): continue
if ty.typename not in handcoded:
f.write("static void %s_rand_init(%s);\n" % \
(ty.typename,
diff -r 1ace05e41c39 -r 2fef3eddec04 tools/libxl/libxl.h
--- a/tools/libxl/libxl.h Mon Feb 13 15:48:52 2012 +0000
+++ b/tools/libxl/libxl.h Mon Feb 13 15:48:52 2012 +0000
@@ -253,6 +253,7 @@ typedef LIBXL_TAILQ_ENTRY(struct libxl_e
typedef struct libxl__ctx libxl_ctx;
#define LIBXL_TIMER_MODE_DEFAULT -1
+#define LIBXL_MEMKB_DEFAULT ~0ULL
#include "_libxl_types.h"
diff -r 1ace05e41c39 -r 2fef3eddec04 tools/libxl/libxl_create.c
--- a/tools/libxl/libxl_create.c Mon Feb 13 15:48:52 2012 +0000
+++ b/tools/libxl/libxl_create.c Mon Feb 13 15:48:52 2012 +0000
@@ -70,19 +70,20 @@ void libxl_domain_build_info_init(libxl_
const libxl_domain_create_info *c_info)
{
memset(b_info, '\0', sizeof(*b_info));
- b_info->max_memkb = 32 * 1024;
- b_info->target_memkb = b_info->max_memkb;
b_info->disable_migrate = 0;
b_info->cpuid = NULL;
- b_info->shadow_memkb = 0;
b_info->type = c_info->type;
+ b_info->max_memkb = LIBXL_MEMKB_DEFAULT;
+ b_info->target_memkb = LIBXL_MEMKB_DEFAULT;
+ b_info->shadow_memkb = LIBXL_MEMKB_DEFAULT;
+ b_info->video_memkb = LIBXL_MEMKB_DEFAULT;
+
b_info->device_model_stubdomain = false;
b_info->device_model = NULL;
switch (b_info->type) {
case LIBXL_DOMAIN_TYPE_HVM:
- b_info->video_memkb = 8 * 1024;
b_info->u.hvm.firmware = NULL;
b_info->u.hvm.pae = 1;
b_info->u.hvm.apic = 1;
@@ -132,8 +133,17 @@ int libxl__domain_build_info_setdefault(
libxl_cpumap_set_any(&b_info->cpumap);
}
+ if (b_info->max_memkb == LIBXL_MEMKB_DEFAULT)
+ b_info->max_memkb = 32 * 1024;
+ if (b_info->target_memkb == LIBXL_MEMKB_DEFAULT)
+ b_info->target_memkb = b_info->max_memkb;
+
switch (b_info->type) {
case LIBXL_DOMAIN_TYPE_HVM:
+ if (b_info->shadow_memkb == LIBXL_MEMKB_DEFAULT)
+ b_info->shadow_memkb = 0;
+ if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT)
+ b_info->video_memkb = 8 * 1024;
if (b_info->u.hvm.timer_mode == LIBXL_TIMER_MODE_DEFAULT)
b_info->u.hvm.timer_mode =
LIBXL_TIMER_MODE_NO_DELAY_FOR_MISSED_TICKS;
@@ -152,6 +162,10 @@ int libxl__domain_build_info_setdefault(
break;
case LIBXL_DOMAIN_TYPE_PV:
+ if (b_info->shadow_memkb == LIBXL_MEMKB_DEFAULT)
+ b_info->shadow_memkb = 0;
+ if (b_info->u.pv.slack_memkb == LIBXL_MEMKB_DEFAULT)
+ b_info->u.pv.slack_memkb = 0;
break;
default:
LIBXL__LOG(CTX, LIBXL__LOG_ERROR,
diff -r 1ace05e41c39 -r 2fef3eddec04 tools/libxl/libxl_dom.c
--- a/tools/libxl/libxl_dom.c Mon Feb 13 15:48:52 2012 +0000
+++ b/tools/libxl/libxl_dom.c Mon Feb 13 15:48:52 2012 +0000
@@ -129,11 +129,12 @@ int libxl__build_post(libxl__gc *gc, uin
ents = libxl__calloc(gc, 12 + (info->max_vcpus * 2) + 2, sizeof(char *));
ents[0] = "memory/static-max";
- ents[1] = libxl__sprintf(gc, "%d", info->max_memkb);
+ ents[1] = libxl__sprintf(gc, "%"PRId64, info->max_memkb);
ents[2] = "memory/target";
- ents[3] = libxl__sprintf(gc, "%d", info->target_memkb - info->video_memkb);
+ ents[3] = libxl__sprintf(gc, "%"PRId64,
+ info->target_memkb - info->video_memkb);
ents[4] = "memory/videoram";
- ents[5] = libxl__sprintf(gc, "%d", info->video_memkb);
+ ents[5] = libxl__sprintf(gc, "%"PRId64, info->video_memkb);
ents[6] = "domid";
ents[7] = libxl__sprintf(gc, "%d", domid);
ents[8] = "store/port";
diff -r 1ace05e41c39 -r 2fef3eddec04 tools/libxl/libxl_types.idl
--- a/tools/libxl/libxl_types.idl Mon Feb 13 15:48:52 2012 +0000
+++ b/tools/libxl/libxl_types.idl Mon Feb 13 15:48:52 2012 +0000
@@ -18,6 +18,12 @@ libxl_file_reference = Builtin("file_ref
libxl_hwcap = Builtin("hwcap", passby=PASS_BY_REFERENCE)
#
+# Specific integer types
+#
+
+MemKB = UInt(64, init_val = "LIBXL_MEMKB_DEFAULT")
+
+#
# Constants / Enumerations
#
@@ -147,9 +153,9 @@ libxl_dominfo = Struct("dominfo",[
# Otherwise set to a value guaranteed not to clash with any valid
# SHUTDOWN_* constant.
("shutdown_reason", uint8),
- ("current_memkb", uint64),
- ("shared_memkb", uint64),
- ("max_memkb", uint64),
+ ("current_memkb", MemKB),
+ ("shared_memkb", MemKB),
+ ("max_memkb", MemKB),
("cpu_time", uint64),
("vcpu_max_id", uint32),
("vcpu_online", uint32),
@@ -205,10 +211,10 @@ libxl_domain_build_info = Struct("domain
("cur_vcpus", integer),
("cpumap", libxl_cpumap),
("tsc_mode", libxl_tsc_mode),
- ("max_memkb", uint32),
- ("target_memkb", uint32),
- ("video_memkb", uint32),
- ("shadow_memkb", uint32),
+ ("max_memkb", MemKB),
+ ("target_memkb", MemKB),
+ ("video_memkb", MemKB),
+ ("shadow_memkb", MemKB),
("disable_migrate", bool),
("cpuid", libxl_cpuid_policy_list),
("type", libxl_domain_type),
@@ -262,7 +268,7 @@ libxl_domain_build_info = Struct("domain
("xen_platform_pci", bool),
])),
("pv", Struct(None, [("kernel", libxl_file_reference),
- ("slack_memkb", uint32),
+ ("slack_memkb", MemKB),
("bootloader", string),
("bootloader_args", libxl_string_list),
("cmdline", string),
diff -r 1ace05e41c39 -r 2fef3eddec04 tools/libxl/xl_sxp.c
--- a/tools/libxl/xl_sxp.c Mon Feb 13 15:48:52 2012 +0000
+++ b/tools/libxl/xl_sxp.c Mon Feb 13 15:48:52 2012 +0000
@@ -21,6 +21,7 @@
#include "libxl_osdeps.h"
#include <stdlib.h>
+#include <inttypes.h>
#include "libxl.h"
#include "libxl_utils.h"
@@ -68,8 +69,8 @@ void printf_info_sexp(int domid, libxl_d
printf("\t(build_info)\n");
printf("\t(max_vcpus %d)\n", b_info->max_vcpus);
printf("\t(tsc_mode %s)\n", libxl_tsc_mode_to_string(b_info->tsc_mode));
- printf("\t(max_memkb %d)\n", b_info->max_memkb);
- printf("\t(target_memkb %d)\n", b_info->target_memkb);
+ printf("\t(max_memkb %"PRId64")\n", b_info->max_memkb);
+ printf("\t(target_memkb %"PRId64")\n", b_info->target_memkb);
printf("\t(nomigrate %d)\n", b_info->disable_migrate);
if (c_info->type == LIBXL_DOMAIN_TYPE_PV && b_info->u.pv.bootloader) {
@@ -88,8 +89,8 @@ void printf_info_sexp(int domid, libxl_d
case LIBXL_DOMAIN_TYPE_HVM:
printf("\t\t(hvm\n");
printf("\t\t\t(firmware %s)\n", b_info->u.hvm.firmware);
- printf("\t\t\t(video_memkb %d)\n", b_info->video_memkb);
- printf("\t\t\t(shadow_memkb %d)\n", b_info->shadow_memkb);
+ printf("\t\t\t(video_memkb %"PRId64")\n", b_info->video_memkb);
+ printf("\t\t\t(shadow_memkb %"PRId64")\n", b_info->shadow_memkb);
printf("\t\t\t(pae %d)\n", b_info->u.hvm.pae);
printf("\t\t\t(apic %d)\n", b_info->u.hvm.apic);
printf("\t\t\t(acpi %d)\n", b_info->u.hvm.acpi);
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |