qemu brige migration
PCI bridge dev vmstate static const VMStateDescription pci_bridge_dev_vmstate = { .name = "pci_bridge", .priority = MIG_PRI_PCI_BUS, .fields = (VMStateField[]) { VMSTATE_PCI_DE...
PCI bridge dev vmstate static const VMStateDescription pci_bridge_dev_vmstate = { .name = "pci_bridge", .priority = MIG_PRI_PCI_BUS, .fields = (VMStateField[]) { VMSTATE_PCI_DE...
参考链接 We Are Not Getting Any Younger: A New Approach to Time and Timers
setup timer boot cpu start_kernel => time_init(); => choose early clocksource in [hpet, pm, pit] to calibrate_tsc ## 以hpet计算tsc 为例 ## 这里主要是因为hpet/pit/pm频率是确定的,但是tsc ...
调用栈 snp_set_memory_private set_memory_encrypted => __set_memory_enc_dec(addr, numpages, true) => __set_memory_enc_pgtable => cpa_flush() => x86_platform.guest.enc_statu...
背景 我们如果对一个只启动bios的虚拟机做热迁移,发现其实际迁移的数据量不大, 如下: qemu 参数: # src qemu-system-x86_64 -m 16G --nographic --enable-kvm --serial tcp:localhost:6666,server,nowait --monitor stdio # dst: qemu-system-x86_64...
calc-dirty-rate 整体流程 qmp_calc_dirty_rate => qemu_thread_create(,MIGRATION_THREAD_DIRTY_RATE, get_dirtyrate_thread,,) (get_dirtyrate_thread) => dirtyrate_set_state(,,DIRTY_RATE_ST...
guestperf代码分析 参考链接 https://blog.csdn.net/huang987246510/article/details/114379675?spm=1001.2014.3001.5501
PML && WP PML 和 WP 起到的作用是一样的,只不过PML可以达到一种batch WP的效果: PML index始终指向 next PML entry, 每次record PML时,PML index 会dec, 并且check --PML_index的值, 是否在[0, 511]范围之内. 当PML index=0时, 如果此时再record PM...
示意图: 参考资料 KVM: Dirty ring interface Peter Xu 2020 https://lore.kernel.org/all/20201023183358.50607-1-peterx@redhat.com/
ORG PATCH 我们来看下最初的KVM实现了哪些功能。最初的KVM代码,是基于shadow page table, 支持了dirty_bitmap. 我们从几个方面看下dirty_bitmap实现: kernel data struct USER API lock Contention Analysis kernel data struct 并支持了dirty_b...