public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Ard Biesheuvel" <ard.biesheuvel@arm.com>
To: Laszlo Ersek <lersek@redhat.com>,
	Rebecca Cran <rebecca@bsdio.com>,
	devel@edk2.groups.io, michael.d.kinney@intel.com
Cc: Andrew Fish <afish@apple.com>, Leif Lindholm <leif@nuviainc.com>,
	"Justen, Jordan L" <jordan.l.justen@intel.com>
Subject: Re: [edk2-devel] Where to put the bhyve code in the edk2 repo: BhyvePkg, or under OvmfPkg?
Date: Tue, 12 May 2020 11:52:53 +0200	[thread overview]
Message-ID: <c4b6a53e-06b3-6a68-fa85-d043f5946457@arm.com> (raw)
In-Reply-To: <2de7aa2e-a024-3c2b-14c0-161e68c31121@redhat.com>

On 5/12/20 11:28 AM, Laszlo Ersek wrote:
> On 05/11/20 23:58, Rebecca Cran wrote:
>> On May 11, 2020, at 3:22 PM, Michael D Kinney
>> <michael.d.kinney@intel.com> wrote:
>>>
>>> Hi Laszlo,
>>>
>>> Is there an option for Bhyve to live in an edk2-platforms branch
>>> or in edk2-staging branch until it meets the quality criteria for
>>> OvmfPkg in the edk2 repo?
> 
> I'd like to have Bhyve in edk2 in order for it to share the git history
> with the other edk2 modules (OvmfPkg, core, etc).
> 
> edk2-platforms being separate is already causing massive amounts of
> pain. It's now common that we can't merge an otherwise self-contained
> edk2 patch series, implemented, posted, and reviewed as a unit of work
> with well defined boundaries, because it would break edk2-platforms, and
> there is no way to cover two distinct repositories in a single patch
> set.
> 
> There have been three separate instances of that concern just in the
> last ~5 days:
> 
> - https://edk2.groups.io/g/devel/message/58872
>    (May 8th)
> 
> - https://edk2.groups.io/g/devel/message/58874
>    (May 8th)
> 
> - https://edk2.groups.io/g/devel/message/59204
>    (May 11th)
> 
>> Also, what is the quality criteria? I'd be interested in working to
>> improve any problems it currently has. I'm also planning to work on
>> the Azure agent for FreeBSD and get a set of CI tests running for it.
> 
> Hm. Maybe I made a mistake. I segued from Ard's words to the Linux
> "staging" definition; that may have been wrong.
Yes. I never suggested that we should merge any code that doesn't meet 
our quality *at all*, nor did I suggest that the Bhyve code fails to 
meet them (and I wouldn't even know since I haven't looked at the code 
that carefully)


> Ard's words were:
> 
>> However, I don't think every platforms in core EDK2 can be a first
>> class citizen. There is simply no way we can expect contributors to
>> make sure that their changes don't break under Bhyve, and the same
>> will be true once (if) we merge kvmtool guest support, which is under
>> development as well (given that it supports virtualization only, and
>> so unlike QEMU, which supports emulation as well, it requires a native
>> host)
>>
>> So I agree that it makes sense to incorporate Bhyve into core EDK2,
>> but we have to decide on some rules regarding 'second class'
>> platforms: how/when to test them, and how urgently we treat
>> regressions found during such testing. We can treat ArmVirtXen the
>> same way, imo, as well as KvmTool when it lands.
> 
> So maybe the question is how large the user base of a given
> virtualization platform is, how wide-spread and easy-to-use the
> virtualization platform is. How much time and presence can be dedicated
> to maintaining its firmware.
> 
> If it's a niche virt platform, then keeping its firmware-side
> counterparts regression-free is more difficult for the community (due to
> the disproportionate amount of resources that its testing would
> require), and so the quality of *that* firmware code is expected to be
> lower.
> 

It is not about code quality. It is about rules and guidelines we set 
for contributors. I think it would be excellent if the azure CI would be 
extended to cover boot of a VM under bhyve. But what if that fails 
without any usable output? Is the burden going to be on me as a 
contributor to go and debug that platform if my code changes break it 
but nothing else?

> Importantly, I do think "manpower dedicated" outweighs "platform is
> niche". There was a time when UefiCpuPkg changes would break OVMF every
> two weeks. We didn't solve that by making QEMU/KVM "less of a niche" for
> the UefiCpuPkg owners -- we solved it by me asking (first informally) to
> be CC'd on all UefiCpuPkg patches, and then formally to be marked as a
> designated reviewer for UefiCpuPkg. And I'd review and regression-test a
> whole bunch of UefiCpuPkg patches, just so I could catch regressions
> before they made it into the tree.
> 
> If the bhyve community can *permanently* provide reviews /
> regression-testing for such OVMF contributors that never use bhyve, that
> would significantly increase the stability of bhyve firmware code, and
> it would outweigh bhyve's user base (likely) being smaller. Xen
> regressions were also reduced when the Xen community finally delegated
> designated reviewers to edk2.
> 
> Reviewing and testing patches you don't really care for, but see as
> possibly regressive for the platform you do care about, is a *lot* of
> work. So I guess it could boil down to how much work your platform's
> user base can contribute to the edk2 project.
> 

That is an important aspect, but not really what I am concerned about 
here. If nobody is invested enough in a platform to notice that is gets 
broken, I don't think we should put the burden on other maintainers to 
take responsibility for that.




  reply	other threads:[~2020-05-12  9:53 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-08 15:44 Where to put the bhyve code in the edk2 repo: BhyvePkg, or under OvmfPkg? Rebecca Cran
2020-05-11 15:55 ` Laszlo Ersek
2020-05-11 16:20   ` Ard Biesheuvel
2020-05-11 16:36     ` Michael D Kinney
2020-05-11 16:38       ` Andrew Fish
2020-05-11 16:41         ` [edk2-devel] " Michael D Kinney
2020-05-11 21:12       ` Laszlo Ersek
2020-05-11 21:22         ` Michael D Kinney
2020-05-11 21:58           ` [edk2-devel] " Rebecca Cran
2020-05-12  9:28             ` Laszlo Ersek
2020-05-12  9:52               ` Ard Biesheuvel [this message]
2020-05-12 15:09                 ` Laszlo Ersek
2020-05-14  2:34               ` Rebecca Cran
2020-05-14 10:24                 ` Laszlo Ersek
2020-05-14 16:20                   ` Rebecca Cran
2020-05-14 17:48                     ` Sean
2020-05-14 18:22                       ` Rebecca Cran
2020-05-14 18:46                         ` Sean
2020-05-14 18:54                           ` Rebecca Cran
2020-05-15  9:39                       ` Laszlo Ersek
2020-05-15  9:42                     ` Laszlo Ersek
2020-05-15  9:47                       ` Ard Biesheuvel
2020-05-15 12:51                         ` Laszlo Ersek
2020-05-15 15:03                           ` Leif Lindholm
2020-05-11 16:25   ` Michael D Kinney

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c4b6a53e-06b3-6a68-fa85-d043f5946457@arm.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox