[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

 


Rackspace

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