On Mon, Jan 19, 2009 at 10:06:47PM -0500, john cooper wrote: > >There have been two differnet syntaxes supported in QEMU for caching, > >so we need to detect this and switch between them. Originally there > >was just > > > > cache=on & cache=off (writethrough and no caching) > > > >Now it supports > > > > cache=writeback, cache=writethrough and cache=none|off > > > >So, if we detect the earlier syntax we need to raise an error if > >the user requested writeback (or translate it to 'cache=off' for > >safety sake). > I was trying to address part of this as above. But in general > I don't see how we can force an error in advance of launching > qemu without some information beforehand of whether we're > dealing with an old vs. new syntax qemu. One way to do so is > to test launch "qemu --help" and let it tell us what it accepts. Bingo :-) We already have this problem for many QEMU arguments are do exactly that. If you loook at src/qemu_conf.c, you'll find a nice method called qemudExtractVersionInfo, which runs 'qemu -help' and checks for certain interesting command line arguments :-) So in src/qemu_conf.h just define a new enum value QEMUD_CMD_FLAG_NEW_CACHE and then check for something in the help output as per existing examples. > Alternatively we can just let qemu error exit in the case an > old/new qemu version doesn't recognize the alternate syntax. > > Other than the above I believe I've incorporated all of > your remaining suggestions. Attached is an updated patch. One note about the enums - rather than adding old style CACHEON CACHE_OFF options to the main enum in domain_conf, just create a second enum in the qemu_conf.c file for recording the mapping of virDomainDiskCache values to old style QEMU arguments values So in domain_conf.c you'd have VIR_ENUM_IMPL(virDomainDiskCacheNew, VIR_DOMAIN_DISK_CACHE_LAST, "default", "off", "writeback", "writethrough") While for the legacy qemu syntax can define VIR_ENUM_DECL(virDomainDiskCacheOld) VIR_ENUM_IMPL(virDomainDiskCacheOld, VIR_DOMAIN_DISK_CACHE_LAST, "default", "off", "off", "on") Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :| -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list