From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: Re: [PATCH 1/4] expand x86 arch_shared_info to support linear p2m list Date: Fri, 21 Nov 2014 13:57:45 +0100 Message-ID: <546F36C9.3020004@suse.com> References: <1415957846-22703-1-git-send-email-jgross@suse.com> <1415957846-22703-2-git-send-email-jgross@suse.com> <546F3CBE0200007800049B77@smtp.nue.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta4.messagelabs.com ([85.158.143.247]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1XrnmW-0006nW-Li for xen-devel@lists.xenproject.org; Fri, 21 Nov 2014 12:57:48 +0000 In-Reply-To: <546F3CBE0200007800049B77@smtp.nue.novell.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: Jan Beulich Cc: "keir@xen.org" , "Ian.Campbell@citrix.com" , Ian Jackson , Tim Deegan , david.vrabel@citrix.com, xen-devel List-Id: xen-devel@lists.xenproject.org On 11/21/2014 01:23 PM, Jan Beulich wrote: >>>> On 14.11.14 at 10:37, <"jgross@suse.com".non-mime.internet> wrote: >> --- a/xen/include/public/arch-x86/xen.h >> +++ b/xen/include/public/arch-x86/xen.h >> @@ -224,7 +224,12 @@ struct arch_shared_info { >> /* Frame containing list of mfns containing list of mfns containing p2m. */ >> xen_pfn_t pfn_to_mfn_frame_list_list; >> unsigned long nmi_reason; >> - uint64_t pad[32]; >> + /* >> + * Following two fields are valid if pfn_to_mfn_frame_list_list contains >> + * ~0UL. >> + */ >> + unsigned long p2m_vaddr; /* virtual address of the p2m list */ >> + unsigned long p2m_as_root; /* mfn of the top level page table */ > > xen_pfn_t please. And what does the "as" in the name stand for? "as" is address space. I can rename it to e.g. "p2m_pgd_mfn". > It's also kind of unclear in the description what "the page table root" > is, as I don't think there are many OSes which use just a single set > of page tables (i.e. just a single address space). Not having followed > the discussion closely - what is this needed for anyway? It's a replacement of the pfn_to_mfn_frame_list_list using the same page table as the kernel for accessing the p2m list. We need the root of the page table and the virtual address of the p2m list. > >> --- a/xen/include/public/features.h >> +++ b/xen/include/public/features.h >> @@ -99,6 +99,9 @@ >> #define XENFEAT_grant_map_identity 12 >> */ >> >> +/* x86: guest may specify virtual address of p2m list */ >> +#define XENFEAT_virtual_p2m 13 > > The name to me suggests something that's not real. Perhaps better > XENFEAT_virtually_mapped_p2m or XENFEAT_p2m_va{,ddr}? Yeah, that's better. I'll use XENFEAT_p2m_vaddr. Juergen