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@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list