[libvirt] [PATCH 07/20] qemu: Add newer shmem models

Martin Kletzander mkletzan at redhat.com
Thu Sep 15 16:14:32 UTC 2016


The old ivshmem is deprecated in QEMU, so let's use the better
ivshmem-{plain,doorbell} variants instead.

Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
---
 docs/schemas/domaincommon.rng | 2 ++
 src/conf/domain_conf.c        | 4 +++-
 src/conf/domain_conf.h        | 2 ++
 src/qemu/qemu_command.c       | 7 +++++++
 4 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index fd7d52d72515..9827d6511781 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -3598,6 +3598,8 @@
             <attribute name="type">
               <choice>
                 <value>ivshmem</value>
+                <value>ivshmem-plain</value>
+                <value>ivshmem-doorbell</value>
               </choice>
             </attribute>
           </element>
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 2ccc10515f30..eeb8238c6b2f 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -844,7 +844,9 @@ VIR_ENUM_IMPL(virDomainMemoryModel, VIR_DOMAIN_MEMORY_MODEL_LAST,
               "", "dimm")

 VIR_ENUM_IMPL(virDomainShmemModel, VIR_DOMAIN_SHMEM_MODEL_LAST,
-              "ivshmem")
+              "ivshmem",
+              "ivshmem-plain",
+              "ivshmem-doorbell")

 VIR_ENUM_IMPL(virDomainShmemRole, VIR_DOMAIN_SHMEM_ROLE_LAST,
               "default",
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index bd674a565373..3013278458d8 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -1556,6 +1556,8 @@ struct _virDomainNVRAMDef {

 typedef enum {
     VIR_DOMAIN_SHMEM_MODEL_IVSHMEM,
+    VIR_DOMAIN_SHMEM_MODEL_IVSHMEM_PLAIN,
+    VIR_DOMAIN_SHMEM_MODEL_IVSHMEM_DOORBELL,

     VIR_DOMAIN_SHMEM_MODEL_LAST
 } virDomainShmemModel;
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 60d662270cc8..2b8e62dd4f30 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -8660,6 +8660,13 @@ qemuBuildShmemCommandLine(virLogManagerPtr logManager,
         VIR_FREE(devstr);
         break;

+    case VIR_DOMAIN_SHMEM_MODEL_IVSHMEM_PLAIN:
+    case VIR_DOMAIN_SHMEM_MODEL_IVSHMEM_DOORBELL:
+        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+                       _("%s device is not supported with this QEMU binary"),
+                       virDomainShmemModelTypeToString(shmem->model));
+        break;
+
     /* coverity[dead_error_begin] */
     case VIR_DOMAIN_SHMEM_MODEL_LAST:
         return -1;
-- 
2.10.0




More information about the libvir-list mailing list