[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] libxl: remove LIBXL_MAXMEM_CONSTANT
On Wed, 25 Feb 2015, Don Slutz wrote: > 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. That is true, in fact is not even a single emulated NIC in my tests. I can either ask for a backport of c1d322e6048796296555dd36fdd102d7fa2f50bf "xen-hvm: increase maxmem before calling xc_domain_populate_physmap" to all QEMU stable branches, or we just have to keep this around for now and maybe just add a comment on why it is needed. > > 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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |