IOEMU images format policy
Hello,
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?
Samuel
PATCH 1/1 ioemu: save IDE write_cache flag [Was: IOEMU images format policy]
Hello,
Quoted 6 lines · Samuel Thibault, le Wed 26 Mar 2008 12:28:43 +0000, a écrit :
The short story is that we need to add the
write_cacheparameter in the IOEMU IDE format.What is the policy for the
version_idfield 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
tools/ioemu/hw/ide.c +6 -3
@@ -2723,6 +2723,7 @@ static void pci_ide_save(QEMUFile* f, voif (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, voiPCIIDEState *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, voiif (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, Blocbuffered_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, Blobuffered_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); }/***********************************************************/
Older images should work with newer QEMU, yes.
-- Keir
Quoted 15 lines · Samuel Thibault
Hello,
The short story is that we need to add the
write_cacheparameter in the IOEMU IDE format.What is the policy for the
version_idfield 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?Samuel
_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel