[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Rebooting domu fails in nfs share exported from another domu on the same dom0




On 2014/7/18 14:53, Konrad Rzeszutek Wilk wrote:
On Thu, Jul 17, 2014 at 12:56:12PM -0400, annie li wrote:
On 2014/7/17 11:49, Roger Pau Monné wrote:
On 16/07/14 22:36, annie li wrote:
Hi

I hit a problem in such scenario: vm1 is running and export nfs service,
dom0 mount this nfs, and vm2 is booted in this nfs location. vm1 and vm2
are running on the same dom0.

When this bug happens, the data flow is:  vm2 blkfront-> vm2 blkback->
I am a bit confused here. 'vm2 blkfront -> vm2 blkback'? Did you
mean 'dom0 blkback'?

Yes, Dom0 blkback.



loop -> nfs file -> nfs client -> bridge priv1 -> vm1 vif -> vm1 netback
-> vm1 netfront.
So both netback and netfront run in the same guest? I think you
want these two swapped around (netfront -> netback).

No, the netfront in above routine means the one in guest vm1, and this is network RX path in vm1. vm2 is running from nfs exported share of vm1. When vm2 write its disk, data will go to the nfs file. Finally, the data will be sent through network to vm1, then the data routine is from netback to vm1 netfront. See following,

vm1(nfs server)     vm2
 |      \          /
 |        \       /
 |          \    /
Dom0(nfs client)

Thanks
Annie


In above data flow, nfs implements direct io, blkfront and blkback uses
grantmap. This makes page mapping works well through vm2 blkfront to vm1
netback. However, when netback does grant copy, the error happens in
this routine:
If it's the same error I was seeing (which I think it is), the problem
is due to trying to do a grant_copy with the PFN of a grant mapped page
in Dom0, which Xen refuses to perform.

I've never followed it up, but I think the problem should be fixed in
Linux, so that netback realises it is trying to perform a grant_copy to
a granted page, and use the grant ref instead of the PFN.

I guess the routine is similar if using grant ref. See __gnttab_copy
function,
The routine goes into __acquire_grant_for_copy for grant ref, and then
__get_paged_frame->get_page_from_gfn->get_page.  get_page is where the
checking page owner fails.

Thanks
Annie


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.