Markus Armbruster <arm...@redhat.com> writes: > 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.
Actually, #ifdef does not work within SRST ... ERST. Elsewhere, we document build-time optional features unconditionally. Simply drop the #ifdef here. >> ``memory-backend='id'`` >> An alternative to legacy ``-mem-path`` and ``mem-prealloc`` options. >> Allows to use a memory backend as main RAM. > > [...]