From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tim Deegan Subject: Re: Creating a magic page for PV mem_access Date: Wed, 5 Jun 2013 11:32:33 +0100 Message-ID: <20130605103233.GC42977@ocelot.phlegethon.org> References: <97A500D504438F4ABC02EBA81613CC6322CEAC4C@xmb-aln-x02.cisco.com> <20130603092331.GA16240@ocelot.phlegethon.org> <97A500D504438F4ABC02EBA81613CC6322D00336@xmb-aln-x02.cisco.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <97A500D504438F4ABC02EBA81613CC6322D00336@xmb-aln-x02.cisco.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: "Aravindh Puthiyaparambil (aravindp)" Cc: "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org Hi, At 19:11 +0000 on 03 Jun (1370286719), Aravindh Puthiyaparambil (aravindp) wrote: > > > I am trying to create a magic / special page for the PV mem_access. I > > > am mimicking what is being done for the console page > > > (alloc_magic_pages()) on the tools side. On the hypervisor side, I am > > > planning on stashing the address of this page in the pv_domain > > > structure akin to how the special pages are stored in params[] of the > > > hvm_domain structure. > > > > OK, can you back up a bit and describe what you're going to use this page > > for? A PV domain's 'magic' pages may not be quite what you want. > > First, they're owned by the guest, so the guest can write to them (and so > > they can't be trusted for doing hypervisor->dom0 communications). > > You are right. I didn't realize magic pages are writable by the > guest. So this is not a good option. > > > And second, I'm not sure that mem_access pages really need to > > saved/restored with the rest of the VM -- I'd have thought that you could > > just set up a new, empty ring on the far side. > > I am trying to mimic what is being done in the HVM side for mem_event > pages. In setup_guest() (xc_hvm_build_x86.c), I see "special pages" > being created for console, paging, access and sharing ring pages. Then > xc_set_hvm_param() is used to inform the hypervisor. When a mem_event > / mem_access client comes up, it uses xc_get_hvm_param() to get the > pfn and maps it in. I want to do something similar for PV. Yep. I think it might be better to invent up a new interface for those pages, rather than using domain memory for them. We can then deprecate the old HVM-specific params interface. Tim.