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

Re: [Xen-devel] [PATCH] libxl: remove LIBXL_MAXMEM_CONSTANT



On 02/25/15 10:07, Stefano Stabellini wrote:
> LIBXL_MAXMEM_CONSTANT is used to increase the maxmem setting for a
> domain by a constant amount. As it is not clear the reason why we should
> be doing this, remove the constant.
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
> CC: mlatimer@xxxxxxxx
> CC: ian.campbell@xxxxxxxxxx
> ---

I think that some sort of link to commit 901230f in QEMU:

----
commit 901230fd8ce053cc21312a2eca2f3ba9f1d103f2
Author: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Date:   Wed Dec 3 08:15:19 2014 -0500

    xen-hvm: increase maxmem before calling xc_domain_populate_physmap

    Increase maxmem before calling xc_domain_populate_physmap_exact to
    avoid the risk of running out of guest memory. This way we can also
    avoid complex memory calculations in libxl at domain construction
    time.

    This patch fixes an abort() when assigning more than 4 NICs to a VM.

    upstream-commit-id: c1d322e6048796296555dd36fdd102d7fa2f50bf

    Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
    Signed-off-by: Don Slutz <dslutz@xxxxxxxxxxx>
----

Because after this patch and without a "correct" QEMU, the number of
e1000 NICs a guest can use is less then 4.

   -Don Slutz


>  tools/libxl/libxl.c          |    9 ++++-----
>  tools/libxl/libxl_dom.c      |    3 +--
>  tools/libxl/libxl_internal.h |    1 -
>  3 files changed, 5 insertions(+), 8 deletions(-)
> 
> diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
> index b9a1941..9556a92 100644
> --- a/tools/libxl/libxl.c
> +++ b/tools/libxl/libxl.c
> @@ -4572,11 +4572,11 @@ int libxl_domain_setmaxmem(libxl_ctx *ctx, uint32_t 
> domid, uint32_t max_memkb)
>          LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "memory_static_max must be 
> greater than or or equal to memory_dynamic_max\n");
>          goto out;
>      }
> -    rc = xc_domain_setmaxmem(ctx->xch, domid, max_memkb + 
> LIBXL_MAXMEM_CONSTANT);
> +    rc = xc_domain_setmaxmem(ctx->xch, domid, max_memkb);
>      if (rc != 0) {
>          LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR,
>                  "xc_domain_setmaxmem domid=%d memkb=%d failed "
> -                "rc=%d\n", domid, max_memkb + LIBXL_MAXMEM_CONSTANT, rc);
> +                "rc=%d\n", domid, max_memkb, rc);
>          goto out;
>      }
>  
> @@ -4796,12 +4796,11 @@ retry_transaction:
>  
>      if (enforce) {
>          memorykb = new_target_memkb + videoram;
> -        rc = xc_domain_setmaxmem(ctx->xch, domid, memorykb +
> -                LIBXL_MAXMEM_CONSTANT);
> +        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 "
> -                    "rc=%d\n", domid, memorykb + LIBXL_MAXMEM_CONSTANT, rc);
> +                    "rc=%d\n", domid, memorykb, rc);
>              abort_transaction = 1;
>              goto out;
>          }
> diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c
> index a16d4a1..923ba5c 100644
> --- a/tools/libxl/libxl_dom.c
> +++ b/tools/libxl/libxl_dom.c
> @@ -408,8 +408,7 @@ int libxl__build_pre(libxl__gc *gc, uint32_t domid,
>          }
>      }
>  
> -    if (xc_domain_setmaxmem(ctx->xch, domid, info->target_memkb +
> -        LIBXL_MAXMEM_CONSTANT) < 0) {
> +    if (xc_domain_setmaxmem(ctx->xch, domid, info->target_memkb) < 0) {
>          LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "Couldn't set max memory");
>          return ERROR_FAIL;
>      }
> diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
> index 934465a..d5c5b68 100644
> --- a/tools/libxl/libxl_internal.h
> +++ b/tools/libxl/libxl_internal.h
> @@ -89,7 +89,6 @@
>  #define LIBXL_QEMU_BODGE_TIMEOUT 2
>  #define LIBXL_XENCONSOLE_LIMIT 1048576
>  #define LIBXL_XENCONSOLE_PROTOCOL "vt100"
> -#define LIBXL_MAXMEM_CONSTANT 1024
>  #define LIBXL_PV_EXTRA_MEMORY 1024
>  #define LIBXL_HVM_EXTRA_MEMORY 2048
>  #define LIBXL_MIN_DOM0_MEM (128*1024)
> 

_______________________________________________
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®.