On 4/13/21 11:14 AM, David Hildenbrand wrote:
> Let's introduce RAM_NORESERVE, allowing mmap'ing with MAP_NORESERVE. The
> new flag has the following semantics:
> 
> "
> RAM is mmap-ed with MAP_NORESERVE. When set, reserving swap space (or huge
> pages if applicable) is skipped: will bail out if not supported. When not
> set, the OS will do the reservation, if supported for the memory type.
> "
> 
> Allow passing it into:
> - memory_region_init_ram_nomigrate()
> - memory_region_init_resizeable_ram()
> - memory_region_init_ram_from_file()
> 
> ... and teach qemu_ram_mmap() and qemu_anon_ram_alloc() about the flag.
> Bail out if the flag is not supported, which is the case right now for
> both, POSIX and win32. We will add Linux support next and allow specifying
> RAM_NORESERVE via memory backends.
> 
> The target use case is virtio-mem, which dynamically exposes memory
> inside a large, sparse memory area to the VM.
> 
> Reviewed-by: Peter Xu <pet...@redhat.com>
> Signed-off-by: David Hildenbrand <da...@redhat.com>
> ---
>  include/exec/cpu-common.h |  1 +
>  include/exec/memory.h     | 15 ++++++++++++---
>  include/exec/ram_addr.h   |  3 ++-
>  include/qemu/osdep.h      |  9 ++++++++-
>  migration/ram.c           |  3 +--
>  softmmu/physmem.c         | 15 +++++++++++----
>  util/mmap-alloc.c         |  7 +++++++
>  util/oslib-posix.c        |  6 ++++--
>  util/oslib-win32.c        | 13 ++++++++++++-
>  9 files changed, 58 insertions(+), 14 deletions(-)

Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com>


Reply via email to