[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] xen/arm: compile and run libxl/xl
# HG changeset patch # User Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> # Date 1360935142 0 # Node ID bd76879e53ab929f0c990ecfcbc4030c3c0b313a # Parent df1b532019d97fd0097cb749796102a2c876bb24 xen/arm: compile and run libxl/xl Move tsc, rtc, memmap_limit, localtime and shadow settings from libxl__build_pre to libxl__arch_domain_create. Get the console and xenstore pfn's from struct xc_dom_image for autotranslated guests. Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx> Committed-by: Ian Campbell <ian.campbell@xxxxxxxxxx> --- diff -r df1b532019d9 -r bd76879e53ab tools/libxl/libxl_dom.c --- a/tools/libxl/libxl_dom.c Fri Feb 15 13:32:21 2013 +0000 +++ b/tools/libxl/libxl_dom.c Fri Feb 15 13:32:22 2013 +0000 @@ -202,9 +202,7 @@ int libxl__build_pre(libxl__gc *gc, uint libxl_domain_build_info *info, libxl__domain_build_state *state) { libxl_ctx *ctx = libxl__gc_owner(gc); - int tsc_mode; char *xs_domid, *con_domid; - uint32_t rtc_timeoffset; xc_domain_max_vcpus(ctx->xch, domid, info->max_vcpus); @@ -233,49 +231,6 @@ int libxl__build_pre(libxl__gc *gc, uint libxl_set_vcpuaffinity_all(ctx, domid, info->max_vcpus, &info->cpumap); xc_domain_setmaxmem(ctx->xch, domid, info->target_memkb + LIBXL_MAXMEM_CONSTANT); - if (info->type == LIBXL_DOMAIN_TYPE_PV) - xc_domain_set_memmap_limit(ctx->xch, domid, - (info->max_memkb + info->u.pv.slack_memkb)); - switch (info->tsc_mode) { - case LIBXL_TSC_MODE_DEFAULT: - tsc_mode = 0; - break; - case LIBXL_TSC_MODE_ALWAYS_EMULATE: - tsc_mode = 1; - break; - case LIBXL_TSC_MODE_NATIVE: - tsc_mode = 2; - break; - case LIBXL_TSC_MODE_NATIVE_PARAVIRT: - tsc_mode = 3; - break; - default: - abort(); - } - xc_domain_set_tsc_info(ctx->xch, domid, tsc_mode, 0, 0, 0); - if (libxl_defbool_val(info->disable_migrate)) - xc_domain_disable_migrate(ctx->xch, domid); - - rtc_timeoffset = info->rtc_timeoffset; - if (libxl_defbool_val(info->localtime)) { - time_t t; - struct tm *tm; - - t = time(NULL); - tm = localtime(&t); - - rtc_timeoffset += tm->tm_gmtoff; - } - - if (rtc_timeoffset) - xc_domain_set_time_offset(ctx->xch, domid, rtc_timeoffset); - - if (info->type == LIBXL_DOMAIN_TYPE_HVM) { - unsigned long shadow; - shadow = (info->shadow_memkb + 1023) / 1024; - xc_shadow_control(ctx->xch, domid, XEN_DOMCTL_SHADOW_OP_SET_ALLOCATION, NULL, 0, &shadow, 0, NULL); - } - xs_domid = xs_read(ctx->xsh, XBT_NULL, "/tool/xenstored/domid", NULL); state->store_domid = xs_domid ? atoi(xs_domid) : 0; free(xs_domid); @@ -442,8 +397,13 @@ int libxl__build_pv(libxl__gc *gc, uint3 goto out; } - state->console_mfn = xc_dom_p2m_host(dom, dom->console_pfn); - state->store_mfn = xc_dom_p2m_host(dom, dom->xenstore_pfn); + if (xc_dom_feature_translated(dom)) { + state->console_mfn = dom->console_pfn; + state->store_mfn = dom->xenstore_pfn; + } else { + state->console_mfn = xc_dom_p2m_host(dom, dom->console_pfn); + state->store_mfn = xc_dom_p2m_host(dom, dom->xenstore_pfn); + } libxl__file_reference_unmap(&state->pv_kernel); libxl__file_reference_unmap(&state->pv_ramdisk); diff -r df1b532019d9 -r bd76879e53ab tools/libxl/libxl_x86.c --- a/tools/libxl/libxl_x86.c Fri Feb 15 13:32:21 2013 +0000 +++ b/tools/libxl/libxl_x86.c Fri Feb 15 13:32:22 2013 +0000 @@ -248,6 +248,54 @@ int libxl__arch_domain_create(libxl__gc uint32_t domid) { int ret = 0; + int tsc_mode; + uint32_t rtc_timeoffset; + libxl_ctx *ctx = libxl__gc_owner(gc); + + if (d_config->b_info.type == LIBXL_DOMAIN_TYPE_PV) + xc_domain_set_memmap_limit(ctx->xch, domid, + (d_config->b_info.max_memkb + + d_config->b_info.u.pv.slack_memkb)); + + switch (d_config->b_info.tsc_mode) { + case LIBXL_TSC_MODE_DEFAULT: + tsc_mode = 0; + break; + case LIBXL_TSC_MODE_ALWAYS_EMULATE: + tsc_mode = 1; + break; + case LIBXL_TSC_MODE_NATIVE: + tsc_mode = 2; + break; + case LIBXL_TSC_MODE_NATIVE_PARAVIRT: + tsc_mode = 3; + break; + default: + abort(); + } + xc_domain_set_tsc_info(ctx->xch, domid, tsc_mode, 0, 0, 0); + if (libxl_defbool_val(d_config->b_info.disable_migrate)) + xc_domain_disable_migrate(ctx->xch, domid); + rtc_timeoffset = d_config->b_info.rtc_timeoffset; + if (libxl_defbool_val(d_config->b_info.localtime)) { + time_t t; + struct tm *tm; + + t = time(NULL); + tm = localtime(&t); + + rtc_timeoffset += tm->tm_gmtoff; + } + + if (rtc_timeoffset) + xc_domain_set_time_offset(ctx->xch, domid, rtc_timeoffset); + + if (d_config->b_info.type == LIBXL_DOMAIN_TYPE_HVM) { + unsigned long shadow; + shadow = (d_config->b_info.shadow_memkb + 1023) / 1024; + xc_shadow_control(ctx->xch, domid, XEN_DOMCTL_SHADOW_OP_SET_ALLOCATION, NULL, 0, &shadow, 0, NULL); + } + if (d_config->c_info.type == LIBXL_DOMAIN_TYPE_PV && libxl_defbool_val(d_config->b_info.u.pv.e820_host)) { ret = libxl__e820_alloc(gc, domid, d_config); _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |