[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v2] tools/libxc: Batch memory allocations for PV guests



On Thu, Jun 11, 2015 at 09:52:44AM +0100, Ross Lagerwall wrote:
> The current code for allocating memory for PV guests batches the
> hypercalls to allocate memory by allocating 1024*1024 extents of order 0
> at a time. To make this faster, first try allocating extents of order 9
> (2 MiB) before falling back to the order 0 allocating if the order 9
> allocation fails.
> 
> On my test machine this reduced the time to start a 128 GiB PV guest by
> about 60 seconds.
> 
> Signed-off-by: Ross Lagerwall <ross.lagerwall@xxxxxxxxxx>
> ---
> 
> Changed in v2: Batched hypercalls for order 9 allocations.
> 
>  tools/libxc/xc_dom_x86.c | 26 ++++++++++++++++++++++++--
>  1 file changed, 24 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/libxc/xc_dom_x86.c b/tools/libxc/xc_dom_x86.c
> index 783f749..2d461e3 100644
> --- a/tools/libxc/xc_dom_x86.c
> +++ b/tools/libxc/xc_dom_x86.c
> @@ -761,7 +761,7 @@ int arch_setup_meminit(struct xc_dom_image *dom)
>  {
>      int rc;
>      xen_pfn_t pfn, allocsz, mfn, total, pfn_base;
> -    int i, j;
> +    int i, j, k;
>  
>      rc = x86_compat(dom->xch, dom->guest_domid, dom->guest_type);
>      if ( rc )
> @@ -869,6 +869,8 @@ int arch_setup_meminit(struct xc_dom_image *dom)
>              unsigned int memflags;
>              uint64_t pages;
>              unsigned int pnode = dom->vnode_to_pnode[dom->vmemranges[i].nid];
> +            int count = dom->total_pages >> SUPERPAGE_PFN_SHIFT;
> +            xen_pfn_t extents[count];
>  

Sorry, I forgot to mention not to follow this practice.

We don't want unbound growth of the stack, which can lead to process
getting killed. The hypervisor would preempt long running operation
anyway so the overly large array doesn't necessarily reduce the number
of hypercall issued.

Could you define a batch size (say, 512 or 1024) and then start from
there?

Sorry again for not having mentioned that earlier.

Wei.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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