From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH 4 of 4] xen/pagetables: Document pt_base inconsistency when running in COMPAT mode Date: Tue, 21 Aug 2012 16:08:34 -0400 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org # HG changeset patch # User Konrad Rzeszutek Wilk # Date 1345579709 14400 # Node ID b992f8e613a3401b9ddd140ce436c840d412beb7 # Parent 74bedb086c5b72447262e087c0218b89f8bc9140 xen/pagetables: Document pt_base inconsistency when running in COMPAT mode. c/s 13257 added the COMPAT mode wherein a 64-bit hypervisor can run with a 32-bit initial domain. One of the things it added was that the pt_base is offset by two pages. This inconsistency is only present in the COMPAT mode so lets document it. Signed-off-by: Konrad Rzeszutek Wilk diff -r 74bedb086c5b -r b992f8e613a3 xen/include/public/xen.h --- a/xen/include/public/xen.h Tue Aug 21 16:08:29 2012 -0400 +++ b/xen/include/public/xen.h Tue Aug 21 16:08:29 2012 -0400 @@ -663,7 +663,7 @@ typedef struct shared_info shared_info_t * c. list of allocated page frames [mfn_list, nr_pages] * (unless relocated due to XEN_ELFNOTE_INIT_P2M) * d. start_info_t structure [register ESI (x86)] - * e. bootstrap page tables [pt_base, CR3 (x86)] + * e. bootstrap page tables [pt_base, CR3 (x86)] *1 * f. bootstrap stack [register ESP (x86)] * 4. Bootstrap elements are packed together, but each is 4kB-aligned. * 5. The initial ram disk may be omitted. @@ -678,6 +678,9 @@ typedef struct shared_info shared_info_t * * NOTE: The initial virtual region (3a -> 3f) are all mapped by the initial * pagetables [pt_base, CR3 (x86)]. + * + * *1: When booting under a 64-bit hypervisor with a 32-bit initial domain + * it is offset by two pages (pt_base += PAGE_SIZE*2). */ #define MAX_GUEST_CMDLINE 1024