> -----Original Message----- > From: Julien Grall [mailto:julien.gr...@arm.com] > Sent: 26 September 2018 11:33 > To: Paul Durrant <paul.durr...@citrix.com>; 'Jan Beulich' > <jbeul...@suse.com> > Cc: Andrew Cooper <andrew.coop...@citrix.com>; Roger Pau Monne > <roger....@citrix.com>; Stefano Stabellini <sstabell...@kernel.org>; xen- > devel <xen-devel@lists.xenproject.org> > Subject: Re: IOREQ server on Arm > > Hi, > > On 09/26/2018 10:14 AM, Paul Durrant wrote: > >> -----Original Message----- > >> From: Jan Beulich [mailto:jbeul...@suse.com] > >> Sent: 26 September 2018 09:09 > >> To: Julien Grall <julien.gr...@arm.com>; Paul Durrant > >> <paul.durr...@citrix.com> > >> Cc: Andrew Cooper <andrew.coop...@citrix.com>; Roger Pau Monne > >> <roger....@citrix.com>; Stefano Stabellini <sstabell...@kernel.org>; > xen- > >> devel <xen-devel@lists.xenproject.org> > >> Subject: Re: IOREQ server on Arm > >> > >>>>> On 26.09.18 at 00:39, <julien.gr...@arm.com> wrote: > >>> Hi Paul, > >>> > >>> I am looking at porting the IOREQ server infrastructure on Arm. I > didn't > >>> need much modification to make it run for Arm. Although, the > >>> implementation could be simplified over the x86 implementation. > >>> > >>> I noticed some issue while trying to implement the hypercall > >>> XENMEM_acquire_resource. Per my understanding, all the page mapped via > >>> that hypercall will use the type p2m_mapping_foreign. > >>> > >>> This will result to trigger the ASSERT(fdom != dom) in > get_page_from_gfn > >>> (asm-arm/p2m.h) because the IOREQ page has been allocated to the > >>> emulator domain and mapped to it. AFAICT x86 has the same assert in > >>> p2m_get_page_from_gfn(...). > >>> > >>> IHMO, the ASSERT makes sense because you are only meant to map page > >>> belonging to other domain with that type. > >>> > >>> So I am wondering whether IOREQ server running in PVH Dom0 has been > >>> tested? What would be the best course of action to fix the issue? > >> > >> I think the p2m type needs to be chosen based on > >> XENMEM_rsrc_acq_caller_owned. > >> > > > > Yes, that's correct. There is a FIXME clause in acquire_resource so that > that only caller owned resources can be mapped by HVM/PVH domains. Thus > the new call can be used for IOREQ server pages, but not grant frames. > > I don't understand your last sentence. IOREQ is caller owned and > therefore should work.
Yes, I was just saying that it is currently the only resource that should work. > > As I said, I don't have any problem with mapping the resource. The > problem is when unmapping it because the region is set with > p2m_mapping_foreign. You will reach the ASSERT(fdom != p2m->domain) in > p2m_get_page_from_gfn. > > Regardless the reference problem (we support it on Arm). Can you explain > how this is working on PVH Dom0 today? > I never tested with a PVH dom0, but I did run tests with an HVM domU (and a Xen with the privilege checks hacked out). I guess I didn't re-test with HVM after the switch to caller-owned (which came quite late in review) and so missed this problem. Sorry about that. Paul > Cheers, > > -- > Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel