All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cleber Rosa <crosa@redhat.com>
To: "Alex Bennée" <alex.bennee@linaro.org>
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
	"Thomas Huth" <thuth@redhat.com>,
	"Daniel P. Berrangé" <berrange@redhat.com>,
	"Beraldo Leal" <bleal@redhat.com>,
	"Markus Armbruster" <armbru@redhat.com>,
	"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
	"QEMU Developers" <qemu-devel@nongnu.org>,
	"Stefano Brivio" <sbrivio@redhat.com>,
	"Gerd Hoffmann" <kraxel@redhat.com>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>
Subject: Re: "make check-acceptance" takes way too long
Date: Tue, 1 Feb 2022 14:04:09 -0500	[thread overview]
Message-ID: <CA+bd_6KSRjuJw6j2QbdyxZd9WQVPw3+nU0d-v3=A+3cozfHwOw@mail.gmail.com> (raw)
In-Reply-To: <87fsp2xy0k.fsf@linaro.org>

On Tue, Feb 1, 2022 at 1:06 PM Alex Bennée <alex.bennee@linaro.org> wrote:
>
>
> Cleber Rosa <crosa@redhat.com> writes:
>
> > On Tue, Feb 1, 2022 at 11:20 AM Daniel P. Berrangé <berrange@redhat.com> wrote:
> >>
> >> On Tue, Feb 01, 2022 at 11:01:43AM -0500, Cleber Rosa wrote:
> >> > On Tue, Feb 1, 2022 at 6:25 AM Alex Bennée <alex.bennee@linaro.org> wrote:
> >> > >
> >> > > We have up to now tried really hard as a project to avoid building and
> >> > > hosting our own binaries to avoid theoretical* GPL compliance issues.
> >> > > This is why we've ended up relying so much on distros to build and host
> >> > > binaries we can use. Most QEMU developers have their own personal zoo of
> >> > > kernels and userspaces which they use for testing. I use custom kernels
> >> > > with a buildroot user space in initramfs for example. We even use the
> >> > > qemu advent calendar for a number of our avocado tests but we basically
> >> > > push responsibility for GPL compliance to the individual developers in
> >> > > that case.
> >> > >
> >> > > *theoretical in so far I suspect most people would be happy with a
> >> > > reference to an upstream repo/commit and .config even if that is not to
> >> > > the letter of the "offer of source code" required for true compliance.
> >> > >
> >> >
> >> > Yes, it'd be fine (great, really!) if a lightweight distro (or
> >> > kernels/initrd) were to
> >> > be maintained and identified as an "official" QEMU pick.  Putting the binaries
> >> > in the source tree though, brings all sorts of compliance issues.
> >>
> >> All that's really needed is to have the source + build recipes
> >> in a separate git repo. A pipeline can build them periodically
> >> and publish artifacts, which QEMU can then consume in its pipeline.
> >>
> >
> > I get your point, but then to acquire the artifacts one needs to:
> >
> > 1. depend on the CI system to deploy the artifacts in subsequent job
> > stages (a limitation IMO), OR
> > 2. if outside the CI, implement a download/cache mechanism for those
> > artifacts, which gets us back to the previous point, only with a
> > different distro/kernel+initrd.
> >
> > With that, the value proposal has to be in the characteristics of
> > distro/kernel+initrd itself. It has to have enough differentiation to
> > justify the development/maintenance work, as opposed to using existing
> > ones.
> >
> > FWIW, my non-scientific tests booting on my 3+ YO machine:
> >
> > * CirrOS x86_64+KVM: ~2 seconds
> > * CirroOS aarch64+TCG: ~20 seconds
> > * Fedora kernel+initrd aarch64+TCG
> > (tests/avocado/boot_linux_console.py:BootLinuxConsole.test_aarch64_virt):
> > ~1 second
> >
> > I would imagine that CirrOS aarch64+KVM on an adequate system would be
> > similar to the CirrOS x86_64+KVM.  We can develop/maintain a slimmer
> > distro, and/or set the default test workloads where they perform the
> > best.  The development cost of the latter is quite small.  I've added
> > a missing bit to the filtering capabilities in Avocado[1] and will
> > send a proposal to QEMU along these lines.
>
> FWIW the bit I'm interested in for the slow test in question here is
> that it does a full boot through the EDK2 bios (EL3->EL2->EL1). I'm not
> overly concerned about what gets run in userspace as long as something
> is run that shows EL0 can be executed and handle task switching. I
> suspect most of the userspace startup of a full distro basically just
> ends up testing the same code paths over and over again.
>

That's an interesting point.

Does that mean that ,if you are able to determine a condition that the
boot has progressed far enough, you would consider the test a success?
 I mean, that's what the "boot_linux_console.py" tests do: they find a
known pattern in the console, and do not care about what happens next.

The same could be done with the "full blown distro boot" tests
(boot_linux.py). They could be configurable to consider a "successful
boot"  anything, not just a "login prompt" or a "fully initialized and
cloud-init configured system".  We can reuse most of the same code,
and add configurable conditions for different test cases.

Does that make sense?

- Cleber.



  reply	other threads:[~2022-02-01 23:58 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-30 15:12 "make check-acceptance" takes way too long Peter Maydell
2021-07-30 15:41 ` Philippe Mathieu-Daudé
2021-07-30 15:42 ` Peter Maydell
2021-07-30 22:04   ` Cleber Rosa
2021-07-31  6:39     ` Thomas Huth
2021-07-31 17:58       ` Cleber Rosa
2021-07-31 18:41 ` Alex Bennée
2021-07-31 20:32   ` Peter Maydell
2021-08-02 22:55     ` Cleber Rosa
2021-08-02  8:38 ` Daniel P. Berrangé
2021-08-02 12:47   ` Alex Bennée
2021-08-02 12:59     ` Daniel P. Berrangé
2021-08-02 12:55   ` Alex Bennée
2021-08-02 13:00     ` Peter Maydell
2021-08-02 13:04       ` Daniel P. Berrangé
2021-08-02 13:25         ` Thomas Huth
2021-08-02 13:00     ` Daniel P. Berrangé
2021-08-02 13:27       ` Thomas Huth
2021-08-02 13:43         ` Gerd Hoffmann
2022-01-20 15:13 ` Peter Maydell
2022-01-20 15:35   ` Philippe Mathieu-Daudé via
2022-01-21  7:56   ` Thomas Huth
2022-01-21 10:50     ` Markus Armbruster
2022-01-21 11:33       ` Peter Maydell
2022-01-21 12:23         ` Alex Bennée
2022-01-21 12:41           ` Thomas Huth
2022-01-21 15:21           ` Daniel P. Berrangé
2022-01-25  9:20             ` Gerd Hoffmann
2022-02-01  6:31               ` Stefano Brivio
2022-02-01  7:49                 ` Gerd Hoffmann
2022-02-01  9:06                 ` Daniel P. Berrangé
2022-02-01 10:27                   ` Stefano Brivio
2022-02-01 11:17                     ` Alex Bennée
2022-02-01 16:01                       ` Cleber Rosa
2022-02-01 16:19                         ` Daniel P. Berrangé
2022-02-01 17:47                           ` Cleber Rosa
2022-02-01 18:03                             ` Alex Bennée
2022-02-01 19:04                               ` Cleber Rosa [this message]
2022-02-01 18:35                             ` Stefano Brivio
2022-02-01 17:59                         ` Cédric Le Goater
2022-02-01 11:06               ` Kashyap Chamarthy
2022-02-01 15:54                 ` Cleber Rosa
2022-02-01  5:29             ` Cleber Rosa
2022-02-01 17:01               ` Daniel P. Berrangé
2022-02-01 17:59                 ` Cleber Rosa
2022-02-15 18:14 ` Alex Bennée

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-all 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='CA+bd_6KSRjuJw6j2QbdyxZd9WQVPw3+nU0d-v3=A+3cozfHwOw@mail.gmail.com' \
    --to=crosa@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=bleal@redhat.com \
    --cc=f4bug@amsat.org \
    --cc=kraxel@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=sbrivio@redhat.com \
    --cc=thuth@redhat.com \
    --cc=wainersm@redhat.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.