]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: caps: Enable QEMU_CAPS_BLOCKDEV_HOSTDEV_SCSI
authorPeter Krempa <pkrempa@redhat.com>
Wed, 8 Jul 2020 13:02:56 +0000 (15:02 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Fri, 17 Jul 2020 05:41:21 +0000 (07:41 +0200)
Enable it when regular QEMU_CAPS_BLOCKDEV is present.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_capabilities.c
tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml
tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml
tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml
tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml
tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml
tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml
tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
tests/qemuxml2argvdata/hostdev-scsi-lsi.x86_64-latest.args
tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.x86_64-latest.args

index cc54ad9283527a7d3f5f1d76e5b901e085fbc75b..d6bfec99965b7792140b95501218c101614aed06 100644 (file)
@@ -5124,6 +5124,9 @@ virQEMUCapsInitProcessCapsInterlock(virQEMUCapsPtr qemuCaps)
         !virQEMUCapsGet(qemuCaps, QEMU_CAPS_USB_STORAGE_WERROR)) {
         virQEMUCapsClear(qemuCaps, QEMU_CAPS_STORAGE_WERROR);
     }
+
+    if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV))
+        virQEMUCapsSet(qemuCaps, QEMU_CAPS_BLOCKDEV_HOSTDEV_SCSI);
 }
 
 
index 98cee36669160864e5e048d4593589406479b09a..11a964ed3976808f13b7e569e8cb2951eb44f155 100644 (file)
   <flag name='migration-param.bandwidth'/>
   <flag name='migration-param.downtime'/>
   <flag name='migration-param.xbzrle-cache-size'/>
+  <flag name='blockdev-hostdev-scsi'/>
   <version>4001050</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>61700242</microcodeVersion>
index 0b174ffeece1e5a517d9d7d9946dca7940323c3a..76e2747b65cf57592d2c0333cd4acbc835f25c41 100644 (file)
   <flag name='migration-param.bandwidth'/>
   <flag name='migration-param.downtime'/>
   <flag name='migration-param.xbzrle-cache-size'/>
+  <flag name='blockdev-hostdev-scsi'/>
   <version>4002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>39100242</microcodeVersion>
index 91ce30ba441c4b4c3dde3c35f4fe22d6e6dcab41..fd63a0ee026439bce9527f7be03dbba05cfda67c 100644 (file)
   <flag name='migration-param.downtime'/>
   <flag name='migration-param.xbzrle-cache-size'/>
   <flag name='intel-iommu.aw-bits'/>
+  <flag name='blockdev-hostdev-scsi'/>
   <version>4002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100242</microcodeVersion>
index 9446ddc22a559c16d49a1dad53d7055ba4d176b8..928af2a01c9ddd195a3403a92dfc3c55ed033097 100644 (file)
   <flag name='migration-param.downtime'/>
   <flag name='migration-param.xbzrle-cache-size'/>
   <flag name='numa.hmat'/>
+  <flag name='blockdev-hostdev-scsi'/>
   <version>5000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>61700241</microcodeVersion>
index 8c371a045b8da14fa14380ae0d7b707fa87ecca3..e8668a25a916bb15f48b329c7e8bb129255a0e82 100644 (file)
   <flag name='migration-param.xbzrle-cache-size'/>
   <flag name='spapr-tpm-proxy'/>
   <flag name='numa.hmat'/>
+  <flag name='blockdev-hostdev-scsi'/>
   <version>5000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>42900241</microcodeVersion>
index 15c9d543325ef564dc773bc2b31664b0efa04e0a..85a8a46dac8f6b1389617294c6c6ad9fc9921301 100644 (file)
   <flag name='migration-param.downtime'/>
   <flag name='migration-param.xbzrle-cache-size'/>
   <flag name='numa.hmat'/>
+  <flag name='blockdev-hostdev-scsi'/>
   <version>5000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>0</microcodeVersion>
index dafca26b8925d7df86bb3909956b33680447eed5..546b9b04224c31c0237f9074f775f232ee74d2bf 100644 (file)
   <flag name='migration-param.xbzrle-cache-size'/>
   <flag name='intel-iommu.aw-bits'/>
   <flag name='numa.hmat'/>
+  <flag name='blockdev-hostdev-scsi'/>
   <version>5000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100241</microcodeVersion>
index bd6e83ccaf29fbc36eaf805b752d9d363e8f5a7e..e05290fcfe26e9c15edf1ec82ca121e852fb80c4 100644 (file)
   <flag name='migration-param.xbzrle-cache-size'/>
   <flag name='intel-iommu.aw-bits'/>
   <flag name='numa.hmat'/>
+  <flag name='blockdev-hostdev-scsi'/>
   <version>5000050</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100242</microcodeVersion>
index 76a0708336a60cb396fd6833ff1d5d011fcd7889..d4599f6002bb75d8b8f8c54b07c6dba2272bc084 100644 (file)
@@ -34,34 +34,42 @@ file=/tmp/lib/domain--1-QEMUGuest2/master-key.aes \
 -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw",\
 "file":"libvirt-1-storage"}' \
 -device ide-hd,bus=ide.0,unit=0,drive=libvirt-1-format,id=ide0-0-0,bootindex=1 \
--drive file=/dev/sg0,if=none,format=raw,id=drive-hostdev0 \
--device scsi-generic,bus=scsi0.0,scsi-id=7,drive=drive-hostdev0,id=hostdev0 \
--drive file=/dev/sg0,if=none,format=raw,id=drive-hostdev1,readonly=on \
--device scsi-generic,bus=scsi0.0,scsi-id=6,drive=drive-hostdev1,id=hostdev1 \
--drive file.driver=iscsi,file.portal=example.org:3260,\
-file.target=iqn.1992-01.com.example,file.lun=0,file.transport=tcp,if=none,\
-format=raw,id=drive-hostdev2 \
--device scsi-generic,bus=scsi0.0,scsi-id=4,drive=drive-hostdev2,id=hostdev2 \
--drive file.driver=iscsi,file.portal=example.org:3260,\
-file.target=iqn.1992-01.com.example,file.lun=1,file.transport=tcp,if=none,\
-format=raw,id=drive-hostdev3 \
--device scsi-generic,bus=scsi0.0,scsi-id=5,drive=drive-hostdev3,id=hostdev3 \
+-blockdev '{"driver":"host_device","filename":"/dev/sg0",\
+"node-name":"libvirt-hostdev0-backend","read-only":false}' \
+-device scsi-generic,bus=scsi0.0,scsi-id=7,drive=libvirt-hostdev0-backend,\
+id=hostdev0 \
+-blockdev '{"driver":"host_device","filename":"/dev/sg0",\
+"node-name":"libvirt-hostdev1-backend","read-only":true}' \
+-device scsi-generic,bus=scsi0.0,scsi-id=6,drive=libvirt-hostdev1-backend,\
+id=hostdev1 \
+-blockdev '{"driver":"iscsi","portal":"example.org:3260",\
+"target":"iqn.1992-01.com.example","lun":0,"transport":"tcp",\
+"node-name":"libvirt-hostdev2-backend","read-only":false}' \
+-device scsi-generic,bus=scsi0.0,scsi-id=4,drive=libvirt-hostdev2-backend,\
+id=hostdev2 \
+-blockdev '{"driver":"iscsi","portal":"example.org:3260",\
+"target":"iqn.1992-01.com.example","lun":1,"transport":"tcp",\
+"node-name":"libvirt-hostdev3-backend","read-only":false}' \
+-device scsi-generic,bus=scsi0.0,scsi-id=5,drive=libvirt-hostdev3-backend,\
+id=hostdev3 \
 -object secret,id=hostdev4-secret0,\
 data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\
 keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \
--drive file.driver=iscsi,file.portal=example.org:3260,\
-file.target=iqn.1992-01.com.example:storage,file.lun=1,file.transport=tcp,\
-file.user=myname,file.password-secret=hostdev4-secret0,if=none,format=raw,\
-id=drive-hostdev4 \
--device scsi-generic,bus=scsi0.0,scsi-id=3,drive=drive-hostdev4,id=hostdev4 \
+-blockdev '{"driver":"iscsi","portal":"example.org:3260",\
+"target":"iqn.1992-01.com.example:storage","lun":1,"transport":"tcp",\
+"user":"myname","password-secret":"hostdev4-secret0",\
+"node-name":"libvirt-hostdev4-backend","read-only":false}' \
+-device scsi-generic,bus=scsi0.0,scsi-id=3,drive=libvirt-hostdev4-backend,\
+id=hostdev4 \
 -object secret,id=hostdev5-secret0,\
 data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\
 keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \
--drive file.driver=iscsi,file.portal=example.org:3260,\
-file.target=iqn.1992-01.com.example:storage,file.lun=2,file.transport=tcp,\
-file.user=myname,file.password-secret=hostdev5-secret0,if=none,format=raw,\
-id=drive-hostdev5 \
--device scsi-generic,bus=scsi0.0,scsi-id=2,drive=drive-hostdev5,id=hostdev5 \
+-blockdev '{"driver":"iscsi","portal":"example.org:3260",\
+"target":"iqn.1992-01.com.example:storage","lun":2,"transport":"tcp",\
+"user":"myname","password-secret":"hostdev5-secret0",\
+"node-name":"libvirt-hostdev5-backend","read-only":false}' \
+-device scsi-generic,bus=scsi0.0,scsi-id=2,drive=libvirt-hostdev5-backend,\
+id=hostdev5 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
 resourcecontrol=deny \
index 99b0117447ad21b1606bc30bc02228d50ddd0658..72980d58b82735f412973372ed2d1df1a8bebbc8 100644 (file)
@@ -34,40 +34,42 @@ file=/tmp/lib/domain--1-QEMUGuest2/master-key.aes \
 -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw",\
 "file":"libvirt-1-storage"}' \
 -device ide-hd,bus=ide.0,unit=0,drive=libvirt-1-format,id=ide0-0-0,bootindex=1 \
--drive file=/dev/sg0,if=none,format=raw,id=drive-hostdev0 \
+-blockdev '{"driver":"host_device","filename":"/dev/sg0",\
+"node-name":"libvirt-hostdev0-backend","read-only":false}' \
 -device scsi-generic,bus=scsi0.0,channel=0,scsi-id=4,lun=8,\
-drive=drive-hostdev0,id=hostdev0 \
--drive file=/dev/sg0,if=none,format=raw,id=drive-hostdev1,readonly=on \
+drive=libvirt-hostdev0-backend,id=hostdev0 \
+-blockdev '{"driver":"host_device","filename":"/dev/sg0",\
+"node-name":"libvirt-hostdev1-backend","read-only":true}' \
 -device scsi-generic,bus=scsi0.0,channel=0,scsi-id=4,lun=7,\
-drive=drive-hostdev1,id=hostdev1 \
--drive file.driver=iscsi,file.portal=example.org:3260,\
-file.target=iqn.1992-01.com.example,file.lun=0,file.transport=tcp,if=none,\
-format=raw,id=drive-hostdev2 \
+drive=libvirt-hostdev1-backend,id=hostdev1 \
+-blockdev '{"driver":"iscsi","portal":"example.org:3260",\
+"target":"iqn.1992-01.com.example","lun":0,"transport":"tcp",\
+"node-name":"libvirt-hostdev2-backend","read-only":false}' \
 -device scsi-generic,bus=scsi0.0,channel=0,scsi-id=2,lun=4,\
-drive=drive-hostdev2,id=hostdev2 \
--drive file.driver=iscsi,file.portal=example.org:3260,\
-file.target=iqn.1992-01.com.example,file.lun=1,file.transport=tcp,if=none,\
-format=raw,id=drive-hostdev3 \
+drive=libvirt-hostdev2-backend,id=hostdev2 \
+-blockdev '{"driver":"iscsi","portal":"example.org:3260",\
+"target":"iqn.1992-01.com.example","lun":1,"transport":"tcp",\
+"node-name":"libvirt-hostdev3-backend","read-only":false}' \
 -device scsi-generic,bus=scsi0.0,channel=0,scsi-id=2,lun=5,\
-drive=drive-hostdev3,id=hostdev3 \
+drive=libvirt-hostdev3-backend,id=hostdev3 \
 -object secret,id=hostdev4-secret0,\
 data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\
 keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \
--drive file.driver=iscsi,file.portal=example.org:3260,\
-file.target=iqn.1992-01.com.example:storage,file.lun=1,file.transport=tcp,\
-file.user=myname,file.password-secret=hostdev4-secret0,if=none,format=raw,\
-id=drive-hostdev4 \
+-blockdev '{"driver":"iscsi","portal":"example.org:3260",\
+"target":"iqn.1992-01.com.example:storage","lun":1,"transport":"tcp",\
+"user":"myname","password-secret":"hostdev4-secret0",\
+"node-name":"libvirt-hostdev4-backend","read-only":false}' \
 -device scsi-generic,bus=scsi0.0,channel=0,scsi-id=3,lun=4,\
-drive=drive-hostdev4,id=hostdev4 \
+drive=libvirt-hostdev4-backend,id=hostdev4 \
 -object secret,id=hostdev5-secret0,\
 data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\
 keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \
--drive file.driver=iscsi,file.portal=example.org:3260,\
-file.target=iqn.1992-01.com.example:storage,file.lun=2,file.transport=tcp,\
-file.user=myname,file.password-secret=hostdev5-secret0,if=none,format=raw,\
-id=drive-hostdev5 \
+-blockdev '{"driver":"iscsi","portal":"example.org:3260",\
+"target":"iqn.1992-01.com.example:storage","lun":2,"transport":"tcp",\
+"user":"myname","password-secret":"hostdev5-secret0",\
+"node-name":"libvirt-hostdev5-backend","read-only":false}' \
 -device scsi-generic,bus=scsi0.0,channel=0,scsi-id=3,lun=5,\
-drive=drive-hostdev5,id=hostdev5 \
+drive=libvirt-hostdev5-backend,id=hostdev5 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
 resourcecontrol=deny \