From mboxrd@z Thu Jan 1 00:00:00 1970 From: annie li Subject: Re: Rebooting domu fails in nfs share exported from another domu on the same dom0 Date: Fri, 18 Jul 2014 15:31:43 -0400 Message-ID: <53C9761F.3040803@oracle.com> References: <53C6E24D.7050903@oracle.com> <53C7F088.5070005@citrix.com> <53C8002C.2020501@oracle.com> <20140718185312.GE15947@laptop.dumpdata.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1"; Format="flowed" Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: <20140718185312.GE15947@laptop.dumpdata.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Konrad Rzeszutek Wilk Cc: =?ISO-8859-1?Q?Roger_Pau_Monn=E9?= , "xen-devel@lists.xen.org" List-Id: xen-devel@lists.xenproject.org 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=E9 wrote: >>> On 16/07/14 22:36, annie li wrote: >>>> Hi >>>> >>>> I hit a problem in such scenario: vm1 is running and export nfs servic= e, >>>> dom0 mount this nfs, and vm2 is booted in this nfs location. vm1 and v= m2 >>>> 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 netba= ck >>>> -> 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 v= m1 >>>> 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@lists.xen.org >> http://lists.xen.org/xen-devel > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel