From: Fabiano Rosas <farosas@suse.de>
To: "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>,
"Thomas Huth" <thuth@redhat.com>,
"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: Tue, 09 Jan 2024 17:58:36 -0300 [thread overview]
Message-ID: <878r4y8br7.fsf@suse.de> (raw)
In-Reply-To: <7036da8a-7a52-49e0-bcd1-8484ae86b336@redhat.com>
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.
next prev parent reply other threads:[~2024-01-09 20:59 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 [this message]
2024-01-10 10:30 ` Thomas Huth
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=878r4y8br7.fsf@suse.de \
--to=farosas@suse.de \
--cc=alex.bennee@linaro.org \
--cc=berrange@redhat.com \
--cc=bleal@redhat.com \
--cc=clg@redhat.com \
--cc=peterx@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--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 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).