Skip to content
Snippets Groups Projects
  • Jay Zhou's avatar
    19310760
    migration: optimize the downtime · 19310760
    Jay Zhou authored
    
    Qemu_savevm_state_cleanup takes about 300ms in my ram migration tests
    with a 8U24G vm(20G is really occupied), the main cost comes from
    KVM_SET_USER_MEMORY_REGION ioctl when mem.memory_size = 0 in
    kvm_set_user_memory_region. In kmod, the main cost is
    kvm_zap_obsolete_pages, which traverses the active_mmu_pages list to
    zap the unsync sptes.
    
    It can be optimized by delaying memory_global_dirty_log_stop to the next
    vm_start.
    
    Changes v2->v3:
     - NULL VMChangeStateHandler if it is deleted and protect the scenario
       of nested invocations of memory_global_dirty_log_start/stop [Paolo]
    
    Changes v1->v2:
     - create a VMChangeStateHandler in memory.c to reduce the coupling [Paolo]
    
    Signed-off-by: default avatarJay Zhou <jianjay.zhou@huawei.com>
    Message-Id: <1501237733-2736-1-git-send-email-jianjay.zhou@huawei.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    19310760
    History
    migration: optimize the downtime
    Jay Zhou authored
    
    Qemu_savevm_state_cleanup takes about 300ms in my ram migration tests
    with a 8U24G vm(20G is really occupied), the main cost comes from
    KVM_SET_USER_MEMORY_REGION ioctl when mem.memory_size = 0 in
    kvm_set_user_memory_region. In kmod, the main cost is
    kvm_zap_obsolete_pages, which traverses the active_mmu_pages list to
    zap the unsync sptes.
    
    It can be optimized by delaying memory_global_dirty_log_stop to the next
    vm_start.
    
    Changes v2->v3:
     - NULL VMChangeStateHandler if it is deleted and protect the scenario
       of nested invocations of memory_global_dirty_log_start/stop [Paolo]
    
    Changes v1->v2:
     - create a VMChangeStateHandler in memory.c to reduce the coupling [Paolo]
    
    Signed-off-by: default avatarJay Zhou <jianjay.zhou@huawei.com>
    Message-Id: <1501237733-2736-1-git-send-email-jianjay.zhou@huawei.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>