The current model of loader copy "rom blobs" and kept in memory until a reset occurs and waste host memory.
This serial of patches uses private reset handlers to load from hard disk on reset, which could make loader framework more dynamic and reduce the memory consumption of QEMU process. Olivia Yin (4): use image_file_reset to reload initrd image use uimage_reset to reload uimage use elf_reset to reload elf image free the memory malloced by load_at() elf.h | 10 +++++ hw/elf_ops.h | 42 +++++++++++++++++++-- hw/loader.c | 114 +++++++++++++++++++++++++++++++++++++++++++++++++--------- hw/loader.h | 13 +++++++ 4 files changed, 158 insertions(+), 21 deletions(-) v5: patch 2/4: remove global variables is_linux and kernel_loaded. patch 3/4: register reset handlers in loader.c for elf images. extract the duplicated source code into function elf_phy_loader(). patch 4/4: fix the issue of memory increasing (about 1.4MB) once reload elf image.