[libvirt] [PATCH v4] Add new attribute wrpolicy to <driver> element

Eric Blake eblake at redhat.com
Tue Jan 17 22:37:59 UTC 2012


On 01/17/2012 05:44 AM, Deepak C Shetty wrote:
> This introduces new attribute wrpolicy with only supported
> value as immediate. This will be an optional
> attribute with no defaults. This helps specify whether
> to skip the host page cache.
> 
> When wrpolicy is specified, meaning when wrpolicy=immediate
> a writeback is explicitly initiated for the dirty pages in
> the host page cache as part of the guest file write operation.
> 
> Usage:
> <filesystem type='mount' accessmode='passthrough'>
>   <driver type='path' wrpolicy='immediate'/>
>   <source dir='/export/to/guest'/>
>   <target dir='mount_tag'/>
> </filesystem>
> 
> Currently this only works with type='mount' for the QEMU/KVM driver.
> 
> Signed-off-by: Deepak C Shetty <deepakcs at linux.vnet.ibm.com>

You had lots of trailing whitespace, caught by 'make syntax-check'.

> +++ b/src/qemu/qemu_capabilities.c
> @@ -148,6 +148,7 @@ VIR_ENUM_IMPL(qemuCaps, QEMU_CAPS_LAST,
>                "virtio-blk-pci.scsi",
>                "blk-sg-io",
>                "drive-copy-on-read",
> +              "fsdev-writeout", 

Trivial merge conflict here; nothing too hard to figure out.

> +++ b/tests/qemuxml2argvdata/qemuxml2argv-fs9p.args
> @@ -4,10 +4,10 @@ unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -hda \
>  /dev/HostVG/QEMUGuest1 -fsdev local,security_model=passthrough,id=fsdev-fs0,\
>  path=/export/to/guest -device virtio-9p-pci,id=fs0,fsdev=fsdev-fs0,\
>  mount_tag=/import/from/host,bus=pci.0,addr=0x3 \
> --fsdev local,security_model=mapped,id=fsdev-fs1,\
> +-fsdev local,security_model=mapped,writeout=immediate,id=fsdev-fs1,\
>  path=/export/to/guest2 -device virtio-9p-pci,id=fs1,fsdev=fsdev-fs1,\

Excellent - that's what I was looking for in an added test.

ACK after fixing up the whitespace and one other test failure, so I
pushed with this squashed in:

diff --git i/docs/formatdomain.html.in w/docs/formatdomain.html.in
index 1d6484a..de9b480 100644
--- i/docs/formatdomain.html.in
+++ w/docs/formatdomain.html.in
@@ -1424,10 +1424,10 @@
         attribute <code>type='path'</code>
         or <code>type='handle'</code> <span class="since">(since
         0.9.7)</span>. The driver block has an optional attribute
-        <code>wrpolicy</code> that further controls interaction with
-        the host page cache; omitting the attribute gives default
behavior,
-        while the value <code>immediate</code> means that a host writeback
-        is immediately triggered for all pages touched during a guest file
+        <code>wrpolicy</code> that further controls interaction with
+        the host page cache; omitting the attribute gives default behavior,
+        while the value <code>immediate</code> means that a host writeback
+        is immediately triggered for all pages touched during a guest file
         write operation <span class="since">(since 0.9.10)</span>.
         </dd>
         <dt><code>type='template'</code></dt>
diff --git i/src/conf/domain_conf.c w/src/conf/domain_conf.c
index 28f9b1b..f97014e 100644
--- i/src/conf/domain_conf.c
+++ w/src/conf/domain_conf.c
@@ -10210,7 +10210,6 @@ virDomainFSDefFormat(virBufferPtr buf,
         }

         virBufferAddLit(buf, "/>\n");
-
     }

     if (def->src) {
diff --git i/tests/qemuhelptest.c w/tests/qemuhelptest.c
index 164707d..8802271 100644
--- i/tests/qemuhelptest.c
+++ w/tests/qemuhelptest.c
@@ -666,7 +666,8 @@ mymain(void)
             QEMU_CAPS_FSDEV_READONLY,
             QEMU_CAPS_VIRTIO_BLK_SCSI,
             QEMU_CAPS_VIRTIO_BLK_SG_IO,
-            QEMU_CAPS_CPU_HOST);
+            QEMU_CAPS_CPU_HOST,
+            QEMU_CAPS_FSDEV_WRITEOUT);

     return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
 }


-- 
Eric Blake   eblake at redhat.com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 620 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20120117/c070fb2b/attachment-0001.sig>


More information about the libvir-list mailing list