public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Ard Biesheuvel" <ard.biesheuvel@linaro.org>
To: devel@edk2.groups.io, sean.brogan@microsoft.com
Cc: Laszlo Ersek <lersek@redhat.com>
Subject: Re: [edk2-devel] Adding Bhyve support into upstream EDK2
Date: Tue, 10 Mar 2020 13:54:55 -0400	[thread overview]
Message-ID: <CAKv+Gu93LGQEJjn7Hr80upK2digaA6vXWzfJ2ecN=y82zwLV6g@mail.gmail.com> (raw)
In-Reply-To: <21546.1583861100642932695@groups.io>

For me, the issue is more fundamental than what Laszlo describes.

The platforms that target qemu, which is available to anyone, can run
on any host, and can boot various OSes beyond Linux (including
windows), which is their primary target. It even supports
virtualization, which is highly significant on arm, given the tricky
cache maintenance and things like aligned access and dc zva
instructions, which qemu does not catch in emulation mode.

This means we can reasonably require any contributor not to regress on
those platforms, given how they have full access to it, and this is
actually where i would like us to take the next step when it comes to
ci automation, i.e., automatically flag PRs that break the boot on a
selected set of qemu based configs.

Putting those platforms in a separate repository complicates this to
the extent where it is no longer feasible to reason about the core
repository being in a working or broken state, given how intrusive
changes usually require changes on the platform description side as
well, and I don’t see the validation  tools handling two repositories
in parallel.

Beyond this, i have no fundamental objections to moving  things out of
the core, and i’d remove more cruft from ArmPlatformPkg or EmbeddedPkg
if i could (including, e.g., the PrePi SEC code that should have never
existed)



On 10/03/2020, Sean via Groups.Io <sean.brogan=microsoft.com@groups.io> wrote:
> I don't see the difference besides the mechanics of the operation (which you
> have described clearly).  To guarantee a repo or repos is "git-bisectable"
> you need to build and test every commit on your platform.  For example in
> the recent ArmMmuLib patchset, you were able to build every commit in the
> patch to identify which one caused the break.  There isn't an enforced
> process in place to ensure that happens within Edk2.  Thankfully the review
> process and the developers knowledge allowed the commits to be made in such
> a way that this was possible.  That doesn't have to change when you move to
> a submodule.  Also you could put automation in place to enforce and/or test
> for this scenario.  You can put automation in place to "integrate" into your
> super project at every commit if you really wanted to and had the resources
> to run tests on every one of those commits.  Is this type of CI done today
> for OVMF?
>
> Again this is what nearly all platforms have to do today and we have a lot
> of experience with bisecting within the submodule to find the error.  The
> longer you wait between integrations the more costly the bisect is if you
> have to do it, but this is a choice of the super project owner / platform
> owner.  Today I assume you make those choices too, they just happen to be
> within the same repo.  I also assume that if you found the MmuLib bug in a
> few days you probably wouldn't bisect all the changes but you would review
> the history to intelligently guess at the most likely candidates and bisect
> within those commits.
>
> In the end I just don't see the big difference to the platform (OVMF in this
> case) but I do see the reduced size/noise/content helping all platforms.
> Success still relies on good development practices, regular builds, and
> testing.
>
> Thanks
> Sean
>
> 
>
>

  reply	other threads:[~2020-03-10 17:54 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-06 16:09 Adding Bhyve support into upstream EDK2 Rebecca Cran
2020-03-06 19:54 ` Laszlo Ersek
2020-03-06 20:04   ` [edk2-devel] " Laszlo Ersek
2020-03-07  1:29 ` Yao, Jiewen
2020-03-24  1:34   ` Rebecca Cran
2020-03-25  0:04     ` Laszlo Ersek
2020-03-25 18:18       ` [EXTERNAL] " Bret Barkelew
2020-03-27 12:56         ` Laszlo Ersek
2020-03-25 18:50       ` Rebecca Cran
     [not found] ` <15F9E16A0219E7B7.19404@groups.io>
2020-03-07  1:43   ` Yao, Jiewen
2020-03-07  7:39     ` Laszlo Ersek
2020-03-07  7:52       ` Ard Biesheuvel
2020-03-08  2:40         ` Rebecca Cran
2020-03-09  6:08         ` Sean
2020-03-09 22:54           ` Laszlo Ersek
2020-03-09 23:17             ` Laszlo Ersek
2020-03-10  1:50               ` Sean
2020-03-10  9:05                 ` Laszlo Ersek
2020-03-10 17:25                   ` Sean
2020-03-10 17:54                     ` Ard Biesheuvel [this message]
2020-03-10 19:10                       ` Sean
2020-03-10 19:23                         ` Michael D Kinney
2020-03-10 19:44                           ` Sean
2020-03-10 20:04                             ` Rebecca Cran
2020-03-11  0:05                             ` Laszlo Ersek
2020-03-11  0:30                               ` Sean
2020-03-11  3:21                             ` Liming Gao
2020-03-10 23:34                     ` Laszlo Ersek
2020-03-11  0:43           ` Leif Lindholm
2020-03-07  7:53       ` Laszlo Ersek

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='CAKv+Gu93LGQEJjn7Hr80upK2digaA6vXWzfJ2ecN=y82zwLV6g@mail.gmail.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