From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36630) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aV8du-0003tt-J5 for qemu-devel@nongnu.org; Sun, 14 Feb 2016 21:12:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aV8dq-0003br-H9 for qemu-devel@nongnu.org; Sun, 14 Feb 2016 21:12:02 -0500 Date: Mon, 15 Feb 2016 13:12:34 +1100 From: David Gibson Message-ID: <20160215021234.GN2732@voom.fritz.box> References: <20160208155947.11480.87951.stgit@bahia.huguette.org> <20160210212612.07123ed3@bahia.huguette.org> <20160211165339.GC2529@work-vm> <20160212052426.GE2732@voom.fritz.box> <20160212121459.3bcc8b0b@bahia.huguette.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="9zecZT88ylESpiZX" Content-Disposition: inline In-Reply-To: <20160212121459.3bcc8b0b@bahia.huguette.org> Subject: Re: [Qemu-devel] [Qemu-ppc] [PATCH] spapr: skip configuration section during migration of older machines List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Greg Kurz Cc: Juan Quintela , qemu-ppc@nongnu.org, "Dr. David Alan Gilbert" , qemu-devel@nongnu.org --9zecZT88ylESpiZX Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Feb 12, 2016 at 12:14:59PM +0100, Greg Kurz wrote: > On Fri, 12 Feb 2016 16:24:26 +1100 > David Gibson wrote: >=20 > > On Thu, Feb 11, 2016 at 04:53:40PM +0000, Dr. David Alan Gilbert wrote: > > > * Greg Kurz (gkurz@linux.vnet.ibm.com) wrote: =20 > > > > On Mon, 08 Feb 2016 16:59:47 +0100 > > > > Greg Kurz wrote: =20 > > > > > Since QEMU 2.4, we have a configuration section in the migration = stream. > > > > > This must be skipped for older machines, like it is already done = for x86. > > > > > =20 > > > >=20 > > > > Ouch ! It is more complex than I thought... the migration of pserie= s-2.3 > > > > machine is already broken between QEMU-2.3 and QEMU-2.4. So this pa= tch > > > > fixes indeed migration of a pseries-2.3 machine from QEMU-2.3, but = it > > > > breaks migration of the same machine from QEMU-2.4 and up. > > > >=20 > > > > Not sure how to deal with that... is it reasonable to assume that > > > > pseries-2.3 running with QEMU-2.3 is the common case ? If so, this > > > > patch would bring more help than harm. =20 > > >=20 > > > Unfortunately we can not fix history, so we have to pick something to= fix. > > > So unless there is another reason, then I normally say keep it working > > > between the latest versions of qemu; i.e. if someone is running qemu = 2.5 with > > > -M 2.3 then dont break it when they try and migrate to 2.6, even tho= ugh > > > this would fix an older qemu migrating into 2.6. =20 > >=20 > > Yeah, I tend to agree, but I'd change my mind if there's evidence that > > the older qemu is much more widely deployed. > >=20 >=20 > I don't know how to provide proofs for that... just hints. >=20 > FWIW, both currently supported IBM's PowerKVM distros are based on older > QEMU (2.0 and 2.3), same for LTS ubuntu (2.0) and standard ubuntu (2.3). >=20 > I believe SLE 12, SLE 12 SP1 and RHEV don't ship a newer QEMU but I'm > not sure... Of course fedora already ships QEMU 2.4.1 but I don't > think so many people use it in production on expensive POWER8 based > hardware. That's convincing enough for me. With your machine option patch is anything more needed to make migration from qemu 2.3 work without manual intervention? Given the above I'm happy to break migration from 2.4 (by default) in favour of migration from 2.3. > > IIUC that would entail no actual change to the code yes? But I think > > we should put a comment there saying what the fix would be to talk to > > the older qemu, and why we chose not to apply it. > >=20 >=20 > Something like: >=20 > /* QEMU 2.4 introduced a configuration section in the migration stream. > * It is mandatory for all machine types but it is possible to disable > * it to stay compatible with older machines. Unfortunately, QEMU 2.4 > * got released without addressing the compatibility issue for pseries. > * As a consequence, pseries-2.3 and older machines cannot be migrated > * from QEMU <=3D 2.3 to QEMU >=3D 2.4. This won't be fixed as it would > * break migration of these older pseries when started with the latest > * QEMU, and we don't want that. > */ >=20 > And Dave's suggestion to disable configuration section from the command > line could allow to workaround the issue. I have the patch already, I'll > do some testing and post shortly. >=20 > > > However, as discussed on irc you might be able to fudge it; for examp= le > > > using qemu_peek_byte to test whether or not you have a configuration > > > section, and making it not error for some machine types. This isn't > > > pretty, but if it's important for you to get the coniguration working > > > then it's the type of trick that might work. > > >=20 > > > Dave > > > =20 > > > > =20 > > > > > Fixes: 61964c23e5ddd5a33f15699e45ce126f879e3e33 > > > > > Cc: qemu-stable@nongnu.org > > > > > Signed-off-by: Greg Kurz > > > > > --- > > > > > hw/ppc/spapr.c | 1 + > > > > > 1 file changed, 1 insertion(+) > > > > >=20 > > > > > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > > > > > index 5bd8fd3ef842..bca7cb8a5d27 100644 > > > > > --- a/hw/ppc/spapr.c > > > > > +++ b/hw/ppc/spapr.c > > > > > @@ -2446,6 +2446,7 @@ static void spapr_machine_2_3_instance_opti= ons(MachineState *machine) > > > > > spapr_machine_2_4_instance_options(machine); > > > > > savevm_skip_section_footers(); > > > > > global_state_set_optional(); > > > > > + savevm_skip_configuration(); > > > > > } > > > > >=20 > > > > > static void spapr_machine_2_3_class_options(MachineClass *mc) > > > > >=20 > > > > > =20 > > > > =20 > >=20 >=20 --=20 David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson --9zecZT88ylESpiZX Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJWwTQSAAoJEGw4ysog2bOS1ZkP/2QIc+kx2T1CCf6VmTdLsOvm 22twbvaRsVTLZ5Up+pkMz1Uz90oYZ/IAQbDAPpefHjj0QzAk1X2ocLg4ahiNgvY+ a6K4X1rjZYplFJN1yIJBTq1g4q/wLlnr124ipXQg83U0Dd52kgDlsEUcbjEf4+gJ CF/+Lt5tHS6iD7tiuVbqVOEjR2HLmJDPDglZjIaEUh/905C3gGohzawQM9gq0uoE 5GXL+jD10+qJCIst/EhT9wcSgFGco/bpAZigGwntAli0+n9yn3ahfAcDc8wpoXWX dtVUleSkgz3uJWfUnytrDjBdpMNMd3WUibD+uB1Ar0Z91x+TonLuWqmFmdG1XHur j+bLkkzPFXrrClRc6lH+u8reDzqT7oF29eZfFAJre3NIJ+gIojgUcn4z5qE43m3d gh8Nob29ZpdnOF8qr1bc8agnDYoWaA7lV0EjTEPab8uyMguhQIFDxNM9LEVg4ynb YULH9Dmr4OIbOQanDldAIY8/26S/grwkI1Sp3RvcnIPC0fr14RZ50tlF/Xdmc23S F7eTkUs8zFqDZ90XF4Nvq1KH8MMO4kCGfl2YYI5es0MYoQeTthx9ywyKqlGH1I7n +ix1tmE5c7FImee8ATLp1Rwh+fkPxIGg0gpd8r0Sayyt+97Cci+hbHKYUNrrSlhz 7YSCRjLQ9j93MDF3ED72 =xN7f -----END PGP SIGNATURE----- --9zecZT88ylESpiZX--