qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH V4 04/19] machine: aux-ram-share option


From: Steven Sistare
Subject: Re: [PATCH V4 04/19] machine: aux-ram-share option
Date: Thu, 5 Dec 2024 09:24:18 -0500
User-agent: Mozilla Thunderbird

On 12/5/2024 3:25 AM, Markus Armbruster wrote:
Steve Sistare <steven.sistare@oracle.com> writes:

Allocate auxilliary guest RAM as an anonymous file that is shareable
with an external process.  This option applies to memory allocated as
a side effect of creating various devices. It does not apply to
memory-backend-objects, whether explicitly specified on the command
line, or implicitly created by the -m command line option.

This option is intended to support new migration modes, in which the
memory region can be transferred in place to a new QEMU process, by sending
the memfd file descriptor to the process.  Memory contents are preserved,
and if the mode also transfers device descriptors, then pages that are
locked in memory for DMA remain locked.  This behavior is a pre-requisite
for supporting vfio, vdpa, and iommufd devices with the new modes.

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>

[...]

diff --git a/qemu-options.hx b/qemu-options.hx
index dacc979..02b9118 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -38,6 +38,9 @@ DEF("machine", HAS_ARG, QEMU_OPTION_machine, \
      "                nvdimm=on|off controls NVDIMM support (default=off)\n"
      "                memory-encryption=@var{} memory encryption object to use 
(default=none)\n"
      "                hmat=on|off controls ACPI HMAT support (default=off)\n"
+#ifdef CONFIG_POSIX
+    "                aux-ram-share=on|off allocate auxiliary guest RAM as shared 
(default: off)\n"
+#endif
      "                memory-backend='backend-id' specifies explicitly provided 
backend for main RAM (default=none)\n"
      "                
cxl-fmw.0.targets.0=firsttarget,cxl-fmw.0.targets.1=secondtarget,cxl-fmw.0.size=size[,cxl-fmw.0.interleave-granularity=granularity]\n",
      QEMU_ARCH_ALL)
@@ -101,6 +104,18 @@ SRST
          Enables or disables ACPI Heterogeneous Memory Attribute Table
          (HMAT) support. The default is off.
+#ifdef CONFIG_POSIX
+    ``aux-ram-share=on|off``
+        Allocate auxiliary guest RAM as an anonymous file that is
+        shareable with an external process.  This option applies to
+        memory allocated as a side effect of creating various devices.
+        It does not apply to memory-backend-objects, whether explicitly
+        specified on the command line, or implicitly created by the -m
+        command line option.
+
+        Some migration modes require aux-ram-share=on.

This leaves the one thing users really need to know unsaid: when exactly
should users enable it.

"Some migration modes require aux-ram-share=on": do they enable it by
default, or is that left to the user?  If the latter, why?

Please document the default, whatever it is.

How about:

  ``aux-ram-share=on|off`
      ...
      command line option.  The default is off.

      To use the cpr-transfer migration mode, you must set aux-ram-share=on.

cpr-transfer is a forward reference at this point in the series, so I will
move that last line to the "cpr-transfer mode" patch.

- Steve




reply via email to

[Prev in Thread] Current Thread [Next in Thread]