From: Isaku Yamahata <isaku.yamahata@xxxxxxxxx>
Signed-off-by: Isaku Yamahata <isaku.yamahata@xxxxxxxxx>
Signed-off-by: Xiaoyao Li <xiaoyao.li@xxxxxxxxx>
---
backends/hostmem.c | 18 ++++++++++++++++++
include/sysemu/hostmem.h | 2 +-
qapi/qom.json | 4 ++++
3 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/backends/hostmem.c b/backends/hostmem.c
index 747e7838c031..dbdbb0aafd45 100644
--- a/backends/hostmem.c
+++ b/backends/hostmem.c
@@ -461,6 +461,20 @@ static void
host_memory_backend_set_reserve(Object *o, bool value, Error **errp)
}
backend->reserve = value;
}
+
+static bool host_memory_backend_get_private(Object *o, Error **errp)
+{
+ HostMemoryBackend *backend = MEMORY_BACKEND(o);
+
+ return backend->private;
+}
+
+static void host_memory_backend_set_private(Object *o, bool value,
Error **errp)
+{
+ HostMemoryBackend *backend = MEMORY_BACKEND(o);
+
+ backend->private = value;
+}
#endif /* CONFIG_LINUX */
static bool
@@ -541,6 +555,10 @@ host_memory_backend_class_init(ObjectClass *oc,
void *data)
host_memory_backend_get_reserve,
host_memory_backend_set_reserve);
object_class_property_set_description(oc, "reserve",
"Reserve swap space (or huge pages) if applicable");
+ object_class_property_add_bool(oc, "private",
+ host_memory_backend_get_private,
host_memory_backend_set_private);
+ object_class_property_set_description(oc, "private",
+ "Use KVM gmem private memory");
#endif /* CONFIG_LINUX */
/*
* Do not delete/rename option. This option must be considered
stable
diff --git a/include/sysemu/hostmem.h b/include/sysemu/hostmem.h
index 39326f1d4f9c..d88970395618 100644
--- a/include/sysemu/hostmem.h
+++ b/include/sysemu/hostmem.h
@@ -65,7 +65,7 @@ struct HostMemoryBackend {
/* protected */
uint64_t size;
bool merge, dump, use_canonical_path;
- bool prealloc, is_mapped, share, reserve;
+ bool prealloc, is_mapped, share, reserve, private;
uint32_t prealloc_threads;
ThreadContext *prealloc_context;
DECLARE_BITMAP(host_nodes, MAX_NODES + 1);
diff --git a/qapi/qom.json b/qapi/qom.json
index 7f92ea43e8e1..e0b2044e3d20 100644
--- a/qapi/qom.json
+++ b/qapi/qom.json
@@ -605,6 +605,9 @@
# @reserve: if true, reserve swap space (or huge pages) if applicable
# (default: true) (since 6.1)
#
+# @private: if true, use KVM gmem private memory
+# (default: false) (since 8.1)
+#