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