For a multiple cpu guest, during cpu 0 delete a memory sot then add it, if cpu 1 write the memory address which belong to the deleted memory slot and not exist in PTE, kvm_mmu_page_fault fail, then return the QEMU with the reason KVM_EXIT_MMIO, QEMU will also fail, What will happen in Guest?
This is the trace of kvm_set_memory_region, slot 0 is often deleted then added, Maybe there is a memory write in guest after delete and before add. # trace-bpfcc -I /usr/src/linux-headers-4.18.0-10-generic/include/uapi/linux/kvm.h \ 'p::kvm_set_memory_region(struct kvm *kvm, struct kvm_userspace_memory_region *mem), \ "slot %d addr %x size %x", mem->slot,mem->guest_phys_addr,mem->memory_size' PID TID COMM FUNC - 8019 8019 qemu-system-x86 kvm_set_memory_region slot 0 addr 0 size 40000000 8019 8019 qemu-system-x86 kvm_set_memory_region slot 1 addr fffe0000 size 0 8019 8019 qemu-system-x86 kvm_set_memory_region slot 1 addr fffe0000 size 20000 8019 8019 qemu-system-x86 kvm_set_memory_region slot 0 addr 0 size 0 8019 8019 qemu-system-x86 kvm_set_memory_region slot 0 addr 0 size c0000 8019 8019 qemu-system-x86 kvm_set_memory_region slot 2 addr c0000 size 0 8019 8019 qemu-system-x86 kvm_set_memory_region slot 2 addr c0000 size 20000 8019 8019 qemu-system-x86 kvm_set_memory_region slot 3 addr e0000 size 0 8019 8019 qemu-system-x86 kvm_set_memory_region slot 3 addr e0000 size 20000 8019 8019 qemu-system-x86 kvm_set_memory_region slot 4 addr 100000 size 3ff00000 8019 8019 qemu-system-x86 kvm_set_memory_region slot 0 addr 0 size 0 8019 8019 qemu-system-x86 kvm_set_memory_region slot 0 addr 0 size a0000