qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Fabiano Rosas <farosas@suse.de>
Cc: qemu-devel@nongnu.org, "Juan Quintela" <quintela@redhat.com>,
	"Peter Xu" <peterx@redhat.com>,
	"Leonardo Bras" <leobras@redhat.com>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Thomas Huth" <thuth@redhat.com>
Subject: Re: [PATCH v3 00/11] tests/migration-test: Allow testing older machine types
Date: Wed, 18 Oct 2023 15:35:12 +0100	[thread overview]
Message-ID: <ZS/tIJt7uqm/XUK3@redhat.com> (raw)
In-Reply-To: <87jzrkdne2.fsf@suse.de>

On Wed, Oct 18, 2023 at 11:19:01AM -0300, Fabiano Rosas wrote:
> Fabiano Rosas <farosas@suse.de> writes:
> 
> > This adds support for running migration-test with two different QEMU
> > versions to test migration compatibility. The tests automatically
> > choose the latest machine type supported by both QEMU versions.
> 
> Let me point out two situations that came up while developing this:
> 
> 1) There was a generic command line change in QEMU (-audio option)
>    introduced this cycle that was ported to the command line used by
>    libqtest.c. This means that when using the same command line to
>    start both guests, the older one will not recognize the option and
>    will break.
> 
>    Ideally, we would keep command lines out of the library and require
>    each test to provide their own. Then maybe the migration code could
>    cope with the change somehow.

Right the problem is that QEMU doesn't provide a long term stable
API, but has finite sliding windows where QEMU versions can be
compatible in their CLI, determined by our minimal deprecation
period of 2 releases.

eg you can come up with a CLI that is compatible for all of 7.1, 7.2
and 8.0 but you can't neccessarily come up with a CLI that is compatible
for all of 7.1, 7.2, 8.0 and 8.1 because the lifespan of that set of
versions is greater than our deprecation period.

If we did't use -audio in libqtest, we could be compatible with current
QEMU and some old QEMUs, but not future QEMU.

If we do use -audio in libqtest, we could be compatible with current
QEMU and some future QEMUs, but not old QEMUs.

This is a no win scenario.

Now, libvirt provides a long term stable configuration for QEMU that
transcends changes in QEMU CLI.

So we could come up with a live migration test between QEMU's of an
arbitrary age difference, if we used libvirt to drive the process.
That wouldn't really be qtest though. Could perhaps we done in the
context of avocado, if we used the libvirt-python API binding, but
this would be different from other avocado tests by virtue of not
using the QEMU python classes for launch.

> 2) When fixing an issue during a release cycle, that issue can still
>    show up on the next one when using this series to test
>    compatibility. There's probably not much we can do here, but
>    remember the issues that were already fixed and ignore them when
>    they appear in these compatibiliy tests.
> 
> I don't see how to avoid the situations above, but I think their
> existence implies we cannot enable by default any sort of migration
> compatibility testing that uses a live guest.


With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



  reply	other threads:[~2023-10-18 14:35 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-18 14:07 [PATCH v3 00/11] tests/migration-test: Allow testing older machine types Fabiano Rosas
2023-10-18 14:07 ` [PATCH v3 01/11] tests/qtest: Allow qtest_qemu_binary to use a custom environment variable Fabiano Rosas
2023-10-18 14:07 ` [PATCH v3 02/11] tests/qtest: Introduce qtest_init_with_env Fabiano Rosas
2023-10-18 14:13   ` Juan Quintela
2023-10-18 14:07 ` [PATCH v3 03/11] tests/qtest: Allow qtest_get_machines to use an alternate QEMU binary Fabiano Rosas
2023-10-18 14:07 ` [PATCH v3 04/11] tests/qtest: Introduce qtest_has_machine_with_env Fabiano Rosas
2023-10-18 14:07 ` [PATCH v3 05/11] tests/qtest: Introduce qtest_resolve_machine_alias Fabiano Rosas
2023-10-18 14:07 ` [PATCH v3 06/11] tests/qtest/migration: Introduce find_common_machine_version Fabiano Rosas
2023-10-18 14:07 ` [PATCH v3 07/11] tests/qtest/migration: Define a machine for all architectures Fabiano Rosas
2023-10-18 14:07 ` [PATCH v3 08/11] tests/qtest/migration: Specify the geometry of the bootsector Fabiano Rosas
2023-10-18 14:07 ` [PATCH v3 09/11] tests/qtest/migration: Set q35 as the default machine for x86_86 Fabiano Rosas
2023-10-18 14:07 ` [PATCH v3 10/11] tests/qtest/migration: Support more than one QEMU binary Fabiano Rosas
2023-10-18 14:25   ` Juan Quintela
2023-10-18 14:36     ` Fabiano Rosas
2023-10-18 14:45       ` Juan Quintela
2023-10-18 18:43   ` Peter Xu
2023-10-18 14:07 ` [PATCH v3 11/11] tests/qtest: Don't print messages from query instances Fabiano Rosas
2023-10-18 14:19 ` [PATCH v3 00/11] tests/migration-test: Allow testing older machine types Fabiano Rosas
2023-10-18 14:35   ` Daniel P. Berrangé [this message]
2023-10-18 19:01   ` 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=ZS/tIJt7uqm/XUK3@redhat.com \
    --to=berrange@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=farosas@suse.de \
    --cc=leobras@redhat.com \
    --cc=peterx@redhat.com \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=thuth@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).