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

Re: [Xen-devel] Xen 4.12 panic on Thinkpad W540 with UEFI mutiboot2, efi=no-rs workarounds it



On Wed, Oct 09, 2019 at 12:50:09PM +0200, Jan Beulich wrote:
> On 09.10.2019 12:31, Marek Marczykowski-Górecki  wrote:
> > On Wed, Oct 09, 2019 at 10:56:56AM +0200, Jan Beulich wrote:
> >> On 08.10.2019 18:29, Marek Marczykowski-Górecki  wrote:
> >>> On Tue, Oct 08, 2019 at 04:19:13PM +0200, Jan Beulich wrote:
> >>>> On 08.10.2019 15:52, Marek Marczykowski-Górecki  wrote:
> >>>>> In Linux case, it looks like it passes around the EFI memory map using
> >>>>> some Linux-specific mechanism, but I don't find it particularly
> >>>>> appealing option.
> >>
> >> ... that this would require Xen following a Linux protocol.
> >> This is nothing that can work building on EFI interfaces alone.
> > 
> > Actually, there is something that could be used: presence of boot
> > services. If the call to SetVirtualAddressMap() is bound to initial
> > presence of boot services, then it surely won't happen after kexec, as
> > boot services are not available anymore. In fact the patch I've sent
> > does exactly that - call SetVirtualAddressMap() directly after
> > ExitBootServices(), but I've realized this property only now. In this
> > case, maybe kconfig option is not needed anymore?
> 
> I'm unaware of a property telling an EFI application whether
> boot services are available. By the definition I know they're
> available up and until ExitBootServices() gets called.

Regardless of how it is done, calling SetVirtualAddressMap() directly
after ExitBootServices() should be fine. If for some reason Xen would
try to call ExitBootServices() when boot services are already gone, it
is a bug elsewhere (and probably will crash Xen before it event gets to
SetVirtualAddressMap() call). I'm simply relying on this property,
regardless of how it is technically done.

> > BTW How runtime services work after kexec? I don't see EFI handles
> > handed over kexec, are they somehow re-discovered?
> 
> What EFI handles are you talking about? For runtime services
> what a consumer needs is a table pointer, which is a field
> in the system table, which in turn is an argument passed to
> the EFI application's entry point.

Yes, I'm talking about those pointers (system table specifically).

> I didn't think there are
> provisions in the spec for either of these pointers being NULL.

But I don't see kexec using EFI application entry point. Am I missing
something?

-- 
Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

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