[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] What will happen if guest write to a memory address which n
From: |
Changlimin |
Subject: |
[Qemu-devel] What will happen if guest write to a memory address which not exists in any kvm memory slot? |
Date: |
Wed, 28 Nov 2018 00:54:13 +0000 |
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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] What will happen if guest write to a memory address which not exists in any kvm memory slot?,
Changlimin <=