Juan Quintela wrote: > Jan Kiszka <jan.kiszka@xxxxxx> wrote: >> Juan Quintela wrote: >>> Lack of "proper" subsections. IDE is something like: >>> >>> const VMStateDescription vmstate_ide_drive = { >>> .version_id = 4, >>> .... >>> } >>> >>> static const VMStateDescription vmstate_bmdma = { >>> .name = "ide bmdma", >>> .version_id = 4, >>> ... >>> } >>> >>> const VMStateDescription vmstate_ide_pci = { >>> .name = "ide", >>> .version_id = 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 toplevel, >>> rest of "subsections" don't sent a version number. There is no way to >>> fix it in the general case. We can hack something around for ide, but >>> 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 the >>> end of next time to work on this. >> BTW, the IDE subsystem is yet lacking a proper vmstate section split-up >> along qdev boundaries (ie. vmstate_ide_pci should not contain drive >> structures). Do you plan to address this as well? > > Not for Friday, and not for 0.12. For sure. I missed that this was only a 0.12 issue. > > That is 0.13 material, and have to get one agreement on how to go. > We can go for: > - good structure > - backward compatibility > > 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. > > Later, Juan. > > 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 to > vmstate :) > I'm sorry for stealing you the pleasure to add it. :) Jan
Attachment:
signature.asc
Description: OpenPGP digital signature