This series adds a new "persistent" option to memory-backend-file. The new option it will be useful if somebody is sharing RAM contents on a file using share=on, but don't need it to be flushed to disk when QEMU exits.
Internally, it will trigger a madvise(MADV_REMOVE) or fallocate(FALLOC_FL_PUNCH_HOLE) call when the memory backend is destroyed. To make we actually trigger the new code when QEMU exits, the first patch in the series ensures we destroy all user-created objects when exiting QEMU. Eduardo Habkost (5): vl: Clean up user-creatable objects when exiting memory: Allow RAM up to block->max_length to be discarded memory: Add RAM_NONPERSISTENT flag memory: Add 'persistent' parameter to memory_region_init_ram_from_file() hostmem-file: Add "persistent" option include/exec/memory.h | 4 ++++ include/exec/ram_addr.h | 4 ++-- include/qom/object_interfaces.h | 8 ++++++++ backends/hostmem-file.c | 35 ++++++++++++++++++++++++++++++++++- exec.c | 26 ++++++++++++++++++++++---- memory.c | 4 +++- numa.c | 2 +- qom/object_interfaces.c | 5 +++++ vl.c | 1 + qemu-options.hx | 9 ++++++++- 10 files changed, 88 insertions(+), 10 deletions(-) -- 2.11.0.259.g40922b1