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: Re: [Xen-devel] SetPageForeign in netback

To: "Zang Hongyong" <zanghongyong@xxxxxxxxxx>
Subject: Re: Re: [Xen-devel] SetPageForeign in netback
From: "Grzegorz Miłoś" <gm281@xxxxxxxxx>
Date: Wed, 18 Jun 2008 17:37:40 +0100
Cc: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Wed, 18 Jun 2008 09:38:01 -0700
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:sender :to:subject:cc:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references :x-google-sender-auth; bh=9sHG5uuEgM9DAznPkKYk3U/dzumuxRvABLylvVzP9HA=; b=VoVl4lSqdFS9ZcH7nefqhb2Sdgrbt6H4asu/k6HNiZqiwe5E+Doe8EdNUAQxV3uM6l YoFNY/v1DyqaLKmWqmBX2V0pxt3pDqdKP8ttKTL2dsI3SEUObceqaXN+Gmd70sh7bioG wWJzIdhhHX5nAf0zhHWhR0YV7MVgrl8iAV078=
Domainkey-signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=message-id:date:from:sender:to:subject:cc:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references:x-google-sender-auth; b=DTuaHobLHGKIzNqxI6tx73wRLD9JzlLZoe+7bfvrwsBtgyWlr2iLvfvEnB6LgPlgCG UopZUlfm5iR50gq3PVuqPpvTB4D7W/6uB7ZrnT8swBQoOADdAdIyP/KyIVZJMdrz2KvE w6Ssu2QEzOLnXnKz67SDIMdK0f1bdHy+a5hWg=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <20080618112944.402BA136821@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/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <20080618112944.402BA136821@xxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
> Many thanks!
> And that is, when tx, after the data page is sent by native Nic driver in 
> dom0, the data page will be freed, then netif_page_release() called which 
> indicates netback to unmap the page offered by domU, and moves on its tx 
> response.
>
> Is that so?

Correct.

> If so, how about a bad NIC driver which doen't call free_page() after sending 
> data out of machine ?

Well, it could happen if there was a memory leak in the driver. This
would also be present in non-xenified linux. We are hoping for
bug-free device drivers.


> and Why mmap_pages is allocated by 
> alloc_empty_pages_and_pagevec(MAX_PENDING_REQS)?
> can  mmap_pages be allocated by alloc_vm_area() and vmalloc_to_page() ??

alloc_empty_pages_and_pagevec() balloons machine memory frames away
from Dom0, you are therefore left with pseudo-physical page that's not
backed by real memory. You want that, because you'll substitute DomU's
memory frame in it's place. I don't think alloc_vm_area does that. It
would only allocate virtually continuous range of memory.

Cheers
Gr(z)egor(z)

>
> Forgive my silly questions above please.
>
>
> ======= 2008-06-18 18:52:27 您在来信中写道:=======
>
>>> hi,
>>>  in netback init mmap_pages,
>>>                SetPageForeign(page, netif_page_release);
>>>  that is, page->index = netif_page_release
>>>  while netif_page_release is a function.
>>
>>netif_page_release is a function, and therefore:
>>page->index = netif_page_release
>>will store netif_page_release function pointer in 'index'
>>
>>>  so what's the meaning of SetPageForeign?
>>
>>Setting a page foreign means that the page is owned by another domain,
>>and that some care needs to be taken when freeing it.
>>
>>>  And when the function  netif_page_release() will be called?
>>
>>Whenever PageForeignDestructor is called (as it calls the destructor
>>function stored in the 'index' field).
>>PageForeignDestructor is called from:
>>__free_pages_ok
>>and
>>free_hot_cold_page
>>
>>Hope this helps.
>>
>>Cheers
>>Gr(z)egor(z)
>>
>>_______________________________________________
>>Xen-devel mailing list
>>Xen-devel@xxxxxxxxxxxxxxxxxxx
>>http://lists.xensource.com/xen-devel
>>
>>
>
> = = = = = = = = = = = = = = = = = = = =
> Zang Hongyong
> zanghongyong@xxxxxxxxxx
> 2008-06-18
>
>
> _______________________________________________
> 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