11.05.2023 11:40, Juan Quintela wrote:
Fiona Ebner <f.eb...@proxmox.com> wrote:
...
Closes: https://gitlab.com/qemu-project/qemu/-/issues/1576

AFAICT, this breaks (forward) migration from 8.0 to 8.0 + this patch
when using machine type <= 7.2. That is because after this patch, when
using machine type <= 7.2, the wmask for the register is not set and
when 8.0 sends a nonzero value for the register, the error condition in
get_pci_config_device() will trigger again.

I think that works correctly.
See https://lists.gnu.org/archive/html/qemu-devel/2023-05/msg02733.html

What we have (before this patch) (using abbrevs as in the doc before)

Current state:

(1) qemu-8.0 -M pc-8.0 -> qemu-8.0 -M pc-8.0 works

     not affected by the patch

(2) qemu-7.2 -M pc-7.2 -> qemu-8.0 -M pc-8.0 works

     works well because 7.2 don't change that field

(3) qemu-8.0 -M pc-7.2 -> qemu-7.2 -M pc-7.2 fails

With the patch we fixed 3, so once it is in stable, 1 and 2 continue as
usual and for (3) we will have:

(3) qemu-8.0.1 -M pc-7.2 -> qemu-7.2 -M pc-7.2 works

If what you mean is that:

(3) qemu-8.0 -M pc-7.2 -> qemu-8.0.1 -M pc-7.2 works

Will fail, that is true, but I can think a "sane" way to fix this.

That's a great summary indeed.

Is it necessary to also handle that? Maybe by special casing the error
condition in get_pci_config_device() to be prepared to accept such a
stream from 8.0?

Well, we can do that, but it is to the pci maintainers to decide if that
is "sane".

So, can we go from here somewhere? I'd love this fix to be in 8.0.1,
either with or without the (un)sane part of the (3) variant above which
might fail.  Or else we'll have the same situation in 8.0.1 as we now
have in 8.0.0 (the deadline is May-27).

We did broke x.y.0 => x.y.1 migration before already like this, such as
with 7.2.0=>7.2.1. I'm not saying it's a nice thing to do, just stating
a fact. Yes, it is better to avoid such breakage, but.. meh..

Thanks!

/mjt

Reply via email to