On Fri, Mar 05, 2021 at 11:16:32AM +0100, 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 on Linux) is skipped: will bail out if not supported. When not > set, the OS might reserve swap space (or huge pages on Linux), depending > on OS support. > > 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 the POSIX mmap implementation 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. > > Cc: Juan Quintela <quintela@xxxxxxxxxx> > Cc: Halil Pasic <pasic@xxxxxxxxxxxxx> > Cc: Cornelia Huck <cohuck@xxxxxxxxxx> > Cc: Christian Borntraeger <borntraeger@xxxxxxxxxx> > Cc: Thomas Huth <thuth@xxxxxxxxxx> > Cc: Stefan Weil <sw@xxxxxxxxxxx> > Cc: kvm@xxxxxxxxxxxxxxx > Cc: qemu-s390x@xxxxxxxxxx > Signed-off-by: David Hildenbrand <david@xxxxxxxxxx> Reviewed-by: Peter Xu <peterx@xxxxxxxxxx> -- Peter Xu