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

Re: EFI's -mapbs option may cause Linux to panic()


  • To: Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • From: Jan Beulich <jbeulich@xxxxxxxx>
  • Date: Mon, 21 Nov 2022 18:01:00 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=EwSaJ69VqtlHaXJZo53ZeJUMPXoNBAWFGcHJKcXt8nc=; b=LuGUVoNA3OugqNrgZ1rrus9bMLIKsGbPhTEgFot+HTvbxLNI+CuQJTBg3vAkM2u7B+RLM8vz1K5OU6BoyJuF7+JqEtiCRoPoIr5wFWmOnV2QDuDOcVtccly942fKJGdS4pr96TFnCoSqqcGp7lyI84qHvrTegoHvmds/gnXianolZUrca5ARm8ASf1381Q8faXTLqTOdTFjyfTRFeNtzy4Ig5ITC3U3fQOtftbAsFDVISwij/+yEZlgaMnoonUbzwcMPnrFKLyitXaoSV/Cqr55MTgiTfSCx9r+Xkg296WYDrJdXbkxzDy4plQfWUmlgYC5cj+fcs+sKWvJoBT+kRQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UJk4AIyHxR26fJZBzOHWniB6uujp6lBb6HMzCvZq9fTyvcTp+FZ6UIEuSyuWK8IljdS0WAbLIHxlAW9b25Hl5QyF7DDOJUiqESGW3nIGLumkP8HFxS9SoeGrY0nCBwYM+Rdk48KFIvCg7VlmbjUpGUHsb98S19/P5eFdjC/kyrFx6knuF/wQI54QWbOrG+6zwUuOpfsxobtwSaNdJNbZgdmCx19/rXmle6LnasvgLt+CSPvix5DsEdQrkkCyFBUsEBqRv10scBJqQ2nvr18guMikNzNzcJ93Ad4NoCJlLeTOFb2yDWaCcl8kjI/2Piaatk6U6RvnLl/T3bFfA0D2ew==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com;
  • Cc: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Juergen Gross <jgross@xxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
  • Delivery-date: Mon, 21 Nov 2022 17:01:17 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 21.11.2022 17:48, Roger Pau Monné wrote:
> On Mon, Nov 21, 2022 at 05:27:16PM +0100, Jan Beulich wrote:
>> Hello,
>>
>> on a system with these first two EFI memory map entries
>>
>> (XEN)  0000000000000-000000009dfff type=4 attr=000000000000000f
>> (XEN)  000000009e000-000000009ffff type=2 attr=000000000000000f
>>
>> i.e. except for 2 pages all space below 1M being BootServicesData, the
>> -mapbs option has the effect of marking reserved all that space. Then
>> Linux fails trying to allocate its lowmem trampoline (which really it
>> shouldn't need when running in PV mode), ultimately leading to
>>
>>              panic("Real mode trampoline was not allocated");
>>
>> in their init_real_mode().
>>
>> While for PV I think it is clear that the easiest is to avoid
>> trampoline setup in the first place, iirc PVH Dom0 also tries to
>> mirror the host memory map to its own address space. Does PVH Linux
>> require a lowmem trampoline?
> 
> Yes, it does AFAIK.  I guess those two pages won't be enough for
> Linux boot trampoline requirements then.
> 
> I assume native Linux is fine with this memory map because it reclaims
> the EfiBootServicesData region and that's enough.

That's my understanding as well.

>> While the two pages here are just enough for Xen's trampoline, I still
>> wonder whether we want to adjust -mapbs behavior. Since whatever we
>> might do leaves a risk of conflicting with true firmware (mis)use of
>> that space, the best I can think of right now would be another option
>> altering behavior (or providing altered behavior). Yet such an option
>> would likely need to be more fine-grained then than covering all of
>> the low Mb in one go. Which feels like both going too far and making
>> it awkward for people to figure out what value(s) to use ...
>>
>> Thoughts anyone?
> 
> I'm unsure what to recommend.  The mapbs option is a workaround for
> broken firmware, and it's not enabled by default, so we might be lucky
> and never find a system with a memory map like you describe that also
> requires mapbs in order to boot.

Guess how we've learned of the issue: Systems may boot fine without
-mapbs, but they may fail to reboot because of that (in)famous issue of
firmware writers not properly separating boot services code paths from
runtime services ones. And there we're dealing with a system where I
suspect this to be the case, just that - unlike in earlier similar
cases - there's no "clean" crash proving the issue (the system simply
hangs). Hence my request that they use -mapbs to try to figure out.

And yes, "reboot=acpi" helps there, but they insist on knowing what
component is to blame.

Jan

> Any native OS would also have problems booting in such system if it
> has any option similar to mapbs, so I don't see much solution.
> 
> Thanks, Roger.




 


Rackspace

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