]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: Introduce <shareable> for hostdev
authorOsier Yang <jyang@redhat.com>
Fri, 3 May 2013 18:07:33 +0000 (02:07 +0800)
committerOsier Yang <jyang@redhat.com>
Thu, 16 May 2013 15:41:25 +0000 (23:41 +0800)
Unlike disk device, the scsi-generic always writethrough the data,
so no need to introduce a "cache" tag, and set "cache=off".

docs/formatdomain.html.in
docs/schemas/domaincommon.rng
src/conf/domain_conf.c
src/conf/domain_conf.h
tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-shareable.xml [new file with mode: 0644]
tests/qemuxml2xmltest.c

index 5e89a92401242e9df74affce3bf656de19297ad2..97dffc8b506ee3852b6ead9a46adc5f7ccb62d00 100644 (file)
       <dd>Indicates that the device is readonly, only supported by SCSI host
         device now. <span class="since">Since 1.0.6 (QEMU and KVM only)</span>
       </dd>
+      <dt><code>shareable</code></dt>
+      <dd>If present, this indicates the device is expected to be shared
+        between domains (assuming the hypervisor and OS support this).
+        Only supported by SCSI host device.
+        <span class="since">Since 1.0.6</span>
+      </dd>
     </dl>
 
 
index 361794e9b1dea856b8e6b1678ccaebb9a3c0e3e1..548838f90d75ce2049e4fc95abb4b6a74eebbdc2 100644 (file)
             <empty/>
           </element>
         </optional>
+        <optional>
+          <element name="shareable">
+            <empty/>
+          </element>
+        </optional>
       </interleave>
     </element>
   </define>
index 81e8087df7d78fe408298c82a8fb9ae659b49def..781a7b648a84a461b6c65e2245504287cf588ad1 100644 (file)
@@ -8829,6 +8829,8 @@ virDomainHostdevDefParseXML(const xmlNodePtr node,
 
             if (virXPathBoolean("boolean(./readonly)", ctxt))
                 def->readonly = true;
+            if (virXPathBoolean("boolean(./shareable)", ctxt))
+                def->shareable = true;
             break;
         }
     }
@@ -15457,6 +15459,8 @@ virDomainHostdevDefFormat(virBufferPtr buf,
 
     if (def->readonly)
         virBufferAddLit(buf, "<readonly/>\n");
+    if (def->shareable)
+        virBufferAddLit(buf, "<shareable/>\n");
     virBufferAdjustIndent(buf, -6);
 
     if (virDomainDeviceInfoFormat(buf, def->info,
index c176a4cd3acf5decc0ade54ecb2df0d7f1ed1d2a..7716dab608beda55e4952916ea4b7f2ff53d7ce8 100644 (file)
@@ -462,6 +462,7 @@ struct _virDomainHostdevDef {
     bool managed;
     bool missing;
     bool readonly;
+    bool shareable;
     union {
         virDomainHostdevSubsys subsys;
         virDomainHostdevCaps caps;
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-shareable.xml b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-shareable.xml
new file mode 100644 (file)
index 0000000..f9ce8af
--- /dev/null
@@ -0,0 +1,36 @@
+<domain type='qemu'>
+  <name>QEMUGuest2</name>
+  <uuid>c7a5fdbd-edaf-9466-926a-d65c16db1809</uuid>
+  <memory unit='KiB'>219100</memory>
+  <currentMemory unit='KiB'>219100</currentMemory>
+  <vcpu placement='static'>1</vcpu>
+  <os>
+    <type arch='i686' machine='pc'>hvm</type>
+    <boot dev='hd'/>
+  </os>
+  <clock offset='utc'/>
+  <on_poweroff>destroy</on_poweroff>
+  <on_reboot>restart</on_reboot>
+  <on_crash>destroy</on_crash>
+  <devices>
+    <emulator>/usr/bin/qemu</emulator>
+    <disk type='block' device='disk'>
+      <source dev='/dev/HostVG/QEMUGuest2'/>
+      <target dev='hda' bus='ide'/>
+      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+    </disk>
+    <controller type='scsi' index='0' model='virtio-scsi'/>
+    <controller type='usb' index='0'/>
+    <controller type='ide' index='0'/>
+    <controller type='pci' index='0' model='pci-root'/>
+    <hostdev mode='subsystem' type='scsi' managed='yes'>
+      <source>
+        <adapter name='scsi_host0'/>
+        <address bus='0' target='0' unit='0'/>
+      </source>
+      <shareable/>
+      <address type='drive' controller='0' bus='0' target='4' unit='8'/>
+    </hostdev>
+    <memballoon model='virtio'/>
+  </devices>
+</domain>
index 807b623417adf7f96cb3cab0705cbc95254b7c0a..ba492d141f8a0b361293c2b9afb91b6a8506bcae 100644 (file)
@@ -294,6 +294,7 @@ mymain(void)
     DO_TEST("hostdev-scsi-readonly");
 
     DO_TEST("disk-copy_on_read");
+    DO_TEST("hostdev-scsi-shareable");
 
     virObjectUnref(driver.caps);
     virObjectUnref(driver.xmlopt);