qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: "make check-acceptance" takes way too long


From: Thomas Huth
Subject: Re: "make check-acceptance" takes way too long
Date: Mon, 2 Aug 2021 15:25:30 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.12.0

On 02/08/2021 15.04, Daniel P. Berrangé wrote:
On Mon, Aug 02, 2021 at 02:00:19PM +0100, Peter Maydell wrote:
On Mon, 2 Aug 2021 at 13:57, Alex Bennée <alex.bennee@linaro.org> wrote:


Daniel P. Berrangé <berrange@redhat.com> writes:

On Fri, Jul 30, 2021 at 04:12:27PM +0100, Peter Maydell wrote:
"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.

While there is certainly value in testing with a real world "full" guest
OS, I think it is overkill as the default setup. I reckon we would get
80-90% of the value, by making our own test image repo, containing minimal
kernel builds for each machine/target combo we need, together with a tiny
initrd containing busybox.

Also another minor wrinkle for this test is because we are booting via
firmware we need a proper disk image with bootloader and the rest of it
which involves more faff than a simple kernel+initrd (which is my goto
format for the local zoo of testing images I have).

If you look at the log which has timestamps for the output, UEFI
takes some extra time but it's not too awful. The real timesink is
when it gets into userspace and systemd starts everything including
the kitchen sink.

Is it possible to pass "s" kernel arg to systemd to tell it to boot in
single user mode so it skips most of userspace, while still providing
a useful test scenario in much less time ?

FWIW, we're doing something similar in tests/acceptance/machine_s390_ccw_virtio.py already: The Debian job is using "BOOT_DEBUG=3" to drop into a debug shell early where we can already do all the necessary tests, and the Fedora-based job is doing the same with "rd.rescue". Additionally the Fedora job is also decompressing its initrd on the host already which is way faster than doing that via TCG in the guest. Both tricks saved us a significant amount of time in these jobs.

 Thomas




reply via email to

[Prev in Thread] Current Thread [Next in Thread]