Hello,
Samuel Thibault, le Wed 26 Mar 2008 12:28:43 +0000, a écrit :
> The short story is that we need to add the write_cache parameter in the
> IOEMU IDE format.
>
> What is the policy for the version_id field of IOEMU images? It looks
> like we don't care about the compatibility with QEMU images, but I guess
> we want compatibility with IOEMU images of other Xen versions?
Here is a patch that preserve compatibility with IOEMU but not QEMU.
That should fix some of the performance drops in restored HVM domains.
ioemu: save IDE write cache flag
Signed-off-by: Samuel Thibault <samuel.thibault@xxxxxxxxxxxxx>
diff -r 01573df1051e tools/ioemu/hw/ide.c
--- a/tools/ioemu/hw/ide.c Wed Mar 26 12:37:37 2008 +0000
+++ b/tools/ioemu/hw/ide.c Wed Mar 26 12:47:18 2008 +0000
@@ -2723,6 +2723,7 @@ static void pci_ide_save(QEMUFile* f, vo
if (s->identify_set) {
qemu_put_buffer(f, (const uint8_t *)s->identify_data, 512);
}
+ qemu_put_8s(f, &s->write_cache);
qemu_put_8s(f, &s->feature);
qemu_put_8s(f, &s->error);
qemu_put_be32s(f, &s->nsector);
@@ -2749,7 +2750,7 @@ static int pci_ide_load(QEMUFile* f, voi
PCIIDEState *d = opaque;
int ret, i;
- if (version_id != 1)
+ if (version_id != 1 && version_id != 2)
return -EINVAL;
ret = pci_device_load(&d->dev, f);
if (ret < 0)
@@ -2780,6 +2781,8 @@ static int pci_ide_load(QEMUFile* f, voi
if (s->identify_set) {
qemu_get_buffer(f, (uint8_t *)s->identify_data, 512);
}
+ if (version_id >= 2)
+ qemu_get_8s(f, &s->write_cache);
qemu_get_8s(f, &s->feature);
qemu_get_8s(f, &s->error);
qemu_get_be32s(f, &s->nsector);
@@ -2854,7 +2857,7 @@ void pci_piix_ide_init(PCIBus *bus, Bloc
buffered_pio_init();
- register_savevm("ide", 0, 1, pci_ide_save, pci_ide_load, d);
+ register_savevm("ide", 0, 2, pci_ide_save, pci_ide_load, d);
}
/* hd_table must contain 4 block drivers */
@@ -2895,7 +2898,7 @@ void pci_piix3_ide_init(PCIBus *bus, Blo
buffered_pio_init();
- register_savevm("ide", 0, 1, pci_ide_save, pci_ide_load, d);
+ register_savevm("ide", 0, 2, pci_ide_save, pci_ide_load, d);
}
/***********************************************************/
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|