> -----Original Message-----
> From: Laszlo Ersek [mailto:ler...@redhat.com]
> Sent: Wednesday, February 20, 2019 1:25 AM
> To: Ni, Ray <ray...@intel.com>; Bi, Dandan <dandan...@intel.com>
> Cc: edk2-devel@lists.01.org; Wu, Hao A <hao.a...@intel.com>; Doran, Mark
> <mark.do...@intel.com>
> Subject: Re: [edk2] [patch 2/2] MdeModulePkg/BmBoot: Report status when
> fail to load/start boot option
> 
> +Mark, for my comments on the process

Thank you :)
 
> On 02/20/19 03:21, Ni, Ray wrote:
> > Laszlo,
> > Thanks for catching this.
> >
> > GenPerformMemoryTest() in
> > MdeModulePkg\Universal\MemoryTest\GenericMemoryTestDxe\LightMemoryTest
> > .c uses the same technics as you suggested.
> >
> > I give up to propose another option: having pack(1) for the new status
> structure.
> 
> I think that byte-packing EFI_RETURN_STATUS_EXTENDED_DATA in the PI-1.7
> spec would have been viable, but we should have thought about that in
> advance. The PI and UEFI specs require natural alignment for structure
> members, unless stated otherwise. There *are* a number of examples of
> "stated otherwise" (the term that the specs use is frequently "byte-packed
> structure"). Again, we should have thought of that in advance, before PI-
> 1.7 was released, so now we can only fix the way the object is populated.

Agreed.
 
> More generally, I think this demonstrates a flaw in the standardization
> process. PIWG and USWG should only standardize existing practice; that is,
> features that have at least one functional implementation. (Not necessarily
> open source, but the interfaces should be battle-hardened
> *first*.) The restriction where we can't even propose patches for edk2
> before the standards are updated is very counter-productive. There's
> practically zero chance for getting an actual implementation peer-reviewed
> and peer-tested before proposing the API for the standard.
> 
> Personally I have suggested in the past to implement some new features as
> edk2 extensions first, and once they work, to upstream them to the
> standards. This idea is usually rejected by maintainers, because
> maintainers worry about becoming stuck with more and more edk2 extensions
> to core code (i.e., they worry about the feature proponents not making good
> on their promise to standardize). Unfortunately, the alternative (= the
> current practice) is that we standardize speculative interfaces, which then
> prove suboptimal once we implement them.

So personally I'm a big believer in having working code for things we write 
down in the standards.  When EFI was first drafted that's how we did it: what 
was then known as "the sample implementation" and the actual spec content were 
more or less developed in parallel and the spec wasn't done until the code was 
working satisfactorily.  We got away from that largely because when the UEFI 
Forum was formed, there was nominal interest in promoting more than one 
implementation and keeping spec and code requirements separate was a part of 
that.

Recent changes, particularly inside Intel, present an opportunity for us to 
revisit this issue.  I'm advocating for the approach of spec-follows-code for 
new Contributions that Intel will make to the open source project going 
forward.  I'll have more to say about this at upcoming industry events.

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

Reply via email to