[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 4 of 4] xen/pagetables: Document pt_base inconsistency when running in COMPAT mode
On Wed, Aug 22, 2012 at 10:21:10AM +0100, Ian Campbell wrote: > On Tue, 2012-08-21 at 21:08 +0100, Konrad Rzeszutek Wilk wrote: > > # HG changeset patch > > # User Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> > > # 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 <konrad.wilk@xxxxxxxxxx> > > > > 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). > > "it" here being the page which you would have to load into cr3? No. The pt_base value. > > What, if anything, ends up in the other two pages? The L3 and L1. The pt_base has incorrect data and points to second L1 instead of the L3. Its laid out like this: [L3] [L1] [L1] ... [L2] a b c and pt_base has the phys_addr of 'c' instead of 'a'. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |