|
|
c1c534 |
From dbb91baa8d629753ac7a686ca38a621553875005 Mon Sep 17 00:00:00 2001
|
|
|
c1c534 |
Message-Id: <dbb91baa8d629753ac7a686ca38a621553875005@dist-git>
|
|
|
c1c534 |
From: Peter Krempa <pkrempa@redhat.com>
|
|
|
c1c534 |
Date: Thu, 23 Nov 2017 19:02:22 +0100
|
|
|
c1c534 |
Subject: [PATCH] qemu: caps: Add capability for 'share-rw' disk option
|
|
|
c1c534 |
|
|
|
c1c534 |
'share-rw' for the disk device configures qemu to allow concurrent
|
|
|
c1c534 |
access to the backing storage.
|
|
|
c1c534 |
|
|
|
c1c534 |
The capability is checked in various supported disk frontend buses since
|
|
|
c1c534 |
it does not make sense to partially backport it.
|
|
|
c1c534 |
|
|
|
c1c534 |
(cherry picked from commit 860a3c4bea1d24773d8a495f213d5de3ac48a462)
|
|
|
c1c534 |
|
|
|
c1c534 |
Conflicts:
|
|
|
c1c534 |
src/qemu/qemu_capabilities.c
|
|
|
c1c534 |
src/qemu/qemu_capabilities.h
|
|
|
c1c534 |
|
|
|
c1c534 |
Few capabilities were not backported, so I left empty space
|
|
|
c1c534 |
instead.
|
|
|
c1c534 |
|
|
|
c1c534 |
tests/qemucapabilitiesdata/caps_2.10.0-gicv2.aarch64.xml
|
|
|
c1c534 |
tests/qemucapabilitiesdata/caps_2.10.0-gicv3.aarch64.xml
|
|
|
c1c534 |
tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
|
|
|
c1c534 |
tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
|
|
|
c1c534 |
tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
|
|
|
c1c534 |
tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml
|
|
|
c1c534 |
tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml
|
|
|
c1c534 |
|
|
|
c1c534 |
Some of the test files were missing and the rest had conflict
|
|
|
c1c534 |
due to the above capabilities not being backported.
|
|
|
c1c534 |
|
|
|
c1c534 |
https://bugzilla.redhat.com/show_bug.cgi?id=1378242
|
|
|
c1c534 |
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
|
|
c1c534 |
---
|
|
|
c1c534 |
src/qemu/qemu_capabilities.c | 11 +++++++++++
|
|
|
c1c534 |
src/qemu/qemu_capabilities.h | 7 +++++++
|
|
|
c1c534 |
tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml | 1 +
|
|
|
c1c534 |
tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml | 1 +
|
|
|
c1c534 |
tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml | 1 +
|
|
|
c1c534 |
tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml | 1 +
|
|
|
c1c534 |
tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml | 1 +
|
|
|
c1c534 |
tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml | 1 +
|
|
|
c1c534 |
8 files changed, 24 insertions(+)
|
|
|
c1c534 |
|
|
|
c1c534 |
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
|
|
|
c1c534 |
index f30d2fa09e..2f41e076cb 100644
|
|
|
c1c534 |
--- a/src/qemu/qemu_capabilities.c
|
|
|
c1c534 |
+++ b/src/qemu/qemu_capabilities.c
|
|
|
c1c534 |
@@ -444,6 +444,13 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST,
|
|
|
c1c534 |
"vxhs",
|
|
|
c1c534 |
"virtio-blk.num-queues",
|
|
|
c1c534 |
"machine.pseries.resize-hpt",
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+ /* 275 */
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+ "disk-share-rw",
|
|
|
c1c534 |
);
|
|
|
c1c534 |
|
|
|
c1c534 |
|
|
|
c1c534 |
@@ -1686,6 +1693,7 @@ static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsVirtioBlk[] = {
|
|
|
c1c534 |
{ "scsi", QEMU_CAPS_VIRTIO_BLK_SCSI },
|
|
|
c1c534 |
{ "logical_block_size", QEMU_CAPS_BLOCKIO },
|
|
|
c1c534 |
{ "num-queues", QEMU_CAPS_VIRTIO_BLK_NUM_QUEUES },
|
|
|
c1c534 |
+ { "share-rw", QEMU_CAPS_DISK_SHARE_RW },
|
|
|
c1c534 |
};
|
|
|
c1c534 |
|
|
|
c1c534 |
static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsVirtioNet[] = {
|
|
|
c1c534 |
@@ -1716,10 +1724,12 @@ static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsVfioPCI[] = {
|
|
|
c1c534 |
static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsSCSIDisk[] = {
|
|
|
c1c534 |
{ "channel", QEMU_CAPS_SCSI_DISK_CHANNEL },
|
|
|
c1c534 |
{ "wwn", QEMU_CAPS_SCSI_DISK_WWN },
|
|
|
c1c534 |
+ { "share-rw", QEMU_CAPS_DISK_SHARE_RW },
|
|
|
c1c534 |
};
|
|
|
c1c534 |
|
|
|
c1c534 |
static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsIDEDrive[] = {
|
|
|
c1c534 |
{ "wwn", QEMU_CAPS_IDE_DRIVE_WWN },
|
|
|
c1c534 |
+ { "share-rw", QEMU_CAPS_DISK_SHARE_RW },
|
|
|
c1c534 |
};
|
|
|
c1c534 |
|
|
|
c1c534 |
static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsPiix4PM[] = {
|
|
|
c1c534 |
@@ -1750,6 +1760,7 @@ static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsQ35PCIHost[] = {
|
|
|
c1c534 |
|
|
|
c1c534 |
static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsUSBStorage[] = {
|
|
|
c1c534 |
{ "removable", QEMU_CAPS_USB_STORAGE_REMOVABLE },
|
|
|
c1c534 |
+ { "share-rw", QEMU_CAPS_DISK_SHARE_RW },
|
|
|
c1c534 |
};
|
|
|
c1c534 |
|
|
|
c1c534 |
static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsKVMPit[] = {
|
|
|
c1c534 |
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
|
|
|
c1c534 |
index e7d766f801..60818daa1c 100644
|
|
|
c1c534 |
--- a/src/qemu/qemu_capabilities.h
|
|
|
c1c534 |
+++ b/src/qemu/qemu_capabilities.h
|
|
|
c1c534 |
@@ -431,6 +431,13 @@ typedef enum {
|
|
|
c1c534 |
QEMU_CAPS_VIRTIO_BLK_NUM_QUEUES, /* virtio-blk-*.num-queues */
|
|
|
c1c534 |
QEMU_CAPS_MACHINE_PSERIES_RESIZE_HPT, /* -machine pseries,resize-hpt */
|
|
|
c1c534 |
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+ /* 275 */
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+
|
|
|
c1c534 |
+ QEMU_CAPS_DISK_SHARE_RW, /* share-rw=on for concurrent disk access */
|
|
|
c1c534 |
+
|
|
|
c1c534 |
QEMU_CAPS_LAST /* this must always be the last item */
|
|
|
c1c534 |
} virQEMUCapsFlags;
|
|
|
c1c534 |
|
|
|
c1c534 |
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
|
|
|
c1c534 |
index b0ee3f1523..c01777a5a3 100644
|
|
|
c1c534 |
--- a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
|
|
|
c1c534 |
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
|
|
|
c1c534 |
@@ -178,6 +178,7 @@
|
|
|
c1c534 |
<flag name='vxhs'/>
|
|
|
c1c534 |
<flag name='virtio-blk.num-queues'/>
|
|
|
c1c534 |
<flag name='machine.pseries.resize-hpt'/>
|
|
|
c1c534 |
+ <flag name='disk-share-rw'/>
|
|
|
c1c534 |
<version>2010000</version>
|
|
|
c1c534 |
<kvmVersion>0</kvmVersion>
|
|
|
c1c534 |
<package> (v2.10.0)</package>
|
|
|
c1c534 |
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
|
|
|
c1c534 |
index 7e44652feb..a6900bf1ef 100644
|
|
|
c1c534 |
--- a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
|
|
|
c1c534 |
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
|
|
|
c1c534 |
@@ -141,6 +141,7 @@
|
|
|
c1c534 |
<flag name='virtio-gpu.max_outputs'/>
|
|
|
c1c534 |
<flag name='vxhs'/>
|
|
|
c1c534 |
<flag name='virtio-blk.num-queues'/>
|
|
|
c1c534 |
+ <flag name='disk-share-rw'/>
|
|
|
c1c534 |
<version>2010000</version>
|
|
|
c1c534 |
<kvmVersion>0</kvmVersion>
|
|
|
c1c534 |
<package></package>
|
|
|
c1c534 |
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
|
|
|
c1c534 |
index ddbd8c32fa..33db3e6674 100644
|
|
|
c1c534 |
--- a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
|
|
|
c1c534 |
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
|
|
|
c1c534 |
@@ -224,6 +224,7 @@
|
|
|
c1c534 |
<flag name='virtio-gpu.max_outputs'/>
|
|
|
c1c534 |
<flag name='vxhs'/>
|
|
|
c1c534 |
<flag name='virtio-blk.num-queues'/>
|
|
|
c1c534 |
+ <flag name='disk-share-rw'/>
|
|
|
c1c534 |
<version>2010000</version>
|
|
|
c1c534 |
<kvmVersion>0</kvmVersion>
|
|
|
c1c534 |
<package> (v2.10.0)</package>
|
|
|
c1c534 |
diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml
|
|
|
c1c534 |
index 786cea8eab..e912211f40 100644
|
|
|
c1c534 |
--- a/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml
|
|
|
c1c534 |
+++ b/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml
|
|
|
c1c534 |
@@ -173,6 +173,7 @@
|
|
|
c1c534 |
<flag name='chardev-reconnect'/>
|
|
|
c1c534 |
<flag name='virtio-gpu.max_outputs'/>
|
|
|
c1c534 |
<flag name='virtio-blk.num-queues'/>
|
|
|
c1c534 |
+ <flag name='disk-share-rw'/>
|
|
|
c1c534 |
<version>2009000</version>
|
|
|
c1c534 |
<kvmVersion>0</kvmVersion>
|
|
|
c1c534 |
<package> (v2.9.0)</package>
|
|
|
c1c534 |
diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml
|
|
|
c1c534 |
index 896ed503c3..4150b8eee7 100644
|
|
|
c1c534 |
--- a/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml
|
|
|
c1c534 |
+++ b/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml
|
|
|
c1c534 |
@@ -138,6 +138,7 @@
|
|
|
c1c534 |
<flag name='chardev-reconnect'/>
|
|
|
c1c534 |
<flag name='virtio-gpu.max_outputs'/>
|
|
|
c1c534 |
<flag name='virtio-blk.num-queues'/>
|
|
|
c1c534 |
+ <flag name='disk-share-rw'/>
|
|
|
c1c534 |
<version>2009000</version>
|
|
|
c1c534 |
<kvmVersion>0</kvmVersion>
|
|
|
c1c534 |
<package></package>
|
|
|
c1c534 |
diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml
|
|
|
c1c534 |
index 05f9dc0308..0ea9a2fce3 100644
|
|
|
c1c534 |
--- a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml
|
|
|
c1c534 |
+++ b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml
|
|
|
c1c534 |
@@ -221,6 +221,7 @@
|
|
|
c1c534 |
<flag name='chardev-reconnect'/>
|
|
|
c1c534 |
<flag name='virtio-gpu.max_outputs'/>
|
|
|
c1c534 |
<flag name='virtio-blk.num-queues'/>
|
|
|
c1c534 |
+ <flag name='disk-share-rw'/>
|
|
|
c1c534 |
<version>2009000</version>
|
|
|
c1c534 |
<kvmVersion>0</kvmVersion>
|
|
|
c1c534 |
<package> (v2.9.0)</package>
|
|
|
c1c534 |
--
|
|
|
c1c534 |
2.15.0
|
|
|
c1c534 |
|