boot: 0.903 graphic: 0.873 device: 0.787 debug: 0.702 semantic: 0.614 permissions: 0.567 hypervisor: 0.549 VMM: 0.544 virtual: 0.533 PID: 0.526 risc-v: 0.491 files: 0.481 kernel: 0.480 performance: 0.467 vnc: 0.427 ppc: 0.396 KVM: 0.389 architecture: 0.375 i386: 0.368 x86: 0.338 user-level: 0.326 arm: 0.320 mistranslation: 0.316 peripherals: 0.313 network: 0.289 TCG: 0.288 socket: 0.267 register: 0.194 assembly: 0.099 BUG: Segmentation fault when -object memory-backend-file use readonly=on, prealloc=on together Description of problem: Segmentation Fault while booting VM. Steps to reproduce: 1. set qemu boot params to `-object memory-backend-file,id=mem1,readonly=on,prealloc=on,mem-path=,size=4G` 2. 3. Additional information: It might not be a bug, probably a feature. The reason of this segfault is: readonly would mmap the backend file using PROT_READ, make it readonly, but the prealloc=on would touch_pages the memory mmaped by the file. SO the segfault happens. But there is no docs about this segfault condition (the readonly and prealloc cannot be used together.) And maybe there is a way to solve this problem, I think. Use mmap the memory backend file to PROT_READ|PROT_WRITE at the beginnning, after touch_pages, then mprotect the memory. change the prot to readonly if required.