From: Thomas Huth <thuth@redhat.com>
To: "Fabiano Rosas" <farosas@suse.de>,
"Cédric Le Goater" <clg@redhat.com>,
qemu-devel@nongnu.org
Cc: "Daniel P . Berrangé" <berrange@redhat.com>,
"Peter Xu" <peterx@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
"Beraldo Leal" <bleal@redhat.com>
Subject: Re: [PATCH v3 3/4] ci: Add a migration compatibility test job
Date: Wed, 10 Jan 2024 11:30:18 +0100 [thread overview]
Message-ID: <7d4f5624-83d2-4330-9315-b23869529e99@redhat.com> (raw)
In-Reply-To: <878r4y8br7.fsf@suse.de>
On 09/01/2024 21.58, Fabiano Rosas wrote:
> Cédric Le Goater <clg@redhat.com> writes:
>
>> On 1/5/24 19:04, Fabiano Rosas wrote:
>>> The migration tests have support for being passed two QEMU binaries to
>>> test migration compatibility.
>>>
>>> Add a CI job that builds the lastest release of QEMU and another job
>>> that uses that version plus an already present build of the current
>>> version and run the migration tests with the two, both as source and
>>> destination. I.e.:
>>>
>>> old QEMU (n-1) -> current QEMU (development tree)
>>> current QEMU (development tree) -> old QEMU (n-1)
>>>
>>> The purpose of this CI job is to ensure the code we're about to merge
>>> will not cause a migration compatibility problem when migrating the
>>> next release (which will contain that code) to/from the previous
>>> release.
>>>
>>> I'm leaving the jobs as manual for now because using an older QEMU in
>>> tests could hit bugs that were already fixed in the current
>>> development tree and we need to handle those case-by-case.
>>>
>>> Note: for user forks, the version tags need to be pushed to gitlab
>>> otherwise it won't be able to checkout a different version.
>>>
>>> Signed-off-by: Fabiano Rosas <farosas@suse.de>
>>> ---
>>> .gitlab-ci.d/buildtest.yml | 53 ++++++++++++++++++++++++++++++++++++++
>>> 1 file changed, 53 insertions(+)
>>>
>>> diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
>>> index 91663946de..81163a3f6a 100644
>>> --- a/.gitlab-ci.d/buildtest.yml
>>> +++ b/.gitlab-ci.d/buildtest.yml
>>> @@ -167,6 +167,59 @@ build-system-centos:
>>> x86_64-softmmu rx-softmmu sh4-softmmu nios2-softmmu
>>> MAKE_CHECK_ARGS: check-build
>>>
>>> +build-previous-qemu:
>>> + extends: .native_build_job_template
>>> + artifacts:
>>> + when: on_success
>>> + expire_in: 2 days
>>> + paths:
>>> + - build-previous
>>> + exclude:
>>> + - build-previous/**/*.p
>>> + - build-previous/**/*.a.p
>>> + - build-previous/**/*.fa.p
>>> + - build-previous/**/*.c.o
>>> + - build-previous/**/*.c.o.d
>>> + - build-previous/**/*.fa
>>> + needs:
>>> + job: amd64-opensuse-leap-container
>>> + variables:
>>> + QEMU_JOB_OPTIONAL: 1
>>> + IMAGE: opensuse-leap
>>> + TARGETS: x86_64-softmmu aarch64-softmmu
>>> + before_script:
>>> + - export QEMU_PREV_VERSION="$(sed 's/\([0-9.]*\)\.[0-9]*/v\1.0/' VERSION)"
>>> + - git checkout $QEMU_PREV_VERSION
>>> + after_script:
>>> + - mv build build-previous
>>> +
>>> +.migration-compat-common:
>>> + extends: .common_test_job_template
>>> + needs:
>>> + - job: build-previous-qemu
>>> + - job: build-system-opensuse
>>> + allow_failure: true
>>> + variables:
>>> + QEMU_JOB_OPTIONAL: 1
>>> + IMAGE: opensuse-leap
>>> + MAKE_CHECK_ARGS: check-build
>>> + script:
>>> + - cd build
>>> + - QTEST_QEMU_BINARY_SRC=../build-previous/qemu-system-${TARGET}
>>> + QTEST_QEMU_BINARY=./qemu-system-${TARGET} ./tests/qtest/migration-test
>>> + - QTEST_QEMU_BINARY_DST=../build-previous/qemu-system-${TARGET}
>>> + QTEST_QEMU_BINARY=./qemu-system-${TARGET} ./tests/qtest/migration-test
>>> +
>>> +migration-compat-aarch64:
>>> + extends: .migration-compat-common
>>> + variables:
>>> + TARGET: aarch64
>>> +
>>> +migration-compat-x86_64:
>>> + extends: .migration-compat-common
>>> + variables:
>>> + TARGET: x86_64
>>
>>
>> What about the others archs, s390x and ppc ? Do you lack the resources
>> or are there any problems to address ?
>
> Currently s390x and ppc are only tested on KVM. Which means they are not
> tested at all unless someone runs migration-test on a custom runner. The
> same is true for this test.
>
> The TCG tests have been disabled:
> /*
> * On ppc64, the test only works with kvm-hv, but not with kvm-pr and TCG
> * is touchy due to race conditions on dirty bits (especially on PPC for
> * some reason)
> */
>
> /*
> * Similar to ppc64, s390x seems to be touchy with TCG, so disable it
> * there until the problems are resolved
> */
>
> It would be great if we could figure out what these issues are and fix
> them so we can at least test with TCG like we do for aarch64.
>
> Doing a TCG run of migration-test with both archs (one binary only, not
> this series):
>
> - ppc survived one run, taking 6 minutes longer than x86/Aarch64.
> - s390x survived one run, taking 40s less than x86/aarch64.
>
> I'll leave them enabled on my machine and do some runs here and there,
> see if I spot something. If not, we can consider re-enabling them once
> we figure out why ppc takes so long.
I was curious and re-enabled the ppc64 and s390x migration tests with TCG on
my laptop here, running "make check-tcg -j$(nproc)" in a loop. s390x
unfortunately hang after the second iteration already, but ppc64 survived 25
runs (then I stopped it).
So we might want to try to re-enable ppc64 at least. But we might need to
cut the run time for ppc64 with TCG a little bit, it is currently the
longest test on my system (it takes 240s to finish, while all other tests
finish within 150s).
Thomas
next prev parent reply other threads:[~2024-01-10 10:30 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-05 18:04 [PATCH v3 0/4] migration & CI: Add a CI job for migration compat testing Fabiano Rosas
2024-01-05 18:04 ` [PATCH v3 1/4] tests/qtest: Add a helper to query the QEMU version Fabiano Rosas
2024-01-08 8:13 ` Peter Xu
2024-01-05 18:04 ` [PATCH v3 2/4] tests/qtest/migration: Add infrastructure to skip tests on older QEMUs Fabiano Rosas
2024-01-08 8:13 ` Peter Xu
2024-01-08 8:39 ` Peter Xu
2024-01-08 14:49 ` Fabiano Rosas
2024-01-09 2:26 ` Peter Xu
2024-01-09 16:50 ` Fabiano Rosas
2024-01-08 14:57 ` Daniel P. Berrangé
2024-01-05 18:04 ` [PATCH v3 3/4] ci: Add a migration compatibility test job Fabiano Rosas
2024-01-09 7:14 ` Peter Xu
2024-01-09 13:00 ` Fabiano Rosas
2024-01-10 3:58 ` Peter Xu
2024-01-09 18:15 ` Cédric Le Goater
2024-01-09 20:58 ` Fabiano Rosas
2024-01-10 10:30 ` Thomas Huth [this message]
2024-01-05 18:04 ` [PATCH v3 4/4] [NOT FOR MERGE] tests/qtest/migration: Adapt tests to use older QEMUs Fabiano Rosas
2024-01-08 8:15 ` Peter Xu
2024-01-08 15:37 ` Fabiano Rosas
2024-01-09 3:51 ` Peter Xu
2024-01-09 14:46 ` Fabiano Rosas
2024-01-10 4:08 ` Peter Xu
2024-01-10 14:42 ` Fabiano Rosas
2024-01-11 2:35 ` Peter Xu
2024-01-11 13:58 ` Fabiano Rosas
2024-01-15 4:13 ` Peter Xu
2024-01-15 13:45 ` Fabiano Rosas
2024-01-15 23:28 ` Peter Xu
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=7d4f5624-83d2-4330-9315-b23869529e99@redhat.com \
--to=thuth@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=berrange@redhat.com \
--cc=bleal@redhat.com \
--cc=clg@redhat.com \
--cc=farosas@suse.de \
--cc=peterx@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).