summary refs log tree commit diff stats
path: root/hw/misc/mst_fpga.c
diff options
context:
space:
mode:
authorIvan Ren <renyime@gmail.com>2019-06-25 21:18:17 +0800
committerJuan Quintela <quintela@redhat.com>2019-07-24 14:46:51 +0200
commit713f762a316348b00f5a3713b5314c88ab0a5852 (patch)
treeef75edf4f63d222e255d2986186f39216015a260 /hw/misc/mst_fpga.c
parentbf8b024372bf8abf5a9f40bfa65eeefad23ff988 (diff)
downloadfocaccia-qemu-713f762a316348b00f5a3713b5314c88ab0a5852.tar.gz
focaccia-qemu-713f762a316348b00f5a3713b5314c88ab0a5852.zip
migration: fix migrate_cancel leads live_migration thread endless loop
When we 'migrate_cancel' a multifd migration, live_migration thread may
go into endless loop in multifd_send_pages functions.

Reproduce steps:

(qemu) migrate_set_capability multifd on
(qemu) migrate -d url
(qemu) [wait a while]
(qemu) migrate_cancel

Then may get live_migration 100% cpu usage in following stack:

pthread_mutex_lock
qemu_mutex_lock_impl
multifd_send_pages
multifd_queue_page
ram_save_multifd_page
ram_save_target_page
ram_save_host_page
ram_find_and_save_block
ram_find_and_save_block
ram_save_iterate
qemu_savevm_state_iterate
migration_iteration_run
migration_thread
qemu_thread_start
start_thread
clone

Signed-off-by: Ivan Ren <ivanren@tencent.com>
Message-Id: <1561468699-9819-2-git-send-email-ivanren@tencent.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Diffstat (limited to 'hw/misc/mst_fpga.c')
0 files changed, 0 insertions, 0 deletions