Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Jun 2017 11:39:33 +0300
From:      Toomas Soome <tsoome@me.com>
To:        Harry Schmalzbauer <freebsd@omnilan.de>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: EFI loader doesn't handle md_preload (md_image) correct?
Message-ID:  <72722005-6EDF-44EC-A4A7-4E3CB2B0F0BD@me.com>
In-Reply-To: <5954B93C.8060101@omnilan.de>
References:  <591B12C6.4040301@omnilan.de> <DD0FE9CA-48C9-4A77-81FD-8CA139D95543@me.com> <591B1A8B.6070803@omnilan.de> <591B1EA4.600@omnilan.de> <FEF74507-4A04-49DD-A763-6733E18CCE66@me.com> <591B2523.6040101@omnilan.de> <7CF3AC8F-A778-40AE-B457-9B96AE5B4719@me.com> <591B284B.6070204@omnilan.de> <5954B93C.8060101@omnilan.de>

next in thread | previous in thread | raw e-mail | index | archive | help

> On 29. juuni 2017, at 11:24, Harry Schmalzbauer <freebsd@omnilan.de> =
wrote:
>=20
> Bez=C3=BCglich Harry Schmalzbauer's Nachricht vom 16.05.2017 18:26 =
(localtime):
>> B
> =E2=80=A6
>>>>> The issue is, that current UEFI implementation is using 64MB =
staging
>>>>> memory for loading the kernel and modules and files. When the boot =
is
>>>>> called, the relocation code will put the bits from staging area =
into the
>>>>> final places. The BIOS version does not need such staging area, =
and that
>>>>> will explain the difference.
>>>>>=20
>>>>> I actually have different implementation to address the same =
problem,
>>>>> but thats for illumos case, and will need some work to make it =
usable
>>>>> for freebsd; the idea is actually simple - allocate staging area =
per
>>>>> loaded file and relocate the bits into the place by component, not =
as
>>>>> continuous large chunk (this would also allow to avoid the mines =
like
>>>>> planted by hyperv;), but right now there is no very quick real =
solution
>>>>> other than just build efi loader with larger staging size.
>>>> Ic, thanks for the explanation.
>>>> While not aware about the purpose of the staging area nor the
>>>> consequences of enlarging it, do you think it's feasable increasing =
it
>>>> to 768Mib?
>>>>=20
>>>> At least now I have an idea baout the issue and an explanation why
>>>> reducing md_imgae to 100MB hasn't helped =E2=80=93 still more than =
64...
>>>>=20
>>>> Any quick hint where to define the staging area size highly =
appreciated,
>>>> fi there are no hard objections against a 768MB size.
>>>>=20
>>>> -harry
>>> The problem is that before UEFI Boot Services are not switched off, =
the memory is managed (and owned) by the firmware,
>> Hmm, I've been expecting something like that (owend by firmware) ;-)
>>=20
>> So I'll stay with CSM for now, and will happily be an early adopter =
if
>> you need someone to try anything (-stable mergable).
>=20
> Toomas, thanks for your help so far! I'm just curious if there's news =
on
> this.
> Was there a decision made whether kernel should be utilized to =
relocate
> the MD image modules or the loader should be extended to handle
> (x-)large staging areas?
>=20
> I'd like to switch back to UEFI booting for various reasons (most
> priority has consistency), but can't since it breaks md-rootfs with =
that
> machine (the other run ESXi still).
>=20
> If there's anything to test, please let me know.
>=20
> Thanks,
>=20
> -harry

There has not been too much activities about this topic, except some =
discussions. But it is quite clear that this change has to be handled by =
the loader in first place - as we need to get the data in safe location; =
now of course there is secondary part as well - it may be that kernel =
would need some work as well, depending on how the md image(s) are to be =
handled in relation to memory maps.

rgds,
toomas=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?72722005-6EDF-44EC-A4A7-4E3CB2B0F0BD>