mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 08:43:55 -06:00
machine: aux-ram-share option
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> Reviewed-by: Peter Xu <peterx@redhat.com> Link: https://lore.kernel.org/r/1736967650-129648-7-git-send-email-steven.sistare@oracle.com Signed-off-by: Fabiano Rosas <farosas@suse.de>
This commit is contained in:
parent
6169f11936
commit
91792807d1
4 changed files with 37 additions and 0 deletions
|
@ -2114,6 +2114,9 @@ RAMBlock *qemu_ram_alloc_internal(ram_addr_t size, ram_addr_t max_size,
|
|||
|
||||
#ifdef CONFIG_POSIX /* ignore RAM_SHARED for Windows */
|
||||
if (!host) {
|
||||
if (!share_flags && current_machine->aux_ram_share) {
|
||||
ram_flags |= RAM_SHARED;
|
||||
}
|
||||
if (ram_flags & RAM_SHARED) {
|
||||
const char *name = memory_region_name(mr);
|
||||
int fd = qemu_ram_get_shared_fd(name, errp);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue