From: Greg Kurz <groug@kaod.org>
To: David Gibson <david@gibson.dropbear.id.au>
Cc: "Jason Wang" <jasowang@redhat.com>,
"Riku Voipio" <riku.voipio@iki.fi>,
qemu-devel@nongnu.org, qemu-ppc@nongnu.org, clg@kaod.org,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
philmd@redhat.com
Subject: Re: [PATCH v4 17/19] spapr: Remove last pieces of SpaprIrq
Date: Wed, 20 Nov 2019 09:36:58 +0100 [thread overview]
Message-ID: <20191120093658.6ee97336@bahia.lan> (raw)
In-Reply-To: <20191120053837.GK5582@umbus.fritz.box>
[-- Attachment #1: Type: text/plain, Size: 3400 bytes --]
On Wed, 20 Nov 2019 16:38:37 +1100
David Gibson <david@gibson.dropbear.id.au> wrote:
[...]
> >
> > Hmmm... I had the impression that capability numbers would stay
> > forever, even if at some point we may decide to not support some
> > of them for newer machine types... Can you elaborate on a
> > deprecating scenario that would break ?
>
> Uhh... good point, I don't think that could break it. Even if we
> deprecated a capability we could still retain enough awareness of the
> old number to sanity check this.
>
> > > and it also might be problematic for downstream
> > > where we've sometimes selectively backported caps.
> >
> > Do you mean that capability numbers defined in spapr.h differ
> > from the ones in upstream QEMU ?
>
> No, they don't but that's actually the problem. The point is that we
> might backport some later caps without necessarily backporting all the
> earlier ones - that means that the "max cap index" no longer implies
> that all the lower indexed caps are present.
>
The idea with "max cap index" isn't that all the lower indexed caps are
present but rather higher indexed caps are absent. Maybe rename it to
something like "ignore higher cap index" or any better naming you can
think of ?
> >
> > > > > I think what we need here is a custom migrate_needed function, like we
> > > > > already have for cap_hpt_maxpagesize, to exclude it from the migration
> > > > > stream for machine versions before 4.2.
> > > > >
> > > >
> > > > No, VMState needed() hooks are for outgoing migration only.
> > >
> > > Ah, yeah, right. Essentially the problem is that in the absence of
> > > caps, the new qemu assumes they're in the default state, but if an old
> > > source had ic-mode set, then they effectively aren't. Or looked at
> > > another way, it's now trying to check that the ends match w.r.t. intc
> > > selection, but doesn't have enough information supplied by old sources
> > > to do so correctly.
> >
> > Yes, but do we really need to perform strict checks on ic-mode in the first
> > place ? I mean that migrating the state of XICS and/or XIVE entities _only_
> > requires the destination to have instantiated them, ie:
> >
> > SOURCE/DEST | xics | xive | dual
> > ------------+------+------+-------
> > xics | ok | fail | ok (*)
> > xive | fail | ok | ok (*)
> > dual | fail | fail | ok
> >
> > (*) missing migrated state for xics/xive means that the corresponding
> > objects will have reset state, like after CAS.
>
> Yes... I don't really see where you're goig with that thought.
>
I mean that if we didn't check the XICS and XIVE capabilities, we
would still fail migration when it is really needed, ie. migrating
from ic-mode=xics to ic-mode=xive or the other way round. This
would it make it possible to migrate anything to ic-mode=dual though
but I don't think this is a problem since it doesn't break anything.
> > > Ugh, that's a bit trickier to work around.
> > >
> >
> > Maybe have a migrate_needed() hook like this:
> >
> > static bool cap_xics_xive_migrate_needed(void *opaque)
> > {
> > return !SPAPR_MACHINE_GET_CLASS(opaque)->pre_4_2_migration;
> > }
> >
> > and also use it in spapr_caps_post_migration() ?
>
> Yeah, maybe. I think we have a hack like this for one of the other
> caps already.
>
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2019-11-20 8:38 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-09 6:07 [PATCH v4 00/19] spapr: IRQ subsystem cleanup David Gibson
2019-10-09 6:08 ` [PATCH v4 01/19] xive: Make some device types not user creatable David Gibson
2019-10-09 6:08 ` [PATCH v4 02/19] xics: " David Gibson
2019-10-09 6:08 ` [PATCH v4 03/19] target/ppc: Fix for optimized vsl/vsr instructions David Gibson
2019-10-09 6:08 ` [PATCH v4 04/19] spapr, xics, xive: Introduce SpaprInterruptController QOM interface David Gibson
2019-10-09 6:08 ` [PATCH v4 05/19] spapr, xics, xive: Move cpu_intc_create from SpaprIrq to SpaprInterruptController David Gibson
2019-10-09 6:08 ` [PATCH v4 06/19] spapr, xics, xive: Move irq claim and free " David Gibson
2019-10-09 6:08 ` [PATCH v4 07/19] spapr: Formalize notion of active interrupt controller David Gibson
2019-10-09 9:16 ` Cédric Le Goater
2019-10-09 9:19 ` Cédric Le Goater
2019-10-09 11:38 ` David Gibson
2019-10-09 6:08 ` [PATCH v4 08/19] spapr, xics, xive: Move set_irq from SpaprIrq to SpaprInterruptController David Gibson
2019-10-09 9:18 ` Cédric Le Goater
2019-10-09 6:08 ` [PATCH v4 09/19] spapr, xics, xive: Move print_info " David Gibson
2019-10-09 9:19 ` Cédric Le Goater
2019-10-09 6:08 ` [PATCH v4 10/19] spapr, xics, xive: Move dt_populate " David Gibson
2019-10-09 9:20 ` Cédric Le Goater
2019-10-09 6:08 ` [PATCH v4 11/19] spapr, xics, xive: Match signatures for XICS and XIVE KVM connect routines David Gibson
2019-10-09 6:08 ` [PATCH v4 12/19] spapr: Remove SpaprIrq::init_kvm hook David Gibson
2019-10-09 6:08 ` [PATCH v4 13/19] spapr, xics, xive: Move SpaprIrq::reset hook logic into activate/deactivate David Gibson
2019-10-09 14:25 ` Greg Kurz
2019-10-09 15:56 ` Cédric Le Goater
2019-10-09 15:56 ` Cédric Le Goater
2019-10-09 6:08 ` [PATCH v4 14/19] spapr, xics, xive: Move SpaprIrq::post_load hook to backends David Gibson
2019-10-09 15:57 ` Cédric Le Goater
2019-10-09 6:08 ` [PATCH v4 15/19] spapr: Remove SpaprIrq::nr_msis David Gibson
2019-10-09 15:59 ` Cédric Le Goater
2019-10-10 1:56 ` David Gibson
2019-10-09 6:08 ` [PATCH v4 16/19] spapr: Move SpaprIrq::nr_xirqs to SpaprMachineClass David Gibson
2019-10-09 16:01 ` Cédric Le Goater
2019-10-09 6:08 ` [PATCH v4 17/19] spapr: Remove last pieces of SpaprIrq David Gibson
2019-10-09 16:44 ` Cédric Le Goater
2019-10-10 1:59 ` David Gibson
2019-10-09 17:02 ` Greg Kurz
2019-10-10 2:02 ` David Gibson
2019-10-10 6:29 ` Greg Kurz
2019-10-10 20:33 ` Greg Kurz
2019-10-11 5:07 ` David Gibson
2019-10-11 6:13 ` Greg Kurz
2019-10-11 8:33 ` Greg Kurz
2019-10-12 0:00 ` David Gibson
2019-10-14 9:15 ` Greg Kurz
2019-11-20 5:38 ` David Gibson
2019-11-20 8:36 ` Greg Kurz [this message]
2019-10-09 6:08 ` [PATCH v4 18/19] spapr: Handle irq backend changes with VFIO PCI devices David Gibson
2019-10-09 8:57 ` David Gibson
2019-10-09 6:08 ` [PATCH v4 19/19] spapr: Work around spurious warnings from vfio INTx initialization David Gibson
2019-10-09 8:37 ` Greg Kurz
2019-10-09 8:52 ` David Gibson
2019-10-09 17:16 ` Greg Kurz
2019-10-10 2:02 ` David Gibson
2019-10-09 9:02 ` [PATCH v4 00/19] spapr: IRQ subsystem cleanup David Gibson
2019-10-16 16:04 ` Greg Kurz
2019-10-17 0:26 ` David Gibson
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=20191120093658.6ee97336@bahia.lan \
--to=groug@kaod.org \
--cc=clg@kaod.org \
--cc=david@gibson.dropbear.id.au \
--cc=jasowang@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=pbonzini@redhat.com \
--cc=philmd@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=riku.voipio@iki.fi \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.