WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] Re: [PATCH 2/5] xen/balloon: account for pages released duri

To: David Vrabel <david.vrabel@xxxxxxxxxx>
Subject: [Xen-devel] Re: [PATCH 2/5] xen/balloon: account for pages released during memory setup
From: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
Date: Tue, 6 Sep 2011 17:31:39 -0400
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Tue, 06 Sep 2011 14:32:47 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <1313765840-22084-3-git-send-email-david.vrabel@xxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <1313765840-22084-1-git-send-email-david.vrabel@xxxxxxxxxx> <1313765840-22084-3-git-send-email-david.vrabel@xxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.21 (2010-09-15)
On Fri, Aug 19, 2011 at 03:57:17PM +0100, David Vrabel wrote:
> In xen_memory_setup() pages that occur in gaps in the memory map are
> released back to Xen.  This reduces the domain's current page count.

You might want to add: "in the hypervisor."

> The Xen balloon driver does not correctly decrease its initial
> current_pages count to reflect this.  If 'delta' pages are released
> and the target is adjusted the resulting reservation is always 'delta'
> less than the requested target.

Might want to add:

Wherein delta is reported as (for example):
[    0.000000] released 261886 pages of unused memory

> 
> This affects dom0 if the initial allocation of pages overlaps the PCI
> memory region but won't affect most domU guests that have been setup
> with pseudo-physical memory maps that don't have gaps.
> 
> Fix this by asking the hypervisor what the current reservation is when
> starting the balloon driver.
> 
> If the domain's targets are managed by xapi, the domain may eventually
> run out of memory and die because xapi currently gets its target
> calculations wrong and whenever it is restarted it always reduces the
> target by 'delta'.
> 
> Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
> ---
>  drivers/xen/balloon.c |    7 ++++++-
>  1 files changed, 6 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
> index 5dfd8f8..5814022 100644
> --- a/drivers/xen/balloon.c
> +++ b/drivers/xen/balloon.c
> @@ -557,15 +557,20 @@ EXPORT_SYMBOL(free_xenballooned_pages);
>  
>  static int __init balloon_init(void)
>  {
> +     domid_t domid = DOMID_SELF;
>       unsigned long pfn, extra_pfn_end;
>       struct page *page;
> +     int ret;

long int?
>  
>       if (!xen_domain())
>               return -ENODEV;
>  
>       pr_info("xen/balloon: Initialising balloon driver.\n");
>  
> -     balloon_stats.current_pages = xen_pv_domain() ? 
> min(xen_start_info->nr_pages, max_pfn) : max_pfn;
> +     ret = HYPERVISOR_memory_op(XENMEM_current_reservation, &domid);
> +     if (ret < 0)
> +             return ret;
> +     balloon_stats.current_pages = ret;
>       balloon_stats.target_pages  = balloon_stats.current_pages;
>       balloon_stats.balloon_low   = 0;
>       balloon_stats.balloon_high  = 0;
> -- 
> 1.7.2.5

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>