2017-05-11 22:18 GMT+08:00 Zhoujian (jay) <jianjay.z...@huawei.com>: > Hi Wanpeng, > >> 2017-05-11 21:43 GMT+08:00 Wanpeng Li <kernel...@gmail.com>: >> > 2017-05-11 20:24 GMT+08:00 Paolo Bonzini <pbonz...@redhat.com>: >> >> >> >> >> >> On 11/05/2017 14:07, Zhoujian (jay) wrote: >> >>> - * Scan sptes if dirty logging has been stopped, dropping >> those >> >>> - * which can be collapsed into a single large-page spte. >> Later >> >>> - * page faults will create the large-page sptes. >> >>> + * Reset each vcpu's mmu, then page faults will create the >> large-page >> >>> + * sptes later. >> >>> */ >> >>> if ((change != KVM_MR_DELETE) && >> >>> (old->flags & KVM_MEM_LOG_DIRTY_PAGES) && >> >>> - !(new->flags & KVM_MEM_LOG_DIRTY_PAGES)) >> >>> - kvm_mmu_zap_collapsible_sptes(kvm, new); >> > >> > This is an unlikely branch(unless guest live migration fails and >> > continue to run on the source machine) instead of hot path, do you >> > have any performance number for your real workloads? >> >> I find the original discussion by google. >> https://lists.nongnu.org/archive/html/qemu-devel/2017-04/msg04143.html >> You will not go to this branch if the guest live migration successfully. > > In our tests, this branch is taken when living migration is successful. > AFAIK, the kmod does not know whether living migration successful or not > when dealing with KVM_SET_USER_MEMORY_REGION ioctl. Do I miss something?
Original there is a bug which will not clear memslot dirty log flag after live migration fails, a patch is submitted to fix it, https://lists.nongnu.org/archive/html/qemu-devel/2015-04/msg00794.html, however, I can't remember whether the dirty log flag will be cleared if live migration complete successfully at that time, but maybe not. Paolo replied to the patch he has a better method. Then I'm too busy and didn't follow the qemu patch for this fix any more, I just find this commit is merged currently: http://git.qemu.org/?p=qemu.git;a=commit;h=6f6a5ef3e429f92f987678ea8c396aab4dc6aa19. This commit will clear memslot dirty log flag after live migration no matter whether it is successful or not. Regards, Wanpeng Li