[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] libxl: create PVH guests with max memory assigned



On Fri, Jul 18, 2014 at 07:00:42PM +0200, Roger Pau Monné wrote:
> On 18/07/14 18:49, Konrad Rzeszutek Wilk wrote:
> > On Thu, Jul 17, 2014 at 01:02:22PM +0200, Roger Pau Monne wrote:
> >> Since PVH guests are very similar to HVM guests in terms of memory
> >> management, start the guest with the maximum memory assigned and let
> >> it balloon down.
> > 
> > There is something odd about your email. When I look at in
> > mutt I see the patch, but if I save it and try do git am
> > it complains.
> > 
> > Looking at the file I see:
> > 
> >      
> > U2luY2UgUFZIIGd1ZXN0cyBhcmUgdmVyeSBzaW1pbGFyIHRvIEhWTSBndWVzdHMgaW4gdGVybXMg
> >      
> > b2YgbWVtb3J5Cm1hbmFnZW1lbnQsIHN0YXJ0IHRoZSBndWVzdCB3aXRoIHRoZSBtYXhpbXVtIG1l
> >      
> > bW9yeSBhc3NpZ25lZCBhbmQgbGV0Cml0IGJhbGxvb24gZG93bi4KClNpZ25lZC1vZmYtYnk6IFJv
> >      
> > Z2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgpDYzogSWFuIEphY2tzb24gPGlh
> >      
> > bi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkNjOiBJYW4gQ2FtcGJlbGwgPGlhbi5jYW1wYmVsbEBj
> >      
> > aXRyaXguY29tPgpDYzogTXVrZXNoIFJhdGhvciA8bXVrZXNoLnJhdGhvckBvcmFjbGUuY29tPgot
> > 
> > .. and so.
> > 
> > Have you changed something recently in your git sendmail setup?
> 
> No, I haven't touched my git config since more than two years probably.
> Maybe Citrix smtp server is mangling it?
> 
> Anyway, I'm attaching a copy, I hope you will be able to fetch it.

And I can do better:

Tested-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>

It makes PVH guests with maxmem != memory boot

> 
> Roger.
> 

> >From 59227b7a8fd3b891259a8a2b3154e17c3b5651d7 Mon Sep 17 00:00:00 2001
> From: Roger Pau Monne <roger.pau@xxxxxxxxxx>
> Date: Tue, 8 Jul 2014 10:35:20 +0200
> Subject: [PATCH] libxl: create PVH guests with max memory assigned
> MIME-Version: 1.0
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 8bit
> 
> Since PVH guests are very similar to HVM guests in terms of memory
> management, start the guest with the maximum memory assigned and let
> it balloon down.
> 
> Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
> Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
> Cc: Ian Campbell <ian.campbell@xxxxxxxxxx>
> Cc: Mukesh Rathor <mukesh.rathor@xxxxxxxxxx>
> ---
>  tools/libxl/libxl_dom.c |   13 ++++++++++---
>  1 files changed, 10 insertions(+), 3 deletions(-)
> 
> diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c
> index 661999c..eada87d 100644
> --- a/tools/libxl/libxl_dom.c
> +++ b/tools/libxl/libxl_dom.c
> @@ -233,6 +233,7 @@ int libxl__build_pre(libxl__gc *gc, uint32_t domid,
>      libxl_domain_build_info *const info = &d_config->b_info;
>      libxl_ctx *ctx = libxl__gc_owner(gc);
>      char *xs_domid, *con_domid;
> +    unsigned long mem;
>      int rc;
>  
>      if (xc_domain_max_vcpus(ctx->xch, domid, info->max_vcpus) != 0) {
> @@ -263,8 +264,12 @@ int libxl__build_pre(libxl__gc *gc, uint32_t domid,
>      libxl_domain_set_nodeaffinity(ctx, domid, &info->nodemap);
>      libxl_set_vcpuaffinity_all(ctx, domid, info->max_vcpus, &info->cpumap);
>  
> -    if (xc_domain_setmaxmem(ctx->xch, domid, info->target_memkb +
> -        LIBXL_MAXMEM_CONSTANT) < 0) {
> +    if (info->type == LIBXL_DOMAIN_TYPE_PV)
> +        mem = libxl_defbool_val(d_config->c_info.pvh) ? info->max_memkb :
> +                                                        info->target_memkb;
> +    else
> +        mem = info->target_memkb;
> +    if (xc_domain_setmaxmem(ctx->xch, domid, mem + LIBXL_MAXMEM_CONSTANT) < 
> 0) {
>          LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "Couldn't set max memory");
>          return ERROR_FAIL;
>      }
> @@ -370,6 +375,7 @@ int libxl__build_pv(libxl__gc *gc, uint32_t domid,
>  {
>      libxl_ctx *ctx = libxl__gc_owner(gc);
>      struct xc_dom_image *dom;
> +    unsigned long mem;
>      int ret;
>      int flags = 0;
>  
> @@ -440,7 +446,8 @@ int libxl__build_pv(libxl__gc *gc, uint32_t domid,
>          LOGE(ERROR, "libxl__arch_domain_init_hw_description failed");
>          goto out;
>      }
> -    if ( (ret = xc_dom_mem_init(dom, info->target_memkb / 1024)) != 0 ) {
> +    mem = state->pvh_enabled ? info->max_memkb : info->target_memkb;
> +    if ( (ret = xc_dom_mem_init(dom, mem / 1024)) != 0 ) {
>          LOGE(ERROR, "xc_dom_mem_init failed");
>          goto out;
>      }
> -- 
> 1.7.7.5 (Apple Git-26)
> 


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.