[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 8 of 8] libxl: proper accounting for the videoram
libxl: proper accounting for the videoram Remove the videoram from the memory target of the domains consistently, leave the total amount of memory in maxmem. Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> diff -r d740144dfc1c tools/libxl/libxl.c --- a/tools/libxl/libxl.c Thu Aug 26 18:56:19 2010 +0100 +++ b/tools/libxl/libxl.c Thu Aug 26 18:56:47 2010 +0100 @@ -2865,11 +2865,12 @@ retry_transaction: libxl_xs_write(&gc, t, libxl_sprintf(&gc, "%s/memory/static-max", dompath), "%"PRIu32, target_memkb); } - rc = xc_domain_memory_set_pod_target(ctx->xch, domid, (target_memkb - videoram) / 4, NULL, NULL, NULL); + target_memkb -= videoram; + rc = xc_domain_memory_set_pod_target(ctx->xch, domid, target_memkb / 4, NULL, NULL, NULL); if (rc != 0) { XL_LOG_ERRNO(ctx, XL_LOG_ERROR, "xc_domain_memory_set_pod_target domid=%d, memkb=%d " - "failed rc=%d\n", domid, (target_memkb - videoram) / 4, + "failed rc=%d\n", domid, target_memkb / 4, rc); abort = 1; goto out; @@ -2977,11 +2978,12 @@ retry_transaction: libxl_xs_write(&gc, t, libxl_sprintf(&gc, "%s/memory/static-max", dompath), "%"PRIu32, memorykb); } - rc = xc_domain_memory_set_pod_target(ctx->xch, domid, (new_target_memkb - videoram) / 4, NULL, NULL, NULL); + new_target_memkb -= videoram; + rc = xc_domain_memory_set_pod_target(ctx->xch, domid, new_target_memkb / 4, NULL, NULL, NULL); if (rc != 0) { XL_LOG_ERRNO(ctx, XL_LOG_ERROR, "xc_domain_memory_set_pod_target domid=%d, memkb=%d " - "failed rc=%d\n", domid, (new_target_memkb - videoram) / 4, + "failed rc=%d\n", domid, new_target_memkb / 4, rc); abort = 1; goto out; diff -r d740144dfc1c tools/libxl/libxl_dom.c --- a/tools/libxl/libxl_dom.c Thu Aug 26 18:56:19 2010 +0100 +++ b/tools/libxl/libxl_dom.c Thu Aug 26 18:56:47 2010 +0100 @@ -100,7 +100,7 @@ int build_post(libxl_ctx *ctx, uint32_t ents[0] = "memory/static-max"; ents[1] = libxl_sprintf(&gc, "%d", info->max_memkb); ents[2] = "memory/target"; - ents[3] = libxl_sprintf(&gc, "%d", info->target_memkb); + ents[3] = libxl_sprintf(&gc, "%d", info->target_memkb - info->video_memkb); ents[4] = "memory/videoram"; ents[5] = libxl_sprintf(&gc, "%d", info->video_memkb); ents[6] = "domid"; @@ -230,7 +230,7 @@ int build_hvm(libxl_ctx *ctx, uint32_t d ret = xc_hvm_build_target_mem( ctx->xch, domid, - (info->max_memkb - info->video_memkb) / 1024, + info->max_memkb / 1024, (info->target_memkb - info->video_memkb) / 1024, libxl_abs_path(&gc, (char *)info->kernel.path, libxl_xenfirmwaredir_path())); _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |