[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] About QEMU BQL and dirty log switch in Migration
From: |
Wanpeng Li |
Subject: |
Re: [Qemu-devel] About QEMU BQL and dirty log switch in Migration |
Date: |
Fri, 12 May 2017 14:34:05 +0800 |
2017-05-11 22:18 GMT+08:00 Zhoujian (jay) <address@hidden>:
> Hi Wanpeng,
>
>> 2017-05-11 21:43 GMT+08:00 Wanpeng Li <address@hidden>:
>> > 2017-05-11 20:24 GMT+08:00 Paolo Bonzini <address@hidden>:
>> >>
>> >>
>> >> 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
- Re: [Qemu-devel] About QEMU BQL and dirty log switch in Migration, Zhoujian (jay), 2017/05/11
- Re: [Qemu-devel] About QEMU BQL and dirty log switch in Migration, Paolo Bonzini, 2017/05/17
- Re: [Qemu-devel] About QEMU BQL and dirty log switch in Migration, Wanpeng Li, 2017/05/17
- Re: [Qemu-devel] About QEMU BQL and dirty log switch in Migration, Jay Zhou, 2017/05/19
- Re: [Qemu-devel] About QEMU BQL and dirty log switch in Migration, Xiao Guangrong, 2017/05/19
- Re: [Qemu-devel] About QEMU BQL and dirty log switch in Migration, Jay Zhou, 2017/05/19
Re: [Qemu-devel] About QEMU BQL and dirty log switch in Migration, Xiao Guangrong, 2017/05/12