diff mbox

[edk2,2/2] ArmVirtPkg: disable PcdHiiOsRuntimeSupport

Message ID 1459273890-14331-3-git-send-email-lersek@redhat.com
State Accepted
Commit 6a238fa88fd0b78491201a341d45ab0dec1c2947
Headers show

Commit Message

Laszlo Ersek March 29, 2016, 5:51 p.m. UTC
Edk2 commit 8a45f80edad4 ("MdeModulePkg: Make HII configuration settings
available to OS runtime") implements the optional UEFI feature described
in "31.2.11.1 OS Runtime Utilization" in UEFI v2.6.

While this feature might show benefits down the road even in QEMU virtual
machines, at the moment it only presents drawbacks:
- it increases the EfiRuntimeServicesData footprint,
- it triggers HII compatibility problems between edk2 and external drivers
  unconditionally, even if the end-user is not interested in HII and/or in
  configuring said drivers (see
  <https://www.redhat.com/archives/vfio-users/2016-March/msg00153.html>
  and <http://thread.gmane.org/gmane.comp.bios.edk2.devel/9894> for an
  example).

While the feature was being introduced, popular demand for a controlling
Feature PCD rose (see
<http://thread.gmane.org/gmane.comp.bios.edk2.devel/7626>), which is why
we can set it now to FALSE.

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>

---
 ArmVirtPkg/ArmVirt.dsc.inc | 1 +
 1 file changed, 1 insertion(+)

-- 
1.8.3.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Comments

Ard Biesheuvel March 29, 2016, 8:08 p.m. UTC | #1
On 29 March 2016 at 19:51, Laszlo Ersek <lersek@redhat.com> wrote:
> Edk2 commit 8a45f80edad4 ("MdeModulePkg: Make HII configuration settings

> available to OS runtime") implements the optional UEFI feature described

> in "31.2.11.1 OS Runtime Utilization" in UEFI v2.6.

>

> While this feature might show benefits down the road even in QEMU virtual

> machines, at the moment it only presents drawbacks:

> - it increases the EfiRuntimeServicesData footprint,

> - it triggers HII compatibility problems between edk2 and external drivers

>   unconditionally, even if the end-user is not interested in HII and/or in

>   configuring said drivers (see

>   <https://www.redhat.com/archives/vfio-users/2016-March/msg00153.html>

>   and <http://thread.gmane.org/gmane.comp.bios.edk2.devel/9894> for an

>   example).

>

> While the feature was being introduced, popular demand for a controlling

> Feature PCD rose (see

> <http://thread.gmane.org/gmane.comp.bios.edk2.devel/7626>), which is why

> we can set it now to FALSE.

>

> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>

> Contributed-under: TianoCore Contribution Agreement 1.0

> Signed-off-by: Laszlo Ersek <lersek@redhat.com>


Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>


> ---

>  ArmVirtPkg/ArmVirt.dsc.inc | 1 +

>  1 file changed, 1 insertion(+)

>

> diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc

> index db31b2dc4cfe..14e15213b3c9 100644

> --- a/ArmVirtPkg/ArmVirt.dsc.inc

> +++ b/ArmVirtPkg/ArmVirt.dsc.inc

> @@ -249,6 +249,7 @@ [BuildOptions]

>  ################################################################################

>

>  [PcdsFeatureFlag.common]

> +  gEfiMdeModulePkgTokenSpaceGuid.PcdHiiOsRuntimeSupport|FALSE

>    gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|TRUE

>    gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnosticsDisable|TRUE

>    gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable|TRUE

> --

> 1.8.3.1

>

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Ard Biesheuvel April 1, 2016, 2:13 p.m. UTC | #2
On 29 March 2016 at 22:08, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
> On 29 March 2016 at 19:51, Laszlo Ersek <lersek@redhat.com> wrote:

>> Edk2 commit 8a45f80edad4 ("MdeModulePkg: Make HII configuration settings

>> available to OS runtime") implements the optional UEFI feature described

>> in "31.2.11.1 OS Runtime Utilization" in UEFI v2.6.

>>

>> While this feature might show benefits down the road even in QEMU virtual

>> machines, at the moment it only presents drawbacks:

>> - it increases the EfiRuntimeServicesData footprint,

>> - it triggers HII compatibility problems between edk2 and external drivers

>>   unconditionally, even if the end-user is not interested in HII and/or in

>>   configuring said drivers (see

>>   <https://www.redhat.com/archives/vfio-users/2016-March/msg00153.html>

>>   and <http://thread.gmane.org/gmane.comp.bios.edk2.devel/9894> for an

>>   example).

>>

>> While the feature was being introduced, popular demand for a controlling

>> Feature PCD rose (see

>> <http://thread.gmane.org/gmane.comp.bios.edk2.devel/7626>), which is why

>> we can set it now to FALSE.

>>

>> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>

>> Contributed-under: TianoCore Contribution Agreement 1.0

>> Signed-off-by: Laszlo Ersek <lersek@redhat.com>

>

> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

>


Please not that currently, the implementation of this feature in EDK2
causes problems with the generation of the new Memory Attributes
table. This is due to the fact the this feature results in
RuntimeServices memory to be either allocated or freed (probably the
former) in its OnReadyToBoot() event handler, which is the same event
that triggers the generation of the Memory Attributes table, and the
latter should run last to get a correct table, which is not
guaranteed.

Thanks,
Ard.

>> ---

>>  ArmVirtPkg/ArmVirt.dsc.inc | 1 +

>>  1 file changed, 1 insertion(+)

>>

>> diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc

>> index db31b2dc4cfe..14e15213b3c9 100644

>> --- a/ArmVirtPkg/ArmVirt.dsc.inc

>> +++ b/ArmVirtPkg/ArmVirt.dsc.inc

>> @@ -249,6 +249,7 @@ [BuildOptions]

>>  ################################################################################

>>

>>  [PcdsFeatureFlag.common]

>> +  gEfiMdeModulePkgTokenSpaceGuid.PcdHiiOsRuntimeSupport|FALSE

>>    gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|TRUE

>>    gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnosticsDisable|TRUE

>>    gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable|TRUE

>> --

>> 1.8.3.1

>>

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Laszlo Ersek April 1, 2016, 2:17 p.m. UTC | #3
On 04/01/16 16:13, Ard Biesheuvel wrote:
> On 29 March 2016 at 22:08, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:

>> On 29 March 2016 at 19:51, Laszlo Ersek <lersek@redhat.com> wrote:

>>> Edk2 commit 8a45f80edad4 ("MdeModulePkg: Make HII configuration settings

>>> available to OS runtime") implements the optional UEFI feature described

>>> in "31.2.11.1 OS Runtime Utilization" in UEFI v2.6.

>>>

>>> While this feature might show benefits down the road even in QEMU virtual

>>> machines, at the moment it only presents drawbacks:

>>> - it increases the EfiRuntimeServicesData footprint,

>>> - it triggers HII compatibility problems between edk2 and external drivers

>>>   unconditionally, even if the end-user is not interested in HII and/or in

>>>   configuring said drivers (see

>>>   <https://www.redhat.com/archives/vfio-users/2016-March/msg00153.html>

>>>   and <http://thread.gmane.org/gmane.comp.bios.edk2.devel/9894> for an

>>>   example).

>>>

>>> While the feature was being introduced, popular demand for a controlling

>>> Feature PCD rose (see

>>> <http://thread.gmane.org/gmane.comp.bios.edk2.devel/7626>), which is why

>>> we can set it now to FALSE.

>>>

>>> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>

>>> Contributed-under: TianoCore Contribution Agreement 1.0

>>> Signed-off-by: Laszlo Ersek <lersek@redhat.com>

>>

>> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

>>

> 

> Please not that currently, the implementation of this feature in EDK2

> causes problems with the generation of the new Memory Attributes

> table. This is due to the fact the this feature results in

> RuntimeServices memory to be either allocated or freed (probably the

> former) in its OnReadyToBoot() event handler, which is the same event

> that triggers the generation of the Memory Attributes table, and the

> latter should run last to get a correct table, which is not

> guaranteed.


Yup, I've seen the recent updates from you and Jiewen in the other thread.

But, that's just an argument for pushing these patches rather sooner
than later, right?

Thanks
Laszlo

> Thanks,

> Ard.

> 

>>> ---

>>>  ArmVirtPkg/ArmVirt.dsc.inc | 1 +

>>>  1 file changed, 1 insertion(+)

>>>

>>> diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc

>>> index db31b2dc4cfe..14e15213b3c9 100644

>>> --- a/ArmVirtPkg/ArmVirt.dsc.inc

>>> +++ b/ArmVirtPkg/ArmVirt.dsc.inc

>>> @@ -249,6 +249,7 @@ [BuildOptions]

>>>  ################################################################################

>>>

>>>  [PcdsFeatureFlag.common]

>>> +  gEfiMdeModulePkgTokenSpaceGuid.PcdHiiOsRuntimeSupport|FALSE

>>>    gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|TRUE

>>>    gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnosticsDisable|TRUE

>>>    gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable|TRUE

>>> --

>>> 1.8.3.1

>>>


_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Ard Biesheuvel April 1, 2016, 2:20 p.m. UTC | #4
On 1 April 2016 at 16:17, Laszlo Ersek <lersek@redhat.com> wrote:
> On 04/01/16 16:13, Ard Biesheuvel wrote:

>> On 29 March 2016 at 22:08, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:

>>> On 29 March 2016 at 19:51, Laszlo Ersek <lersek@redhat.com> wrote:

>>>> Edk2 commit 8a45f80edad4 ("MdeModulePkg: Make HII configuration settings

>>>> available to OS runtime") implements the optional UEFI feature described

>>>> in "31.2.11.1 OS Runtime Utilization" in UEFI v2.6.

>>>>

>>>> While this feature might show benefits down the road even in QEMU virtual

>>>> machines, at the moment it only presents drawbacks:

>>>> - it increases the EfiRuntimeServicesData footprint,

>>>> - it triggers HII compatibility problems between edk2 and external drivers

>>>>   unconditionally, even if the end-user is not interested in HII and/or in

>>>>   configuring said drivers (see

>>>>   <https://www.redhat.com/archives/vfio-users/2016-March/msg00153.html>

>>>>   and <http://thread.gmane.org/gmane.comp.bios.edk2.devel/9894> for an

>>>>   example).

>>>>

>>>> While the feature was being introduced, popular demand for a controlling

>>>> Feature PCD rose (see

>>>> <http://thread.gmane.org/gmane.comp.bios.edk2.devel/7626>), which is why

>>>> we can set it now to FALSE.

>>>>

>>>> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>

>>>> Contributed-under: TianoCore Contribution Agreement 1.0

>>>> Signed-off-by: Laszlo Ersek <lersek@redha

[...]
>>>

>>> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

>>>

>>

>> Please note that currently, the implementation of this feature in EDK2

>> causes problems with the generation of the new Memory Attributes

>> table. This is due to the fact the this feature results in

>> RuntimeServices memory to be either allocated or freed (probably the

>> former) in its OnReadyToBoot() event handler, which is the same event

>> that triggers the generation of the Memory Attributes table, and the

>> latter should run last to get a correct table, which is not

>> guaranteed.

>

> Yup, I've seen the recent updates from you and Jiewen in the other thread.

>

> But, that's just an argument for pushing these patches rather sooner

> than later, right?

>


Yes, or for making PcdHiiOsRuntimeSupport default to FALSE.

But I don't care either way, as long as we are aware that the features
are currently incompatible, and I am only interested in one of them
anyway :-)
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Laszlo Ersek April 1, 2016, 2:32 p.m. UTC | #5
On 04/01/16 16:20, Ard Biesheuvel wrote:
> On 1 April 2016 at 16:17, Laszlo Ersek <lersek@redhat.com> wrote:

>> On 04/01/16 16:13, Ard Biesheuvel wrote:

>>> On 29 March 2016 at 22:08, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:

>>>> On 29 March 2016 at 19:51, Laszlo Ersek <lersek@redhat.com> wrote:

>>>>> Edk2 commit 8a45f80edad4 ("MdeModulePkg: Make HII configuration settings

>>>>> available to OS runtime") implements the optional UEFI feature described

>>>>> in "31.2.11.1 OS Runtime Utilization" in UEFI v2.6.

>>>>>

>>>>> While this feature might show benefits down the road even in QEMU virtual

>>>>> machines, at the moment it only presents drawbacks:

>>>>> - it increases the EfiRuntimeServicesData footprint,

>>>>> - it triggers HII compatibility problems between edk2 and external drivers

>>>>>   unconditionally, even if the end-user is not interested in HII and/or in

>>>>>   configuring said drivers (see

>>>>>   <https://www.redhat.com/archives/vfio-users/2016-March/msg00153.html>

>>>>>   and <http://thread.gmane.org/gmane.comp.bios.edk2.devel/9894> for an

>>>>>   example).

>>>>>

>>>>> While the feature was being introduced, popular demand for a controlling

>>>>> Feature PCD rose (see

>>>>> <http://thread.gmane.org/gmane.comp.bios.edk2.devel/7626>), which is why

>>>>> we can set it now to FALSE.

>>>>>

>>>>> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>

>>>>> Contributed-under: TianoCore Contribution Agreement 1.0

>>>>> Signed-off-by: Laszlo Ersek <lersek@redha

> [...]

>>>>

>>>> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

>>>>

>>>

>>> Please note that currently, the implementation of this feature in EDK2

>>> causes problems with the generation of the new Memory Attributes

>>> table. This is due to the fact the this feature results in

>>> RuntimeServices memory to be either allocated or freed (probably the

>>> former) in its OnReadyToBoot() event handler, which is the same event

>>> that triggers the generation of the Memory Attributes table, and the

>>> latter should run last to get a correct table, which is not

>>> guaranteed.

>>

>> Yup, I've seen the recent updates from you and Jiewen in the other thread.

>>

>> But, that's just an argument for pushing these patches rather sooner

>> than later, right?

>>

> 

> Yes, or for making PcdHiiOsRuntimeSupport default to FALSE.

> 

> But I don't care either way, as long as we are aware that the features

> are currently incompatible, and I am only interested in one of them

> anyway :-)


Given that PcdHiiOsRuntimeSupport was introduced at all after
multi-lateral requests for an option to disable the feature, I don't
expect the default value in the .DEC file to stay FALSE in the long term
-- and that's assuming we can flip it to FALSE (from the current TRUE)
in the first place.

So, I think these patches should be committed. Given that I've been on
vacation this week (in theory anyway -- I guess one couldn't tell from
my mailing list activity), I sort of "draw the line" at committing
patches, until next Monday. For the OvmfPkg patch, Jordan's review is
still needed anyway, but this one -- can you please go ahead and push it?

Thanks!
Laszlo

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Ard Biesheuvel April 1, 2016, 2:35 p.m. UTC | #6
On 1 April 2016 at 16:32, Laszlo Ersek <lersek@redhat.com> wrote:
> On 04/01/16 16:20, Ard Biesheuvel wrote:

>> On 1 April 2016 at 16:17, Laszlo Ersek <lersek@redhat.com> wrote:

>>> On 04/01/16 16:13, Ard Biesheuvel wrote:

>>>> On 29 March 2016 at 22:08, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:

>>>>> On 29 March 2016 at 19:51, Laszlo Ersek <lersek@redhat.com> wrote:

>>>>>> Edk2 commit 8a45f80edad4 ("MdeModulePkg: Make HII configuration settings

>>>>>> available to OS runtime") implements the optional UEFI feature described

>>>>>> in "31.2.11.1 OS Runtime Utilization" in UEFI v2.6.

>>>>>>

>>>>>> While this feature might show benefits down the road even in QEMU virtual

>>>>>> machines, at the moment it only presents drawbacks:

>>>>>> - it increases the EfiRuntimeServicesData footprint,

>>>>>> - it triggers HII compatibility problems between edk2 and external drivers

>>>>>>   unconditionally, even if the end-user is not interested in HII and/or in

>>>>>>   configuring said drivers (see

>>>>>>   <https://www.redhat.com/archives/vfio-users/2016-March/msg00153.html>

>>>>>>   and <http://thread.gmane.org/gmane.comp.bios.edk2.devel/9894> for an

>>>>>>   example).

>>>>>>

>>>>>> While the feature was being introduced, popular demand for a controlling

>>>>>> Feature PCD rose (see

>>>>>> <http://thread.gmane.org/gmane.comp.bios.edk2.devel/7626>), which is why

>>>>>> we can set it now to FALSE.

>>>>>>

>>>>>> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>

>>>>>> Contributed-under: TianoCore Contribution Agreement 1.0

>>>>>> Signed-off-by: Laszlo Ersek <lersek@redha

>> [...]

>>>>>

>>>>> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

>>>>>

>>>>

>>>> Please note that currently, the implementation of this feature in EDK2

>>>> causes problems with the generation of the new Memory Attributes

>>>> table. This is due to the fact the this feature results in

>>>> RuntimeServices memory to be either allocated or freed (probably the

>>>> former) in its OnReadyToBoot() event handler, which is the same event

>>>> that triggers the generation of the Memory Attributes table, and the

>>>> latter should run last to get a correct table, which is not

>>>> guaranteed.

>>>

>>> Yup, I've seen the recent updates from you and Jiewen in the other thread.

>>>

>>> But, that's just an argument for pushing these patches rather sooner

>>> than later, right?

>>>

>>

>> Yes, or for making PcdHiiOsRuntimeSupport default to FALSE.

>>

>> But I don't care either way, as long as we are aware that the features

>> are currently incompatible, and I am only interested in one of them

>> anyway :-)

>

> Given that PcdHiiOsRuntimeSupport was introduced at all after

> multi-lateral requests for an option to disable the feature, I don't

> expect the default value in the .DEC file to stay FALSE in the long term

> -- and that's assuming we can flip it to FALSE (from the current TRUE)

> in the first place.

>

> So, I think these patches should be committed. Given that I've been on

> vacation this week (in theory anyway -- I guess one couldn't tell from

> my mailing list activity), I sort of "draw the line" at committing

> patches, until next Monday. For the OvmfPkg patch, Jordan's review is

> still needed anyway, but this one -- can you please go ahead and push it?

>


Sure. Pushed as 6a238fa88fd0

Thanks,
Ard.
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
diff mbox

Patch

diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc
index db31b2dc4cfe..14e15213b3c9 100644
--- a/ArmVirtPkg/ArmVirt.dsc.inc
+++ b/ArmVirtPkg/ArmVirt.dsc.inc
@@ -249,6 +249,7 @@  [BuildOptions]
 ################################################################################
 
 [PcdsFeatureFlag.common]
+  gEfiMdeModulePkgTokenSpaceGuid.PcdHiiOsRuntimeSupport|FALSE
   gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|TRUE
   gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnosticsDisable|TRUE
   gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable|TRUE