[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 3 of 4] xen/pagetables: Document that all of the initial regions are mapped



On Wed, Aug 22, 2012 at 04:35:56PM +0100, Jan Beulich wrote:
> >>> On 22.08.12 at 17:24, Stefano Stabellini 
> >>> <stefano.stabellini@xxxxxxxxxxxxx>
> wrote:
> > On Wed, 22 Aug 2012, Konrad Rzeszutek Wilk wrote:
> >> On Wed, Aug 22, 2012 at 03:17:04PM +0100, Jan Beulich wrote:
> >> > >>> On 21.08.12 at 22:08, Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> 
> >> > >>> wrote:
> >> > > # HG changeset patch
> >> > > # User Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
> >> > > # Date 1345579709 14400
> >> > > # Node ID 74bedb086c5b72447262e087c0218b89f8bc9140
> >> > > # Parent  8ed3eef706710c9c476a8d984bfb2861d92bedfb
> >> > > xen/pagetables: Document that all of the initial regions are mapped.
> >> > > 
> >> > > The documentation states that the layout of the initial region looks
> >> > > as so:
> >> > >    a. relocated kernel image
> >> > >    b. initial ram disk              [mod_start, mod_len]
> >> > >    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)]
> >> > >    f. bootstrap stack               [register ESP (x86)]
> >> > > 
> >> > > But it does not clarify that the virtual address to all of
> >> > > those areas is initially mapped by the pt_base (or CR3).
> >> > > Lets fix that.
> >> > 
> >> > To me this is already being said by "This the order of bootstrap
> >> > elements in the initial virtual region".
> >> 
> >> Stefano wanted to make sure we have it written as clear as possible.
> >> I am going to be a good little submitter and let you guys sort this
> >> one out  :-)
> > 
> > Let's step back for a second and see if I understand correctly: your
> > patch 6/11 removes the call to xen_map_identity_early on x86_64 because
> > "Xen provides us with all the memory mapped that we need to function".

Hm, it should have said: "all the bootstrap memory we need.."
and perhaps include that it covers the kernel, ramdisk, p2m list
and the pagetables provided by the kernel.

> > 
> > The original xen_map_identity_early maps up to max_pfn, that is
> > xen_start_info->nr_pages, so I am assuming that what you meant is that
> > "Xen provides us with all the memory already mapped in the bootstrap
> > page tables".
> > And that is not written anywhere in the Xen headers.
> > 
> > Therefore, if I understand the issue correctly, I would add the
> > following to xen.h:
> > 
> > "On x86_64 the bootstrap page tables map all the pages assigned to the
> > domain."
> 
> That certainly is not the case (and can't be - remember that the
> virtual space on x86-64 Linux'es initial mapping starts 2Gb from the
> end of address space, so how could all memory possibly be mapped
> [i.e. to what virtual addresses would those mappings be done]).
> 
> Jan

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.