On 05/01/17 19:23, Jordan Justen wrote: > On 2017-05-01 03:51:42, Laszlo Ersek wrote: >> On 04/30/17 23:16, Jordan Justen wrote: >>> On 2017-04-30 07:42:36, Laszlo Ersek wrote: >>> >>>> $ build \ >>>> -b DEBUG \ >>>> -a IA32 -a X64 \ >>>> -p OvmfPkg/OvmfPkgIa32X64.dsc \ >>>> -t GCC48 \ >>>> -D SMM_REQUIRE \ >>>> -D SECURE_BOOT_ENABLE \ >>>> -D HTTP_BOOT_ENABLE \ >>>> -D NETWORK_IP6_ENABLE \ >>>> -D TLS_ENABLE >>> >>> Do you enable the last 3 in your production builds? I didn't think it >>> was the case, but it would change things... >> >> That's a very good question, and I expected it. >> >> Any sane person being responsible for supporting a package will strive >> very hard to minimize the features enabled in the package, in order to >> minimize the problem surface / support burden. I tend to consider myself >> a sane person, so no, HTTP_BOOT_ENABLE, NETWORK_IP6_ENABLE, and >> TLS_ENABLE are not turned on. >> >> (TLS_ENABLE carries even more weight, because it increases the security >> attack surface, so turning *that* off is very desirable.) >> >> *But*, I certainly want to keep the *ability* to turn these features on >> (and maybe later features, in 2-3 years' time) if a customer or a >> partner requests it. > > It sounds like you don't expect to 'support' this. At least not to the > same level as the rest of the firmware.
I hope never to have to support these, but at some point into the future of RHEL7, I might have no choice. > I think it is fine to say, if you want to enable these, you may have > to disable debug on some other features, As I explained earlier, universal DEBUG coverage is a requirement for supportability. ( Example: in parallel to this discussion, our virt QE reported an independent issue, namely an out-of-SMRAM condition with 240+ VCPUs. https://bugzilla.redhat.com/show_bug.cgi?id=1447027 The out-of-SMRAM condition is caught by an ASSERT() only. It is in "UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c", function SetStaticPageTable(): 212 PageDirectoryEntry = AllocatePageTableMemory (1); 213 ASSERT(PageDirectoryEntry != NULL); 214 ZeroMem (PageDirectoryEntry, EFI_PAGES_TO_SIZE(1)); I find it plausible that if this memory allocation fails, then the firmware has really no way to continue -- that's okay. But, the ASSERT() disappears in a RELEASE build -- not okay. Memory allocation failures should never be handled with *just* an ASSERT(). I hope you appreciate my insistence on DEBUG a bit more, through this real-life example. ) > or remove some other features. Removing features on purpose can be called "offensive regression" in an enterprise distro, and it is the antithesis of why people decide to pay for enterprise support. > In other words, at this point I don't think the size of these should > be added into the equation for how 'full' the 2MB image is. I think at this point it is clear that these patches are not appropriate for upstream OvmfPkg. That's an acceptable closure for me -- while I would have preferred to get the patches in, the real moral imperative for me is to *try* the upstreaming at least, whenever I think the patches are applicable to upstream. I think we've had an honest and thorough discussion on this -- thank you very much for taking the time! (Especially over the weekend!) The current upstream 2MB build should continue working for everyday purposes. Cheers Laszlo _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

