From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: [PATCH v5 09/24] libxl: x86: factor out e820_host_sanitize Date: Fri, 13 Feb 2015 15:42:22 +0000 Message-ID: <54DE1B5E.6090406@citrix.com> References: <1423770294-9779-1-git-send-email-wei.liu2@citrix.com> <1423770294-9779-10-git-send-email-wei.liu2@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1423770294-9779-10-git-send-email-wei.liu2@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Wei Liu , xen-devel@lists.xen.org Cc: dario.faggioli@citrix.com, JBeulich@suse.com, ian.jackson@eu.citrix.com, ian.campbell@citrix.com, ufimtseva@gmail.com List-Id: xen-devel@lists.xenproject.org On 12/02/15 19:44, Wei Liu wrote: > This function gets the machine E820 map and sanitize it according to PV > guest configuration. > > This will be used in later patch. No functional change introduced in > this patch. > > Signed-off-by: Wei Liu > Cc: Ian Campbell > Cc: Ian Jackson > Cc: Dario Faggioli > Cc: Elena Ufimtseva > Acked-by: Ian Campbell Looks to have addressed my previous concerns. Reviewed-by: Andrew Cooper > --- > Changes in v4: > 1. Use actual size of the map instead of using E820MAX. > --- > tools/libxl/libxl_x86.c | 32 +++++++++++++++++++++++--------- > 1 file changed, 23 insertions(+), 9 deletions(-) > > diff --git a/tools/libxl/libxl_x86.c b/tools/libxl/libxl_x86.c > index 9ceb373..d012b4d 100644 > --- a/tools/libxl/libxl_x86.c > +++ b/tools/libxl/libxl_x86.c > @@ -207,6 +207,27 @@ static int e820_sanitize(libxl_ctx *ctx, struct e820entry src[], > return 0; > } > > +static int e820_host_sanitize(libxl__gc *gc, > + libxl_domain_build_info *b_info, > + struct e820entry map[], > + uint32_t *nr) > +{ > + int rc; > + > + rc = xc_get_machine_memory_map(CTX->xch, map, *nr); > + if (rc < 0) { > + errno = rc; > + return ERROR_FAIL; > + } > + > + *nr = rc; > + > + rc = e820_sanitize(CTX, map, nr, b_info->target_memkb, > + (b_info->max_memkb - b_info->target_memkb) + > + b_info->u.pv.slack_memkb); > + return rc; > +} > + > static int libxl__e820_alloc(libxl__gc *gc, uint32_t domid, > libxl_domain_config *d_config) > { > @@ -223,15 +244,8 @@ static int libxl__e820_alloc(libxl__gc *gc, uint32_t domid, > if (!libxl_defbool_val(b_info->u.pv.e820_host)) > return ERROR_INVAL; > > - rc = xc_get_machine_memory_map(ctx->xch, map, E820MAX); > - if (rc < 0) { > - errno = rc; > - return ERROR_FAIL; > - } > - nr = rc; > - rc = e820_sanitize(ctx, map, &nr, b_info->target_memkb, > - (b_info->max_memkb - b_info->target_memkb) + > - b_info->u.pv.slack_memkb); > + nr = E820MAX; > + rc = e820_host_sanitize(gc, b_info, map, &nr); > if (rc) > return ERROR_FAIL; >