On 09/13/2017 05:21 AM, Liu Qing wrote: > Qcow2 small IO random write performance will drop dramatically if the l2 > cache table could not cover the whole disk. This will be a lot of l2 > cache table RW operations if cache miss happens frequently. > > This patch exports the qcow2 driver parameter > l2-cache-size/refcount-cache-size, first added in Qemu 2.2, and > cache-clean-interval, first added in Qemu 2.5, in libvirt. > > Change since v3: a) copy qcow2 cache configurion from source to backing > to backing file source. The difference you list doesn't make any sense. The only difference between this an V3 is removing the qemu_command.c from patch1. I did a git diff between the two trees I have from your patches: diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index c3b81e138..e95683965 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -14318,11 +14318,6 @@ qemuDomainSnapshotDiskDataCollect(virQEMUDriverPtr driver, if (!(dd->src = virStorageSourceCopy(snap->def->disks[i].src, false))) goto error; - /* keep the qcow2 cache configuration */ - dd->src->l2_cache_size = vm->def->disks[i]->src->l2_cache_size; - dd->src->refcount_cache_size = vm->def->disks[i]->src->refcount_cache_size; - dd->src->cache_clean_interval = vm->def->disks[i]->src->cache_clean_interval; - if (virStorageSourceInitChainElement(dd->src, dd->disk->src, false) < 0) goto error; I'll stick with the v3 version and adjustments from comments that I made. John > Liu Qing (2): > conf, docs: Add qcow2 cache configuration support > qemu: add capability checking for qcow2 cache configuration > > docs/formatdomain.html.in | 43 ++++++++++ > docs/schemas/domaincommon.rng | 35 ++++++++ > src/conf/domain_conf.c | 95 +++++++++++++++++++++- > src/qemu/qemu_capabilities.c | 9 ++ > src/qemu/qemu_capabilities.h | 3 + > src/qemu/qemu_command.c | 33 ++++++++ > src/qemu/qemu_driver.c | 5 ++ > src/util/virstoragefile.c | 3 + > src/util/virstoragefile.h | 6 ++ > tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml | 3 + > .../caps_2.6.0-gicv2.aarch64.xml | 3 + > .../caps_2.6.0-gicv3.aarch64.xml | 3 + > tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml | 3 + > tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml | 3 + > tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml | 3 + > tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml | 3 + > tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml | 3 + > tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml | 3 + > tests/qemucapabilitiesdata/caps_2.9.0.ppc64le.xml | 3 + > tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml | 3 + > tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml | 3 + > .../qemuxml2argv-disk-drive-qcow2-cache.args | 28 +++++++ > .../qemuxml2argv-disk-drive-qcow2-cache.xml | 43 ++++++++++ > tests/qemuxml2argvtest.c | 4 + > .../qemuxml2xmlout-disk-drive-qcow2-cache.xml | 43 ++++++++++ > tests/qemuxml2xmltest.c | 1 + > 26 files changed, 386 insertions(+), 1 deletion(-) > create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-cache.args > create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-cache.xml > create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-qcow2-cache.xml > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list