On Wednesday, March 16, 2016, Toomas Soome <tso...@me.com> wrote:

>
> > On 16. märts 2016, at 12:02, Daniel Kiper <daniel.ki...@oracle.com
> <javascript:;>> wrote:
> >
> > On Tue, Mar 15, 2016 at 07:46:46PM -0400, Konrad Rzeszutek Wilk wrote:
> >> On Tue, Mar 15, 2016 at 04:26:00PM +0100, Daniel Kiper wrote:
> >>> Do not pass memory maps to image if it asked for EFI boot services.
> >>
> >> .. I would change this sentence a bit.
> >>
> >> If image requested EFI boot services then skip multiboot2 memory maps.
> >>
> >>> Main reason for not providing maps is because they will likely be
> >>> invalid. We do a few allocations after filling them, e.g. for relocator
> >>> needs. Usually we do not care as we would already finish boot services.
> >>
> >> s/would already finish/would have finished/ ?
> >>
> >>> If we keep boot services then it is easier to not provide maps.
> However,
> >>
> >> s/easier/safer?/
> >>
> >>> if image needs memory maps and they are not provided by bootloader then
> >>> it should get them itself just before ExitBootServices() call.
> >>
> >> s/them// ?
> >>
> >> That is making an assumption that the user of Multiboot2 + EFI will
> >> do this. Which is OK since only Xen is using it.. but is this
> >> inline with the spec? Can you ignore not providing this information?
> >
> > AIUI, spec does not require that anything must be provided. Of course
> > on every platform GRUB2 should provide minimal set of system information
> > to properly boot loaded image. However, docs does not say which set make
> > sense or not. This is role of image to know what it requires to properly
> > run on a given platform. And I think that it make sense.
> >
> >> That aside - why not sync the multiboot memory map with what
> >> the EFI one will be? Or is it too to complex to move the memory map
> >> creation to a later phase of the bootup?
> >
> > IIRC, GRUB2 does some allocations after getting memory map and it is
> > quite complicated to change that.
> >
> >> Wish there was some multboot memory map flag indicating
> 'STALE-CHECK-EFI'..
> >
> > Why provide map which is invalid and must be verified with something
> else?
> > Let's ignore (do not provide) invalid data and use correct one without
> > any additional (unneeded) checks.
> >
>
> If you are *not* calling exit efi boot services from grub, there is no
> sense to provide EFI memory map at all, because to exit boot services [from
> OS], you *have to* fetch current memory map to get the map key to exit boot
> services.
>
But this doesn't apply for e820-like and simple maps which are unaffected
by bootloader allocations

>
> basically it means, if BS is not disabled and grub is still providing EFI
> memory map, the OS has to assume this map is not valid - which is bad and
> better not to provide (potentially) invalid data in first place.
>
> rgds,
> toomas



-- 
Regards
Vladimir 'phcoder' Serbinenko
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to