On 19.03.21 16:40, Markus Armbruster wrote:
David Hildenbrand <da...@redhat.com> writes:
Let's include the new property.
Cc: Eric Blake <ebl...@redhat.com>
Cc: Markus Armbruster <arm...@redhat.com>
Signed-off-by: David Hildenbrand <da...@redhat.com>
---
hw/core/machine-qmp-cmds.c | 1 +
qapi/machine.json | 6 ++++++
2 files changed, 7 insertions(+)
diff --git a/hw/core/machine-qmp-cmds.c b/hw/core/machine-qmp-cmds.c
index 68a942595a..bd2a7f2dd0 100644
--- a/hw/core/machine-qmp-cmds.c
+++ b/hw/core/machine-qmp-cmds.c
@@ -174,6 +174,7 @@ static int query_memdev(Object *obj, void *opaque)
m->merge = object_property_get_bool(obj, "merge", &error_abort);
m->dump = object_property_get_bool(obj, "dump", &error_abort);
m->prealloc = object_property_get_bool(obj, "prealloc", &error_abort);
+ m->reserve = object_property_get_bool(obj, "reserve", &error_abort);
m->policy = object_property_get_enum(obj, "policy", "HostMemPolicy",
&error_abort);
host_nodes = object_property_get_qobject(obj,
diff --git a/qapi/machine.json b/qapi/machine.json
index c0c52aef10..12860a1f79 100644
--- a/qapi/machine.json
+++ b/qapi/machine.json
@@ -814,6 +814,11 @@
#
# @prealloc: enables or disables memory preallocation
#
+# @reserve: enables or disables reservation of swap space (or huge pages
+# if applicable). If reservation is enabled (default), actual
+# reservation depends on underlying OS support. In contrast,
+# disabling reservation without OS support will bail out. (since 6.1)
+#
Provides two settings: "enable reservation if possible", and "disable
reservation or else fail".
Does "enable reservation or else fail" make no sense, or is it merely
unimplemented?
The default for now used to be "enable reservation if possible". For
example, Windows always reserves/commits the whole region. Under Linux,
reservation is always done for private memory mappings, however,
especially for basically all (with one exception) shared memory there is
no reservation of any kind (with another exception).
For example, it does not make sense to reserve swap space for a
file-backed mapping; we can just writeback to the file in case we run
out of memory. Therefore, Linux will never reserve swap space in that case.
So if we were to implement a "enable reservation or else fail", the
default ("true") would no longer work for existing setups.
Usually we want "enable reservation if possible" unless in spacial cases
("definitely avoid the reservation")
--
Thanks,
David / dhildenb