Even with a single export @ ReadyToBoot, I still think we need a PCD to allow implementations to disable the feature altogether if they decide to.
-----Original Message----- From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Brian J. Johnson Sent: Tuesday, February 23, 2016 11:52 AM To: Dong, Eric <eric.d...@intel.com>; Andrew Fish <af...@apple.com> Cc: Hale, Robert P <robert.p.h...@intel.com>; Rothman, Michael A <michael.a.roth...@intel.com>; Gao, Liming <liming....@intel.com>; Bi, Dandan <dandan...@intel.com>; Kinney, Michael D <michael.d.kin...@intel.com>; edk2-devel@lists.01.org Subject: Re: [edk2] [patch] MdeModulePkg: Make HII configuration settings available to OS runtime On 02/22/2016 09:00 PM, Dong, Eric wrote: >>>> >>>> Hi All, >>>> >>>> Thanks for your comments. I add my explanation below: >>>> >>>> Only hook ReadyToBoot event is not enough. Different drivers may >>>> hook this event and some may update string package in their >> callback function. The order to call these callback functions is random, so >> only hook this event may miss some changes. >>>> >> >> Eric, >> >> Could you enable your HII exporting callbacks in a ReadyToBoot event? >> Then you wouldn't needlessly pay the export cost each time a HII >> element is added or changed as drivers are loaded. > > Brian, > > Do you mean we first export HII data at ReadyToBoot event. After it, we also > hook all HII Database changes action (include add package/ remove package/ > update packages/ HiiSetString)? > If only export HII data at ReadyToBoot event, it is not enough, because the > HII data maybe changed later(Through add package/ remove package ....)? > > Thanks, > Eric Yes. Good summary. Thanks, Brian >> >>>> This feature is described in UEFI spec 2.6 chapter 31.2.11.1. It required >>>> to export all HiiDatabae data and current configuration data. >>> >>> I don't see any language in that section that makes it required. It seems >>> to just describe how to do it. >>> >> >> Agreed. And section 31.2.1.10 says: >> >> ===== >> When it is desired that the forms data be used in the presence of an >> O/S, this specification describes a means by which to support this >> capability. By being able to encapsulate the data and export it >> through standard means such that an O/S agent (e.g. forms >> browser/processor) can retrieve it, O/S- present usage models can be >> made available for further value-add implementations. >> ===== >> >> The wording implies that exporting is not always desired, and that >> O/S-present usage of forms data is a value-add feature, which a >> platform may choose to support or not. >> >>>> We add this feature because we strongly encourage the export of >>>> config data to support manageability of platform config both for >>>> pre- >> OS and OS runtime operations. >>>> >>> >>> Generally the UEFI spec and the edk2 don't try to force platform >>> policy. For example exposing some configuration information could be >> considered a security vulnerability on some platforms, so it should not be >> forced on a platform. >>> >>> Thanks, >>> >>> Andrew Fish >>> >>>> Also we collect the performance data from our reference >>>> platform(Detail see below). The boot performance is small and we >>>> can >> ignore it. This feature cost extra 869KB, but we think the size cost is not >> care because current we use 16M size of bios flash. >>>> >>>> HiiDatabase driver data size cost(This feature add in HiiDatabase driver): >>>> Without this feature: >>>> Used data size: 151KB >>>> With this feature >>>> Used data size: 1020 KB >>>> PS: This extra size cost mainly depend on how much Hii packages in your >>>> platform. >>>> >>>> Boot Time cost: >>>> Without this feature: >>>> Boot Time cost: 1st:3.353s 2nd: 3.035s >>>> With this feature: >>>> Boot Time cost: 1st: 3.125s 2nd: 3.126s >>>> >>>> Base on the above analysis, we provide this design and prefer to always >>>> enable this feature instead of use a PCD to control it. >>>> >>>> Thanks, >>>> Eric >>>> >> >> My particular concern involves a simulator (far slower than hardware) >> for an extremely large, complex server platform with a large amount >> of HII data. On this platform, we end up disabling the largest but >> least used setup screens when running on the simulator, simply to >> avoid the time overhead of processing the HII data. This saves many >> minutes of execution time. >> >>>>> -----Original Message----- >>>>> From: El-Haj-Mahmoud, Samer [mailto:samer.el-haj-mahm...@hpe.com] >>>>> Sent: Wednesday, February 17, 2016 2:14 AM >>>>> To: Andrew Fish; Brian J. Johnson >>>>> Cc: Bi, Dandan; edk2-devel@lists.01.org; Dong, Eric; Gao, Liming >>>>> Subject: RE: [edk2] [patch] MdeModulePkg: Make HII configuration >>>>> settings available to OS runtime >>>>> >>>>> +1 >>>>> >>>>> I also would add there may be some HII strings that are hidden >>>>> from user interfaces, and reflect settings for field service or >>>>> troubleshooting, and that a mass export to the OS may expose these >>>>> settings to OS runtime code and possibly applications. >>>>> >>>>> >>>>> >>>>> -----Original Message----- >>>>> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On >>>>> Behalf Of Andrew Fish >>>>> Sent: Tuesday, February 16, 2016 10:37 AM >>>>> To: Brian J. Johnson <bjohn...@sgi.com> >>>>> Cc: Dandan Bi <dandan...@intel.com>; edk2-devel@lists.01.org; Eric >>>>> Dong <eric.d...@intel.com>; Liming Gao >> <liming....@intel.com> >>>>> Subject: Re: [edk2] [patch] MdeModulePkg: Make HII configuration >>>>> settings available to OS runtime >>>>> >>>>> >>>>>> On Feb 16, 2016, at 8:33 AM, Brian J. Johnson <bjohn...@sgi.com> wrote: >>>>>> >>>>>> On 02/16/2016 12:58 AM, Dandan Bi wrote: >>>>>>> This feature is aimed to allow OS make use of the HII database >>>>>>> during runtime. In this case, the contents of the HII Database >>>>>>> is exported to a buffer. The pointer to the buffer is placed in >>>>>>> the EFI System Configuration Table, where it can be retrieved by an OS >>>>>>> application. >>>>>>> >>>>>>> Export the configuration data and contents of HiiDatabase when >>>>>>> driver add package, update package and remove package. >>>>>>> For string and image may also need to update the contents of >>>>>>> HiiDatabase when NewString/SetString, NewImage/SetImage. >>>>>>> >>>>>>> Cc: Liming Gao <liming....@intel.com> >>>>>>> Cc: Eric Dong <eric.d...@intel.com> >>>>>>> Contributed-under: TianoCore Contribution Agreement 1.0 >>>>>>> Signed-off-by: Dandan Bi <dandan...@intel.com> ... >>>>>> >>>>>> Please make this behavior selectable via a PCD. HII operations >>>>>> are very expensive, especially on simulators. I don't want to >>>>>> pay the >>>>> export time every time a package is added or string is changed. >>>>> Also, platforms should be able to decide if they want to offer >>>>> this >> data to >>>>> the OS. >>>>>> >>>>> >>>>> +1 >>>>> >>>>> I would want to opt out to NOT take the memory away from the OS if the >>>>> platform did not care about the feature. >>>>> >>>>> Thanks, >>>>> >>>>> Andrew Fish >>>>> >>>>>> Why not just export the data once, using a "ready to boot" event hook? >>>>>> >>>>>> Thanks, >>>>>> -- >>>>>> >>>>>> Brian J. Johnson >>>>>> >>>>>> ----------------------------------------------------------------- >>>>>> --- >>>>>> >>>>>> My statements are my own, are not authorized by SGI, and do not >>>>>> necessarily represent SGI's positions. >>>>>> _______________________________________________ >>>>>> edk2-devel mailing list >>>>>> edk2-devel@lists.01.org >>>>>> https://lists.01.org/mailman/listinfo/edk2-devel >>>>> >>>>> _______________________________________________ >>>>> edk2-devel mailing list >>>>> edk2-devel@lists.01.org >>>>> https://lists.01.org/mailman/listinfo/edk2-devel >>>> >>> >> >> >> -- >> >> Brian >> >> -------------------------------------------------------------------- >> >> "If you want your dreams to come true: Wake Up!" >> -- Jaime Roman's Radio > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel > -- Brian J. Johnson -------------------------------------------------------------------- My statements are my own, are not authorized by SGI, and do not necessarily represent SGI's positions. _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel