8dbe22c686
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: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Peter Xu <peterx@redhat.com> Acked-by: Eduardo Habkost <ehabkost@redhat.com> for memory backend and machine core Signed-off-by: David Hildenbrand <david@redhat.com> Message-Id: <20210510114328.21835-9-david@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> |
||
---|---|---|
.. | ||
aio-posix.c | ||
aio-posix.h | ||
aio-wait.c | ||
aio-win32.c | ||
aiocb.c | ||
async.c | ||
atomic64.c | ||
base64.c | ||
bitmap.c | ||
bitops.c | ||
block-helpers.c | ||
block-helpers.h | ||
buffer.c | ||
bufferiszero.c | ||
cacheflush.c | ||
cacheinfo.c | ||
compatfd.c | ||
coroutine-sigaltstack.c | ||
coroutine-ucontext.c | ||
coroutine-win32.c | ||
crc32c.c | ||
crc-ccitt.c | ||
cutils.c | ||
dbus.c | ||
drm.c | ||
envlist.c | ||
error.c | ||
event_notifier-posix.c | ||
event_notifier-win32.c | ||
fdmon-epoll.c | ||
fdmon-io_uring.c | ||
fdmon-poll.c | ||
fifo8.c | ||
filemonitor-inotify.c | ||
filemonitor-stub.c | ||
getauxval.c | ||
guest-random.c | ||
hbitmap.c | ||
hexdump.c | ||
host-utils.c | ||
id.c | ||
iov.c | ||
iova-tree.c | ||
keyval.c | ||
lockcnt.c | ||
log.c | ||
main-loop.c | ||
memfd.c | ||
meson.build | ||
mmap-alloc.c | ||
module.c | ||
notify.c | ||
nvdimm-utils.c | ||
osdep.c | ||
oslib-posix.c | ||
oslib-win32.c | ||
pagesize.c | ||
path.c | ||
qdist.c | ||
qemu-co-shared-resource.c | ||
qemu-config.c | ||
qemu-coroutine-io.c | ||
qemu-coroutine-lock.c | ||
qemu-coroutine-sleep.c | ||
qemu-coroutine.c | ||
qemu-error.c | ||
qemu-openpty.c | ||
qemu-option.c | ||
qemu-print.c | ||
qemu-progress.c | ||
qemu-sockets.c | ||
qemu-thread-common.h | ||
qemu-thread-posix.c | ||
qemu-thread-win32.c | ||
qemu-timer-common.c | ||
qemu-timer.c | ||
qht.c | ||
qsp.c | ||
range.c | ||
rcu.c | ||
readline.c | ||
selfmap.c | ||
stats64.c | ||
sys_membarrier.c | ||
systemd.c | ||
thread-pool.c | ||
throttle.c | ||
timed-average.c | ||
trace-events | ||
trace.h | ||
transactions.c | ||
unicode.c | ||
uri.c | ||
userfaultfd.c | ||
uuid.c | ||
vfio-helpers.c | ||
vhost-user-server.c | ||
yank.c |