On Tue, Nov 01, 2016 at 12:11:14PM +0000, Jaroslav Safka wrote:
This first change introduces xml parsing support for preallocated
shared file descriptor based memory backing.
It allows vhost-user to be used without hugepages.

New xml elements:
<memoryBacking>
 <source type='file|anonymous'/>
 <access mode='shared|private'/>
 <allocation mode='immediate|ondemand'/>
</memoryBacking>
---
docs/schemas/domaincommon.rng                      |  30 +++++
src/conf/domain_conf.c                             | 138 ++++++++++++++++-----
src/conf/domain_conf.h                             |  33 +++++
.../qemuxml2xmlout-memorybacking-set.xml           |  40 ++++++
.../qemuxml2xmlout-memorybacking-unset.xml         |  40 ++++++
tests/qemuxml2xmltest.c                            |   3 +
6 files changed, 251 insertions(+), 33 deletions(-)
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-memorybacking-set.xml
create mode 100644 
tests/qemuxml2xmloutdata/qemuxml2xmlout-memorybacking-unset.xml


Tests will fail after this patch, the source files for the tests are missing.

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 03506cb..97ef769 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -830,6 +830,21 @@ VIR_ENUM_IMPL(virDomainDiskMirrorState, 
VIR_DOMAIN_DISK_MIRROR_STATE_LAST,
              "abort",
              "pivot")

+VIR_ENUM_IMPL(virDomainMemorySource, VIR_DOMAIN_MEMORY_SOURCE_LAST,
+              "none",
+              "file",
+              "anonymous")
+
+VIR_ENUM_IMPL(virDomainMemoryAccess, VIR_DOMAIN_MEMORY_ACCESS_LAST,
+              "none",
+              "shared",
+              "private")
+

This is the same as virNumaMemAccess from numa_conf.c, you should change that
one to this type so it's not duplicated.

+VIR_ENUM_IMPL(virDomainMemoryAllocation, VIR_DOMAIN_MEMORY_ALLOCATION_LAST,
+              "none",
+              "immediate",
+              "ondemand")
+
VIR_ENUM_IMPL(virDomainLoader,
              VIR_DOMAIN_LOADER_TYPE_LAST,
              "rom",
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 24aa79c..f50b575 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -567,6 +567,32 @@ typedef enum {
    VIR_DOMAIN_DISK_MIRROR_STATE_LAST
} virDomainDiskMirrorState;

+# define VIR_DOMAIN_MEMORY_DEFAULT_PATH "/var/lib/libvirt/qemu"
+

This is wrong.  You should use domain's priv->libDir which is per-domain
directory which is properly labelled and configurable.  Also it is
handled so that it works on upgrades, etc.

+typedef enum {
+    VIR_DOMAIN_MEMORY_SOURCE_NONE = 0,  /* No memory source defined */
+    VIR_DOMAIN_MEMORY_SOURCE_FILE,      /* Memory source is set as file */
+    VIR_DOMAIN_MEMORY_SOURCE_ANONYMOUS, /* Memory source is set as anonymous */
+
+    VIR_DOMAIN_MEMORY_SOURCE_LAST,
+} virDomainMemorySource;
+
+typedef enum {
+    VIR_DOMAIN_MEMORY_ACCESS_NONE = 0,  /*  No memory access defined */
+    VIR_DOMAIN_MEMORY_ACCESS_SHARED,    /* Memory access is set as shared */
+    VIR_DOMAIN_MEMORY_ACCESS_PRIVATE,   /* Memory access is set as private */
+
+    VIR_DOMAIN_MEMORY_ACCESS_LAST,
+} virDomainMemoryAccess;
+

Same here for the virNumaMemAccess, of course.

Attachment: signature.asc
Description: Digital signature

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to