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

Re: [Xen-devel] [PATCH v4 1/2] xen: add an "highmem" parameter to alloc_

To: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH v4 1/2] xen: add an "highmem" parameter to alloc_xenballooned_pages
From: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
Date: Wed, 21 Sep 2011 16:31:44 -0400
Cc: Jeremy Fitzhardinge <jeremy@xxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx
Delivery-date: Wed, 21 Sep 2011 13:32:30 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <alpine.DEB.2.00.1109081942470.12963@kaball-desktop>
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: <alpine.DEB.2.00.1109081942470.12963@kaball-desktop>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.21 (2010-09-15)
On Thu, Sep 08, 2011 at 07:45:08PM +0100, Stefano Stabellini wrote:
> Add an highmem parameter to alloc_xenballooned_pages, to allow callers to
> request lowmem or highmem pages.

<grumble grumble>

+ scripts/checkpatch.pl --no-signoff /tmp/git.patch
ERROR: "foo** bar" should be "foo **bar"
#467: FILE: include/xen/balloon.h:28:
+int alloc_xenballooned_pages(int nr_pages, struct page** pages,

total: 1 errors, 0 warnings, 461 lines checked

Please fix and repost.

> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
> ---
>  drivers/xen/balloon.c |   12 ++++++++----
>  drivers/xen/gntdev.c  |    2 +-
>  include/xen/balloon.h |    3 ++-
>  3 files changed, 11 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
> index 5dfd8f8..7f7d463 100644
> --- a/drivers/xen/balloon.c
> +++ b/drivers/xen/balloon.c
> @@ -501,20 +501,24 @@ EXPORT_SYMBOL_GPL(balloon_set_new_target);
>   * alloc_xenballooned_pages - get pages that have been ballooned out
>   * @nr_pages: Number of pages to get
>   * @pages: pages returned
> + * @highmem: highmem or lowmem pages
>   * @return 0 on success, error otherwise
>   */
> -int alloc_xenballooned_pages(int nr_pages, struct page** pages)
> +int alloc_xenballooned_pages(int nr_pages, struct page** pages, bool highmem)
>  {
>       int pgno = 0;
>       struct page* page;
>       mutex_lock(&balloon_mutex);
>       while (pgno < nr_pages) {
> -             page = balloon_retrieve(true);
> -             if (page) {
> +             page = balloon_retrieve(highmem);
> +             if (page && PageHighMem(page) == highmem) {
>                       pages[pgno++] = page;
>               } else {
>                       enum bp_state st;
> -                     st = decrease_reservation(nr_pages - pgno, 
> GFP_HIGHUSER);
> +                     if (page)
> +                             balloon_append(page);
> +                     st = decrease_reservation(nr_pages - pgno,
> +                                     highmem ? GFP_HIGHUSER : GFP_USER);
>                       if (st != BP_DONE)
>                               goto out_undo;
>               }
> diff --git a/drivers/xen/gntdev.c b/drivers/xen/gntdev.c
> index f914b26..7b9b1d1 100644
> --- a/drivers/xen/gntdev.c
> +++ b/drivers/xen/gntdev.c
> @@ -123,7 +123,7 @@ static struct grant_map *gntdev_alloc_map(struct 
> gntdev_priv *priv, int count)
>           NULL == add->pages)
>               goto err;
>  
> -     if (alloc_xenballooned_pages(count, add->pages))
> +     if (alloc_xenballooned_pages(count, add->pages, false /* lowmem */))
>               goto err;
>  
>       for (i = 0; i < count; i++) {
> diff --git a/include/xen/balloon.h b/include/xen/balloon.h
> index 76f7538..b1a8233 100644
> --- a/include/xen/balloon.h
> +++ b/include/xen/balloon.h
> @@ -25,7 +25,8 @@ extern struct balloon_stats balloon_stats;
>  
>  void balloon_set_new_target(unsigned long target);
>  
> -int alloc_xenballooned_pages(int nr_pages, struct page** pages);
> +int alloc_xenballooned_pages(int nr_pages, struct page** pages,
> +             bool highmem);
>  void free_xenballooned_pages(int nr_pages, struct page** pages);
>  
>  struct sys_device;
> -- 
> 1.7.2.3
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel

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

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