On Thu, 2 Dec 2021 12:11:38 -0500
Matthew Rosato <[email protected]> wrote:
> >
> > What happens if we migrate a VM from old to new QEMU? Won't the guest be
> > able to observe the change?
> >
>
> Yes, technically -- But # itself is not really all that important, it
> is provided from CLP Q PCI FN to be subsequently used as input into Q
> PCI FNGRP -- With the fundamental notion being that all functions that
> share the same group # share the same group CLP info. Whether the
> number is, say, 1 or 5 doesn't matter so much.
>
> However.. 0xF0 and greater are the only values reserved for hypervisor
> use. By using 0x20 we run the risk of accidentally conflating simulated
> devices and real hardware, hence the desire to change it.
>
> Is your concern about a migrated guest with a virtio device trying to do
> a CLP QUERY PCI FNGRP using 0x20 on a new QEMU? I suppose we could
> modify 'clp_service_call, case CLP_QUERY_PCI_FNGRP' to silently catch
> simulated devices trying to use something other than the default group,
> e.g.:
>
> if ((pbdev->fh & FH_SHM_EMUL) &&
> (pbdev->zpci_fn.pfgid != ZPCI_DEFAULT_FN_GRP)) {
> /* Simulated device MUST have default group */
> pbdev->zpci_fn.pfgid = ZPCI_DEFAULT_FN_GRP;
> group = s390_group_find(ZPCI_DEFAULT_FN_GRP);
> }
>
> What do you think?
Another option, and in my opinion the cleaner one would be to tie this
change to a new machine version. That is if a post-change qemu is used
in compatibility mode, we would still have the old behavior.
What do you think?
Regards,
Halil