[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 19/23] libxl/acpi: Add ACPI e820 entry
On Thu, Aug 04, 2016 at 05:06:47PM -0400, Boris Ostrovsky wrote: > Add entry for ACPI tables created for PVHv2 guests to e820 map. > > Signed-off-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx> > --- > v2: > * Deal with multiple acpi_modules. > > tools/libxl/libxl_dom.c | 8 ++++---- > tools/libxl/libxl_x86.c | 15 +++++++++++++++ > 2 files changed, 19 insertions(+), 4 deletions(-) > > diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c > index 22d6868..4d2bc0c 100644 > --- a/tools/libxl/libxl_dom.c > +++ b/tools/libxl/libxl_dom.c > @@ -1134,16 +1134,16 @@ int libxl__build_hvm(libxl__gc *gc, uint32_t domid, > dom->vnode_to_pnode[i] = info->vnuma_nodes[i].pnode; > } > > + rc = libxl__build_dom(gc, domid, info, state, dom); > + if (rc != 0) > + goto out; > + > rc = libxl__arch_domain_construct_memmap(gc, d_config, domid, dom); > if (rc != 0) { > LOG(ERROR, "setting domain memory map failed"); > goto out; > } > > - rc = libxl__build_dom(gc, domid, info, state, dom); > - if (rc != 0) > - goto out; > - > rc = hvm_build_set_params(ctx->xch, domid, info, state->store_port, > &state->store_mfn, state->console_port, > &state->console_mfn, state->store_domid, > diff --git a/tools/libxl/libxl_x86.c b/tools/libxl/libxl_x86.c > index 46cfafb..7654e20 100644 > --- a/tools/libxl/libxl_x86.c > +++ b/tools/libxl/libxl_x86.c > @@ -492,6 +492,7 @@ int libxl__arch_domain_construct_memmap(libxl__gc *gc, > uint64_t highmem_size = > dom->highmem_end ? dom->highmem_end - (1ull << 32) : 0; > uint32_t lowmem_start = dom->device_model ? GUEST_LOW_MEM_START_DEFAULT > : 0; > + unsigned page_size = XC_DOM_PAGE_SIZE(dom); > > /* Add all rdm entries. */ > for (i = 0; i < d_config->num_rdms; i++) > @@ -503,6 +504,10 @@ int libxl__arch_domain_construct_memmap(libxl__gc *gc, > if (highmem_size) > e820_entries++; > > + for (i=0; i<MAX_ACPI_MODULES; i++) for (i = 0; i < MAX_ACPI_MODULES; i++) > + if ( dom->acpi_modules[i].length) ^ extraneous space here > + e820_entries++; > + > if (e820_entries >= E820MAX) { > LOG(ERROR, "Ooops! Too many entries in the memory map!"); > rc = ERROR_INVAL; > @@ -528,6 +533,16 @@ int libxl__arch_domain_construct_memmap(libxl__gc *gc, > nr++; > } > > + for (i=0; i<MAX_ACPI_MODULES; i++) { Ditto. > + if (dom->acpi_modules[i].length) { > + e820[nr].addr = dom->acpi_modules[i].guest_addr_out & > ~(page_size - 1); > + e820[nr].size = dom->acpi_modules[i].length + > + (dom->acpi_modules[i].guest_addr_out & (page_size - 1)); > + e820[nr].type = E820_ACPI; > + nr++; > + } > + } > + > /* High memory */ > if (highmem_size) { > e820[nr].addr = ((uint64_t)1 << 32); > -- > 1.8.3.1 > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |