From: Don Slutz <dslutz@verizon.com>
To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
xen-devel@lists.xensource.com
Cc: "Wei Liu (Intern)" <wei.liu2@citrix.com>,
Ian Jackson <Ian.Jackson@eu.citrix.com>,
Ian Campbell <Ian.Campbell@citrix.com>
Subject: Re: [PATCH] libxl_set_memory_target: retain the same maxmem offset on top of the current target
Date: Mon, 01 Dec 2014 18:15:34 -0500 [thread overview]
Message-ID: <547CF696.9040009@terremark.com> (raw)
In-Reply-To: <alpine.DEB.2.02.1411251745520.14135@kaball.uk.xensource.com>
On 11/25/14 12:54, Stefano Stabellini wrote:
> In libxl_set_memory_target when setting the new maxmem, retain the same
> offset on top of the current target. The offset includes memory
> allocated by QEMU for rom files.
>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
>
> diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
> index de23fec..8381c3e 100644
> --- a/tools/libxl/libxl.c
> +++ b/tools/libxl/libxl.c
> @@ -4767,10 +4767,12 @@ retry_transaction:
> "%s/memory/videoram", dompath));
> videoram = videoram_s ? atoi(videoram_s) : 0;
>
> - if (enforce) {
> - memorykb = new_target_memkb;
> - rc = xc_domain_setmaxmem(ctx->xch, domid, memorykb +
> - LIBXL_MAXMEM_CONSTANT);
> + libxl_dominfo_init(&ptr);
> + xcinfo2xlinfo(ctx, &info, &ptr);
This fills ptr with uninitialized data. You need to call
xc_domain_getinfolist()
before this. However calling xc_domain_getinfolist() here and retry
of the xenstore transaction, you will adjust this more then one time.
So I think that xc_domain_getinfolist() needs to be called before
the label retry_transaction. However rc is a mess in this routine.
rc = 1 is the normal return (since rc = xc_domain_getinfolist() is
the last setting of rc). So all the rest of "rc =" needs to be adjusted
someway.
-Don Slutz
> +
> + if (enforce && new_target_memkb > 0) {
> + memorykb = ptr.max_memkb - current_target_memkb + new_target_memkb;
> + rc = xc_domain_setmaxmem(ctx->xch, domid, memorykb);
> if (rc != 0) {
> LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR,
> "xc_domain_setmaxmem domid=%d memkb=%d failed "
> @@ -4800,8 +4802,6 @@ retry_transaction:
> goto out;
> }
>
> - libxl_dominfo_init(&ptr);
> - xcinfo2xlinfo(ctx, &info, &ptr);
> uuid = libxl__uuid2string(gc, ptr.uuid);
> libxl__xs_write(gc, t, libxl__sprintf(gc, "/vm/%s/memory", uuid),
> "%"PRIu32, new_target_memkb / 1024);
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel
next prev parent reply other threads:[~2014-12-01 23:15 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-25 17:54 [PATCH] libxl_set_memory_target: retain the same maxmem offset on top of the current target Stefano Stabellini
2014-12-01 23:15 ` Don Slutz [this message]
2014-12-02 11:49 ` Stefano Stabellini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=547CF696.9040009@terremark.com \
--to=dslutz@verizon.com \
--cc=Ian.Campbell@citrix.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.