Jan Kiszka wrote:
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
whats the status of this issue? will migration from 0.12.2 to
0.12.4.1/0.13 work again?
whats the scheduled release dates for 0.12.4.1 and 0.13 (still july 1st) ?
thanks,
peter
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html