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][Pv-ops][PATCH 2/4 v2] Netback: Introduce a new struct ty

To: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
Subject: RE: [Xen-devel][Pv-ops][PATCH 2/4 v2] Netback: Introduce a new struct type page_ext.
From: "Xu, Dongxiao" <dongxiao.xu@xxxxxxxxx>
Date: Tue, 4 May 2010 08:51:54 +0800
Accept-language: en-US
Acceptlanguage: en-US
Cc: Fitzhardinge <jeremy@xxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>, Jeremy, Steven Smith <steven.smith@xxxxxxxxxx>
Delivery-date: Mon, 03 May 2010 17:53:14 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20100503160540.GD31299@xxxxxxxxxxxxxxxxxxx>
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: <D5AB6E638E5A3E4B8F4406B113A5A19A1D94B189@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> <20100503160540.GD31299@xxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: Acrq2oOnWTpQE2IZT/+FxUoOumOmcQASW8IQ
Thread-topic: [Xen-devel][Pv-ops][PATCH 2/4 v2] Netback: Introduce a new struct type page_ext.
I will add this check, thanks for your reminder.

Thanks,
Dongxiao

Konrad Rzeszutek Wilk wrote:
> On Thu, Apr 29, 2010 at 10:28:36PM +0800, Xu, Dongxiao wrote:
>> Netback: Introduce a new struct type page_ext.
>> 
>> struct page_ext is used to store the group and idx information by
>> which a specified page could be identified.
>> 
>> Signed-off-by: Dongxiao Xu <dongxiao.xu@xxxxxxxxx>
> 
> .. snip..
> 
> 
> -static inline int netif_page_index(struct page *pg)
> -{
> -     unsigned long idx = (unsigned long)pg->mapping - 1;
> -
> -     if (!PageForeign(pg))
> -             return -1;
> 
> You are taking the check to see if the page is foreign. Is that OK?
> -
> -     if ((idx >= MAX_PENDING_REQS) || (netbk->mmap_pages[idx] != pg))
> -             return -1;
> -
> -     return idx;
> +     pg->mapping = (struct address_space *)page_extinfo;;
>  }
> 
>  /*
> @@ -1411,9 +1399,10 @@ static void netif_idx_release(u16 pending_idx)
> 
>  static void netif_page_release(struct page *page, unsigned int order)
>  {
> -     int idx = netif_page_index(page);
> 
> This did this nice little check to see if the page had the PageForeign
> bit set. Is it OK to remove that check?
> 
> -     BUG_ON(order);
> -     BUG_ON(idx < 0);
> +     int idx = ((struct page_ext *)(page->mapping))->idx;
> +     BUG_ON(order ||
> +            idx < 0 || idx >= MAX_PENDING_REQS ||
> +            netbk->mmap_pages[idx] != page);
>       netif_idx_release(idx);
>  }
> 
> @@ -1565,7 +1554,9 @@ static int __init netback_init(void)
>       for (i = 0; i < MAX_PENDING_REQS; i++) {
>               page = netbk->mmap_pages[i];
>               SetPageForeign(page, netif_page_release);
> -             netif_set_page_index(page, i);
> +             netbk->page_extinfo[i].group = 0;
> +             netbk->page_extinfo[i].idx = i;
> +             netif_set_page_index(page, &netbk->page_extinfo[i]);
>               INIT_LIST_HEAD(&netbk->pending_inuse[i].list);
>       }
> 
> 
>> _______________________________________________
>> 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>