Hi, This series aims to reduce the memory footprint of flash devices when the backing file is read-only.
When a backing file is read-only, the model considers the flash is in "protected" mode. No write are allowed, but the MMIO state machine is still usable. This series introduces a new memory region helper to mmap files and use it with the pflash device (only with read-only backing files). The goal is to reduce QEMU's memory footprint when multiple VMs are instantiated using the same read-only backing file, which is the case with the CODE flash from OVMF and AAVMF. Previous attempts: - Huawei https://www.mail-archive.com/qemu-devel@nongnu.org/msg607292.html - Tencent https://www.mail-archive.com/qemu-devel@nongnu.org/msg742066.html - Oracle https://www.mail-archive.com/qemu-devel@nongnu.org/msg760065.html RFC because yet another approach to tackle this technical debt, and very little tested. Regards, Phil. Philippe Mathieu-Daudé (3): exec/memory: Introduce memory_region_init_rom_device_from_file() hw/block/pflash: Move code around hw/block/pflash: use memory_region_init_rom_device_from_file() include/exec/memory.h | 85 +++++++++++++++++++++++++++++++++++ hw/block/pflash_cfi01.c | 34 ++++++++------ hw/block/pflash_cfi02.c | 30 ++++++++----- softmmu/memory.c | 98 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 224 insertions(+), 23 deletions(-) -- 2.26.2