Fallback might affect guest or worse whole host performance
or functionality if backing file were used to share guest RAM
with another process.
Patch deprecates fallback so that we could remove it in future
and ensure that QEMU will provide expected behavior and fail if
it can't use user provided backing file.
Signed-off-by: Igor Mammedov <imammedo(a)redhat.com>
---
PS:
Patch is written on top of
[PATCH v4 0/3] numa: deprecate '-numa node, mem' and default memory
distribution
to avoid conflicts in qemu-deprecated.texi
numa.c | 4 ++--
qemu-deprecated.texi | 8 ++++++++
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/numa.c b/numa.c
index 91a29138a2..53d67b8ad9 100644
--- a/numa.c
+++ b/numa.c
@@ -494,8 +494,8 @@ static void allocate_system_memory_nonnuma(MemoryRegion *mr, Object
*owner,
if (mem_prealloc) {
exit(1);
}
- error_report("falling back to regular RAM allocation.");
-
+ warn_report("falling back to regular RAM allocation. "
+ "Fallback to RAM allocation is deprecated.");
/* Legacy behavior: if allocation failed, fall back to
* regular RAM allocation.
*/
diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi
index 2fe9b72121..2193705644 100644
--- a/qemu-deprecated.texi
+++ b/qemu-deprecated.texi
@@ -112,6 +112,14 @@ QEMU using implicit generic or board specific splitting rule.
Use @option{memdev} with @var{memory-backend-ram} backend or @option{mem} (if
it's supported by used machine type) to define mapping explictly instead.
+@subsection -mem-path fallback to RAM (since 4.1)
+Currently if system memory allocation from file pointed by @option{mem-path}
+fails, QEMU fallbacks to allocating from anonymous RAM. Which might result
+in unpredictable behavior since provided backing file wasn't used. In future
+QEMU will not fallback and fail to start up, so user could fix his/her QEMU/host
+configuration or explicitly use -m without -mem-path if system memory allocated
+from anonymous RAM suits usecase.
+
@section QEMU Machine Protocol (QMP) commands
@subsection block-dirty-bitmap-add "autoload" parameter (since 2.12.0)
--
2.18.1