All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [RFH]vcpu may hang for up to 4s while starting migration
@ 2018-12-11 14:20 Zhuangyanying
  0 siblings, 0 replies; only message in thread
From: Zhuangyanying @ 2018-12-11 14:20 UTC (permalink / raw)
  To: jianjay.zhou, dgilbert, qemu-devel, xiaoguangrong
  Cc: xiexiangyou, Zhuang Yanying

From: Zhuang Yanying <ann.zhuangyanying@huawei.com>

Hi,

Recently I test live-migration vm with 1T memory,
find vcpu may hang for up to 4s while starting migration.
The reason is memory_global_dirty_log_start taking too long, and the vcpu is waiting for BQL.

migrate thread                                    vcpu
------------------------------------------------------------------------------------------------------------------
qemu_mutex_lock_iothread
                                                 kvm_handle_io
memory_global_dirty_log_start  /* lasts 4s */           try qemu_mutex_lock_iothread

qemu_mutex_unlock_iothread
                                                 success qemu_mutex_lock_iothread

Memory_global_dirty_log_start will cleans up the dirty bits of spte in the KVM, and starts the dirty page tracking of PML.Because the VM's memory is very large, it takes too long time in KVM.

Is the following scheme feasible:
(1)Put the action of turning on dirty page tracking in memory_global_dirty_log_start into asynchronous execution outside BQL.
(2)The first time tunrning on dirty page tracking, only clean up the dirty page bits of the 1G pagetable, and the time spent by memory_global_dirty_log_start is reduced.

Best regards,
 -Zhuang Yanying
---

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2018-12-11 14:23 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-11 14:20 [Qemu-devel] [RFH]vcpu may hang for up to 4s while starting migration Zhuangyanying

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.