From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.81]) by mx.groups.io with SMTP id smtpd.web10.6233.1583794485137494133 for ; Mon, 09 Mar 2020 15:54:45 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=OcvP9EF0; spf=pass (domain: redhat.com, ip: 207.211.31.81, mailfrom: lersek@redhat.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583794484; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=BrHIe+GtvBKk0fGKpViuk7lASwpue1prqxAJi1OTcoc=; b=OcvP9EF0tzI/cqF5Qr3/ULOorufVoeEjlP5mJFAH0+QfUgUcTjNWYAAT9vKfdx+RPdvQrs jDsa9GmYYgkfbX5S3QA1zPN7kHEICWAHvQWGfFYu1YXRxX1fm2JZGU2E1IK7scLoPN2RtM QZp++FHxYpJ0vGhkzrRBVU9gDaqAvww= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-37-Y3pO0bYiNCu72sDsHRbYEw-1; Mon, 09 Mar 2020 18:54:39 -0400 X-MC-Unique: Y3pO0bYiNCu72sDsHRbYEw-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id AE132108592B; Mon, 9 Mar 2020 22:54:38 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-116-76.ams2.redhat.com [10.36.116.76]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7615B60C87; Mon, 9 Mar 2020 22:54:37 +0000 (UTC) Subject: Re: [edk2-devel] Adding Bhyve support into upstream EDK2 To: devel@edk2.groups.io, sean.brogan@microsoft.com, Ard Biesheuvel , "Leif Lindholm (Linaro address)" References: <20173.1583734134875404839@groups.io> From: "Laszlo Ersek" Message-ID: <11d7bea8-ee02-c6a0-e5e2-6a0abaa5e35f@redhat.com> Date: Mon, 9 Mar 2020 23:54:36 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <20173.1583734134875404839@groups.io> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit On 03/09/20 07:08, Sean via Groups.Io wrote: > Ard/Lazlo, > > I find your position on OvmfPkg, ArmVirtPkg,and edk2-platforms in edk2 > to be detrimental to the overall success of the edk2 project. The > majority of edk2 consumers already have to deal with their platform > not being part of the edk2 git repo and the fact that changes to edk2 > may not work or cause conflict on their platforms. This is the > reality of working with edk2 This may be the reality for proprietary downstreams that don't, or hardly, upstream their changes, The reality that I have known, since joining the project in 2011, is that OVMF had been in the tree before I joined. And we added ArmVirtPkg in 2014 (or so) similarly. (It bore a different name back then.) > and building a large diverse set of products. In fact, because OVMF's > preferential treatment You are making it appear as if I wanted to keep OVMF in the tree and at the same time kick other platforms out of the tree, or otherwise stymie core contributions motivated by other platforms' needs. That couldn't be farther from the truth. I have stated on multiple occasions that I wish all edk2 consuming platforms to be in-tree. > and presence in the edk2 tree, others in the community are burdened by > those changes (mailing list noise, git history/commits, git repo size, > etc). Please run git log and check my contributions in the edk2 history that fall outside of OvmfPkg and ArmVirtPkg. $ git log --oneline --reverse \ --author='Laszlo Ersek ' master -- \ ':!OvmfPkg' \ ':!ArmVirtPkg' \ ':!ArmPlatformPkg/ArmVirtualizationPkg' \ | wc -l With master being at a3e25cc8a1dd, that's ~474 commits, out of my ~1266 total. (Those numbers are not precise minimally because, at the start of the git history, while we used SVN, authorship wasn't captured correctly.) IOW, approx. 37 percent of my patches have been for neither OvmfPkg nor ArmVirtPkg. My latest commit that fixes a bug in a core package is five days old (90e11edd16c7, "UefiCpuPkg/PiSmmCpuDxeSmm: fix S3 Resume for CPU hotplug", 2020-03-04). - "mailing list noise": I have processed the complete traffic of the mailing list for 9 years now (not read, but processed). edk2-devel has a low amount of traffic relative to other open source development lists. It is a fraction of qemu-devel, for example. If you see a large OvmfPkg patch series in your list folder, it will say "OvmfPkg" in the blurb subject, and then it takes a single keypress to mark the whole thread read. We could introduce topical mailing lists (different subsystem patches would be CC'd to different lists, but everything would still need to go to the main list as well). - "git repo size": for a current master checkout, OvmfPkg weighs in at 5.5M. In comparison, NetworkPkg is 7.2M, MdePkg is 18M, MdeModulePkg is 27M. Even considering all git objects and such, the repo is not larger than 1.1GiB or so. I assume your platforms must be larger than 5.5M. I'd be happy to have them in the tree. - "git history / commits": they are easy to filter to the packages you care about. We take care not to straddle multiple packages with single commits. May those others in the community please speak up about the burden that OvmfPkg development has subjected them to. > From someone who has developed and maintained platforms with edk2 for > the last decade +, I can tell you that having OVMF in edk2 hasn't kept > the tree free from regressions. Of course. Changes to core packages (even spec changes) are always motivated by platform goals. And regressions are unavoidable, as much as we try to prevent them (even *spec* regressions). I hope you're not claiming that OVMF has been a major source of regressions in the core packages. And, you have the advantage of *plausibly* claiming that OVMF-oriented changes have caused regressions in the core -- plausibly because those contributions, and the dependent OVMF changes, are upstream. Whereas I can't classify any other regressions as associated by Microsoft platform needs, simply because those platform needs have hardly ever been public. (One of my never-ending crusades has been "better commit messages", i.e., with use case spelled out.) > I also don't use it as a source for integration requirements because > it is vastly different than physical platforms and has very little > resemblance to my projects. That's fine. There's a whole bunch of stuff in the tree that's irrelevant to my purposes, I just don't go ahead and claim that they "clutter" the git history for me. - BaseTools -- check. I don't really care about BaseTools internals, I just want them to function OK. In fact, BaseTools used to live outside of the tree, with huge code drops / syncs, and that was no end of misery, for example because it was un-bisectable. (BTW, you are throwing the possibility of bisecting a platform and the core together out the window. Why should any given platform lose this very important trait just because other platforms have never had it, out of their own choice?) - DynamicTablesPkg -- check. No interest, yet it doesn't bother me. - EmulatorPkg, FmpDevicePkg, IntelFsp2Pkg, IntelFsp2WrapperPkg, SignedCapsulePkg, SourceLevelDebugPkg, StandaloneMmPkg, UefiPayloadPkg, UnitTestFrameworkPkg -- check, all irrelevant to me. It's very easy to ignore patches, emails, and discussions around these packages. It's also easy to join them. Even when AppPkg and StdLib were split out to edk2-libc, in , I made the following clear in my agreement: https://edk2.groups.io/g/devel/message/35321 I'm not sure how closely the StdLib internals are tied to day-to-day changes in core edk2; that is, whether we should keep those histories interlinked. That's something for the StdLib maintainers to evaluate. Personally I don't remember many StdLib changes, so there seems to be a genuine separation that supports the new repo idea. I was willing to listen to the StdLib maintainers, if they had wanted to keep the package inside. > I share your concerns about regressions, ease of development, etc. I > want to see tianocore develop workflows and processes that work for > the full community. That means we must take into account the needs of > those that have platforms outside the edk2 repo. We must build tools > that make managing all platforms dependencies tenable. We must create > CI that can leverage a vast number of platforms as an indicator of > breaking changes, yet not be gated on their success. (Side comment: it wasn't me who filed this: .) > We must have a process that lets all interested platforms efficiently > interact with and be part of. The tianocore community is in need of > the larger UEFI ecosystem engagement and we must remove the barriers > to get them involved. I don't want to keep anyone out. I just want to keep OvmfPkg and ArmVirtPkg in. The goals you describe in this paragraph don't conflict with OvmfPkg and ArmVirtPkg, as they are, i.e., in-tree. Laszlo