qemu-devel
[Top][All Lists]
Advanced

[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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]