All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cleber Rosa <crosa@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: "Daniel P. Berrange" <berrange@redhat.com>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"QEMU Developers" <qemu-devel@nongnu.org>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>
Subject: Re: "make check-acceptance" takes way too long
Date: Mon, 2 Aug 2021 18:55:57 -0400	[thread overview]
Message-ID: <CA+bd_6KTdCdUUugGHZbuyqdNrKqoGPQVCamL-rDyrDh-fCmjaA@mail.gmail.com> (raw)
In-Reply-To: <CAFEAcA8JO-8Tp1hW6e86x_=rtpJdk+cW4XnKYsko9Ehnx4_rBw@mail.gmail.com>

On Sat, Jul 31, 2021 at 4:33 PM Peter Maydell <peter.maydell@linaro.org> wrote:
>
> On Sat, 31 Jul 2021 at 19:43, Alex Bennée <alex.bennee@linaro.org> wrote:
> >
> >
> > Peter Maydell <peter.maydell@linaro.org> writes:
> >
> > > "make check-acceptance" takes way way too long. I just did a run
> > > on an arm-and-aarch64-targets-only debug build and it took over
> > > half an hour, and this despite it skipping or cancelling 26 out
> > > of 58 tests!
> > >
> > > I think that ~10 minutes runtime is reasonable. 30 is not;
> > > ideally no individual test would take more than a minute or so.
> > >
> > > Output saying where the time went. The first two tests take
> > > more than 10 minutes *each*. I think a good start would be to find
> > > a way of testing what they're testing that is less heavyweight.
> > >
> > >  (01/58) tests/acceptance/boot_linux.py:BootLinuxAarch64.test_virt_tcg_gicv2:
> > > PASS (629.74 s)
> > >  (02/58) tests/acceptance/boot_linux.py:BootLinuxAarch64.test_virt_tcg_gicv3:
> > > PASS (628.75 s)
> > >  (03/58) tests/acceptance/boot_linux.py:BootLinuxAarch64.test_virt_kvm:
> > > CANCEL: kvm accelerator does not seem to be available (1.18 s)
> >
> > For these tests which purport to exercise the various GIC configurations
> > I think we would be much better served by running kvm-unit-tests which
> > at least try and exercise all the features rather than rely on the side
> > effect of booting an entire OS.
>
> I think "can we boot Linux via UEFI?" is worth testing, as is
> "can we boot Linux and do at least some stuff in userspace?"
> (there's a lot of TCG that doesn't get exercised by pure kernel boot).
> We just need to find a guest OS that isn't so overweight it takes 10
> minutes...
>
> -- PMM
>

I think using alternative guests is absolutely the way to go here.  I
had that in mind in the past, so much that I made sure to include
cirros[1] as one of the supported images[2] in avocado.utils.vmimage
(used in these tests above).  These tests are based on the LinuxTest
class[3], and they support the distro[4] and distro_version[5]
parameters.

But, cirros doesn't ship with a fully capable cloud-init package and I
deferred to support it in avocado.utils.cloudinit, and thus, support
cirrus in those tests.  I gave that idea another try, and the results
are encouraging, with reduction of runtime by almost a factor of 6.
On my system I get:

$ avocado run -p distro=fedora -p distro_version=31
tests/acceptance/boot_linux.py:BootLinuxAarch64.test_virt_tcg_gicv3
 (1/1) tests/acceptance/boot_linux.py:BootLinuxAarch64.test_virt_tcg_gicv3:
PASS (165.48 s)

And with cirros:

$ avocado run -p distro=cirros -p distro_version=0.5.2
tests/acceptance/boot_linux.py:BootLinuxAarch64.test_virt_tcg_gicv3
(1/1) tests/acceptance/boot_linux.py:BootLinuxAarch64.test_virt_tcg_gicv3:
PASS (28.80 s)

I'll work on posting the bits needed to have this working out of the
box, but it'll require new code on the Avocado side too (tentative to
version 91.0).

Regards,
- Cleber.

[1] https://github.com/cirros-dev/cirros
[2] https://avocado-framework.readthedocs.io/en/90.0/guides/writer/libs/vmimage.html#supported-images
[3] https://qemu-project.gitlab.io/qemu/devel/testing.html#the-avocado-qemu-linuxtest-base-test-class
[4] https://qemu-project.gitlab.io/qemu/devel/testing.html#distro
[5] https://qemu-project.gitlab.io/qemu/devel/testing.html#distro-version



  reply	other threads:[~2021-08-02 22:57 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 [this message]
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
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_6KTdCdUUugGHZbuyqdNrKqoGPQVCamL-rDyrDh-fCmjaA@mail.gmail.com \
    --to=crosa@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=berrange@redhat.com \
    --cc=f4bug@amsat.org \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /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.