[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 10 of 27 V4] libxl: introduce a descriminating default value for memkb fields
# HG changeset patch # User Ian Campbell <ian.campbell@xxxxxxxxxx> # Date 1330533035 0 # Node ID 95e87306617eb179741b03f31bb16c2245789322 # Parent 096829acb3693eb30787ad859775adb9064fe42c 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> Acked-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> diff -r 096829acb369 -r 95e87306617e tools/libxl/gentest.py --- a/tools/libxl/gentest.py Wed Feb 29 16:30:35 2012 +0000 +++ b/tools/libxl/gentest.py Wed Feb 29 16:30:35 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 096829acb369 -r 95e87306617e tools/libxl/libxl.h --- a/tools/libxl/libxl.h Wed Feb 29 16:30:35 2012 +0000 +++ b/tools/libxl/libxl.h Wed Feb 29 16:30:35 2012 +0000 @@ -246,6 +246,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 096829acb369 -r 95e87306617e tools/libxl/libxl_create.c --- a/tools/libxl/libxl_create.c Wed Feb 29 16:30:35 2012 +0000 +++ b/tools/libxl/libxl_create.c Wed Feb 29 16:30:35 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.bios = 0; b_info->u.hvm.pae = 1; @@ -133,8 +134,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; @@ -153,6 +163,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 096829acb369 -r 95e87306617e tools/libxl/libxl_dom.c --- a/tools/libxl/libxl_dom.c Wed Feb 29 16:30:35 2012 +0000 +++ b/tools/libxl/libxl_dom.c Wed Feb 29 16:30:35 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 096829acb369 -r 95e87306617e tools/libxl/libxl_types.idl --- a/tools/libxl/libxl_types.idl Wed Feb 29 16:30:35 2012 +0000 +++ b/tools/libxl/libxl_types.idl Wed Feb 29 16:30:35 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 # @@ -170,9 +176,9 @@ libxl_dominfo = Struct("dominfo",[ # Otherwise set to a value guaranteed not to clash with any valid # LIBXL_SHUTDOWN_REASON_* constant. ("shutdown_reason", libxl_shutdown_reason), - ("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), @@ -228,10 +234,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), @@ -286,7 +292,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 096829acb369 -r 95e87306617e tools/libxl/xl_sxp.c --- a/tools/libxl/xl_sxp.c Wed Feb 29 16:30:35 2012 +0000 +++ b/tools/libxl/xl_sxp.c Wed Feb 29 16:30:35 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@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |