From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Kiszka Subject: Re: Qemu-KVM Livate Migration 0.12.2 -> 0.12.3/4 broken? Date: Mon, 17 May 2010 12:35:35 +0200 Message-ID: <4BF11BF7.5040301@web.de> References: <4BE93882.8050105@dlh.net> <4BEFDEE1.5070906@redhat.com> <4BF0336D.1000000@web.de> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig37D52BD451673807C3254CA8" Cc: Avi Kivity , Peter Lieven , kvm@vger.kernel.org, qemu-devel@nongnu.org To: Juan Quintela Return-path: Received: from fmmailgate02.web.de ([217.72.192.227]:46014 "EHLO fmmailgate02.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751374Ab0EQKfm (ORCPT ); Mon, 17 May 2010 06:35:42 -0400 In-Reply-To: Sender: kvm-owner@vger.kernel.org List-ID: This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig37D52BD451673807C3254CA8 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Juan Quintela wrote: > Jan Kiszka wrote: >> Juan Quintela wrote: >>> Lack of "proper" subsections. IDE is something like: >>> >>> const VMStateDescription vmstate_ide_drive =3D { >>> .version_id =3D 4, >>> .... >>> } >>> >>> static const VMStateDescription vmstate_bmdma =3D { >>> .name =3D "ide bmdma", >>> .version_id =3D 4, >>> ... >>> } >>> >>> const VMStateDescription vmstate_ide_pci =3D { >>> .name =3D "ide", >>> .version_id =3D 4, >>> .... >>> VMSTATE_STRUCT_ARRAY(bmdma, PCIIDEState, 2, 0, >>> vmstate_bmdma, BMDMAState), >>> VMSTATE_IDE_DRIVES(bus[0].ifs, PCIIDEState), >>> VMSTATE_IDE_DRIVES(bus[1].ifs, PCIIDEState), >>> .... >>> } >>> >>> >>> Notice that everything is at version 4. It used to be everything at >>> version 3. Now the problem is that when migrating from v3 -> v4. We= >>> put in one place v3, But we only have a version number at the topleve= l, >>> rest of "subsections" don't sent a version number. There is no way t= o >>> fix it in the general case. We can hack something around for ide, bu= t >>> that will just be a hack, or we can backport marcelo change and port = it >>> as a proper subsection (that is my plan). I expect to have time at t= he >>> end of next time to work on this. >> BTW, the IDE subsystem is yet lacking a proper vmstate section split-u= p >> along qdev boundaries (ie. vmstate_ide_pci should not contain drive >> structures). Do you plan to address this as well? >=20 > Not for Friday, and not for 0.12. For sure. I missed that this was only a 0.12 issue. >=20 > That is 0.13 material, and have to get one agreement on how to go. > We can go for: > - good structure > - backward compatibility >=20 > I can't see any good way to get both at this stage :( But I am open to= > sugestions. Based on recent experiments with vmstate to enhance the hpet, I'm fairly optimistic that we can have both (just the code complexity suffers a bit): Split up the drive sections for new versions, but keep the legacy fields with attached .field_exists() filters for reading of old versions. But I may also underestimate issues of this particular case. >=20 > Later, Juan. >=20 > PD. BTW, very good work with printing the vmstate, that was one of the = goals > when we added it, that was the next step after porting everything t= o > vmstate :) >=20 I'm sorry for stealing you the pleasure to add it. :) Jan --------------enig37D52BD451673807C3254CA8 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iEYEARECAAYFAkvxG/sACgkQitSsb3rl5xRajACgiHDMCVdkVdd+w13SzzWLR2Tu +i4AoJ0vn9u2DJrm5l8gdP05kAaEzS+Y =ibm1 -----END PGP SIGNATURE----- --------------enig37D52BD451673807C3254CA8-- From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=34224 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1ODxfv-000633-4V for qemu-devel@nongnu.org; Mon, 17 May 2010 06:35:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1ODxfm-0000R8-RL for qemu-devel@nongnu.org; Mon, 17 May 2010 06:35:55 -0400 Received: from fmmailgate02.web.de ([217.72.192.227]:46022) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1ODxfk-0000QF-1W for qemu-devel@nongnu.org; Mon, 17 May 2010 06:35:46 -0400 Message-ID: <4BF11BF7.5040301@web.de> Date: Mon, 17 May 2010 12:35:35 +0200 From: Jan Kiszka MIME-Version: 1.0 References: <4BE93882.8050105@dlh.net> <4BEFDEE1.5070906@redhat.com> <4BF0336D.1000000@web.de> In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig37D52BD451673807C3254CA8" Sender: jan.kiszka@web.de Subject: [Qemu-devel] Re: Qemu-KVM Livate Migration 0.12.2 -> 0.12.3/4 broken? List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Juan Quintela Cc: Peter Lieven , Avi Kivity , kvm@vger.kernel.org, qemu-devel@nongnu.org This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig37D52BD451673807C3254CA8 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Juan Quintela wrote: > Jan Kiszka wrote: >> Juan Quintela wrote: >>> Lack of "proper" subsections. IDE is something like: >>> >>> const VMStateDescription vmstate_ide_drive =3D { >>> .version_id =3D 4, >>> .... >>> } >>> >>> static const VMStateDescription vmstate_bmdma =3D { >>> .name =3D "ide bmdma", >>> .version_id =3D 4, >>> ... >>> } >>> >>> const VMStateDescription vmstate_ide_pci =3D { >>> .name =3D "ide", >>> .version_id =3D 4, >>> .... >>> VMSTATE_STRUCT_ARRAY(bmdma, PCIIDEState, 2, 0, >>> vmstate_bmdma, BMDMAState), >>> VMSTATE_IDE_DRIVES(bus[0].ifs, PCIIDEState), >>> VMSTATE_IDE_DRIVES(bus[1].ifs, PCIIDEState), >>> .... >>> } >>> >>> >>> Notice that everything is at version 4. It used to be everything at >>> version 3. Now the problem is that when migrating from v3 -> v4. We= >>> put in one place v3, But we only have a version number at the topleve= l, >>> rest of "subsections" don't sent a version number. There is no way t= o >>> fix it in the general case. We can hack something around for ide, bu= t >>> that will just be a hack, or we can backport marcelo change and port = it >>> as a proper subsection (that is my plan). I expect to have time at t= he >>> end of next time to work on this. >> BTW, the IDE subsystem is yet lacking a proper vmstate section split-u= p >> along qdev boundaries (ie. vmstate_ide_pci should not contain drive >> structures). Do you plan to address this as well? >=20 > Not for Friday, and not for 0.12. For sure. I missed that this was only a 0.12 issue. >=20 > That is 0.13 material, and have to get one agreement on how to go. > We can go for: > - good structure > - backward compatibility >=20 > I can't see any good way to get both at this stage :( But I am open to= > sugestions. Based on recent experiments with vmstate to enhance the hpet, I'm fairly optimistic that we can have both (just the code complexity suffers a bit): Split up the drive sections for new versions, but keep the legacy fields with attached .field_exists() filters for reading of old versions. But I may also underestimate issues of this particular case. >=20 > Later, Juan. >=20 > PD. BTW, very good work with printing the vmstate, that was one of the = goals > when we added it, that was the next step after porting everything t= o > vmstate :) >=20 I'm sorry for stealing you the pleasure to add it. :) Jan --------------enig37D52BD451673807C3254CA8 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iEYEARECAAYFAkvxG/sACgkQitSsb3rl5xRajACgiHDMCVdkVdd+w13SzzWLR2Tu +i4AoJ0vn9u2DJrm5l8gdP05kAaEzS+Y =ibm1 -----END PGP SIGNATURE----- --------------enig37D52BD451673807C3254CA8--