[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 6/7] docs: Document start_info changes in Xen 4.2.
On Mon, 2013-02-25 at 16:27 +0000, Konrad Rzeszutek Wilk wrote: > The 25833:bb85bbccb1c9. "x86/32-on-64: adjust Dom0 initial page table layout" > fixes a bug in the reported value of pt_base versus where the page tables > actually start. This documents this in the start of the world header note. > > This clarifies the implied understanding that the page table space is > pointed by pt_base. As in it is ".. implied that the range of page-tables > is the range [pt_base, pt_base + nr_pt_frames), whereas that that range > here indeed is [pt_base - 2, pt_base -2 + nr_pt_frames)" (Jan Beulich). Jan -- does the updated comment below correctly reflect this bug? > > Also make it crystal clear that pt_base == %cr3. > > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> > --- > xen/include/public/xen.h | 12 +++++++++++- > 1 files changed, 11 insertions(+), 1 deletions(-) > > diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h > index 5e9bbcb..099ad24 100644 > --- a/xen/include/public/xen.h > +++ b/xen/include/public/xen.h > @@ -693,7 +693,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 and CR3 (x86)] > * 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. > @@ -705,6 +705,16 @@ typedef struct shared_info shared_info_t; > * 8. There is guaranteed to be at least 512kB padding after the final > * bootstrap element. If necessary, the bootstrap virtual region is > * extended by an extra 4MB to ensure this. > + * > + * Note: Prior to 25833:bb85bbccb1c9. ("x86/32-on-64 adjust Dom0 initial page > + * table layout") a bug caused the pt_base (3.e above) and cr3 to not point > + * to the start of the guest page tables (it was offset by two pages). > + * This only manifested itself on 32-on-64 dom0 kernels and not 32-on-64 domU > + * or 64-bit kernels of any colour. The page tables for a 32-on-64 dom0 got > + * allocated in the order: 'first L1','first L2', 'first L3', so the offset > + * to the page table base is by two pages back. The initial domain if it is > + * 32-bit and runs under a 64-bit hypervisor should _NOT_ use two of the > + * pages preceding pt_base and mark them as reserved/unused. > */ > > #define MAX_GUEST_CMDLINE 1024 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |