From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: HVM support for e820_host (Was: Bug: Limitation of <=2GB RAM in domU persists with 4.3.0) Date: Tue, 3 Sep 2013 17:30:21 -0400 Message-ID: <20130903213021.GA14453@phenom.dumpdata.com> References: <1374798084.10269.2.camel@hastur.hellion.org.uk> <20130729180431.GQ5848@phenom.dumpdata.com> <20130903145934.GC1487@konrad-lan.dumpdata.com> <52263CBD.1090402@bobich.net> <52264826.3010402@bobich.net> <52264B64.1080302@bobich.net> <20130903211058.GA14214@phenom.dumpdata.com> <5226539C.4000906@bobich.net> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <5226539C.4000906@bobich.net> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Gordan Bobic Cc: xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org On Tue, Sep 03, 2013 at 10:24:44PM +0100, Gordan Bobic wrote: > On 09/03/2013 10:10 PM, Konrad Rzeszutek Wilk wrote: > >On Tue, Sep 03, 2013 at 09:49:40PM +0100, Gordan Bobic wrote: > >>I spoke too soon - even with e820_host=0, the same error occurs. > >>What did I break? The code in question is this: > >> > >>if (libxl_defbool_val(d_config->b_info.e820_host)) { > >> ret = libxl__e820_alloc(gc, domid, d_config); > >> if (ret) { > >> LIBXL__LOG_ERRNO(gc->owner, LIBXL__LOG_ERROR, > >> "Failed while collecting E820 with: %d (errno:%d)\n", > >> ret, errno); > >> } > >>} > >> > >>With e820_host=0, that outer black should evaluate to false, should > >>it not? In libxl_create.c, if I am understanding the code correctly, > >>e820_host is defaulted to false, too. What am I missing? Does your config have 'pci' in it? The patch you sent had this: + if (d_config->num_pcidevs) + libxl_defbool_set(&b_info->e820_host, true); Which means that even if you did not have e820_host it will be automatically set if you have PCI devices. > > > >Just sent you an email but I believe what is failing is: > > > >241 rc = xc_domain_set_memory_map(ctx->xch, domid, map, nr); > > But with e820_host=0 set in the config, libxl__e820_alloc() should > not be getting called in the first place. That function only gets > called from line 303, inside that if block I pasted above. That is > what is puzzling me. > > >You can add some extra LIBXL__LOG_ERRNO to check each 'rc' to see > >which one of them failed. > > > >Hm, perhaps it might make sense to actually have the libxl__e820_alloc > >also use the LIBXL__LOG_ERRNO to log more details.. > > OK, I'll add some debug and see what I find. > > Gordan