Steve Sistare <steven.sist...@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.sist...@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. > +#endif > + I get Warning, treated as error: .../qemu-options.hx:117:Definition list ends without a blank line; unexpected unindent. Putting the blank line before #endif works for me. > ``memory-backend='id'`` > An alternative to legacy ``-mem-path`` and ``mem-prealloc`` options. > Allows to use a memory backend as main RAM. [...]