Lines Matching refs:mis
1807 static int loadvm_postcopy_handle_advise(MigrationIncomingState *mis, in loadvm_postcopy_handle_advise() argument
1839 if (!postcopy_ram_supported_by_host(mis, &local_err)) { in loadvm_postcopy_handle_advise()
1845 remote_pagesize_summary = qemu_get_be64(mis->from_src_file); in loadvm_postcopy_handle_advise()
1869 remote_tps = qemu_get_be64(mis->from_src_file); in loadvm_postcopy_handle_advise()
1885 if (ram_postcopy_incoming_init(mis)) { in loadvm_postcopy_handle_advise()
1897 static int loadvm_postcopy_ram_handle_discard(MigrationIncomingState *mis, in loadvm_postcopy_ram_handle_discard() argument
1909 tmp = postcopy_ram_prepare_discard(mis); in loadvm_postcopy_ram_handle_discard()
1934 tmp = qemu_get_byte(mis->from_src_file); in loadvm_postcopy_ram_handle_discard()
1940 if (!qemu_get_counted_string(mis->from_src_file, ramid)) { in loadvm_postcopy_ram_handle_discard()
1944 tmp = qemu_get_byte(mis->from_src_file); in loadvm_postcopy_ram_handle_discard()
1958 start_addr = qemu_get_be64(mis->from_src_file); in loadvm_postcopy_ram_handle_discard()
1959 block_length = qemu_get_be64(mis->from_src_file); in loadvm_postcopy_ram_handle_discard()
1981 MigrationIncomingState *mis = migration_incoming_get_current(); in postcopy_ram_listen_thread() local
1982 QEMUFile *f = mis->from_src_file; in postcopy_ram_listen_thread()
1988 migrate_set_state(&mis->state, MIGRATION_STATUS_ACTIVE, in postcopy_ram_listen_thread()
1990 qemu_sem_post(&mis->thread_sync_sem); in postcopy_ram_listen_thread()
1999 load_res = qemu_loadvm_state_main(f, mis); in postcopy_ram_listen_thread()
2006 f = mis->from_src_file; in postcopy_ram_listen_thread()
2026 migrate_set_state(&mis->state, MIGRATION_STATUS_POSTCOPY_ACTIVE, in postcopy_ram_listen_thread()
2036 qemu_event_wait(&mis->main_thread_load_event); in postcopy_ram_listen_thread()
2038 postcopy_ram_incoming_cleanup(mis); in postcopy_ram_listen_thread()
2051 migrate_set_state(&mis->state, MIGRATION_STATUS_POSTCOPY_ACTIVE, in postcopy_ram_listen_thread()
2062 mis->have_listen_thread = false; in postcopy_ram_listen_thread()
2071 static int loadvm_postcopy_handle_listen(MigrationIncomingState *mis) in loadvm_postcopy_handle_listen() argument
2088 postcopy_ram_prepare_discard(mis); in loadvm_postcopy_handle_listen()
2100 if (postcopy_ram_incoming_setup(mis)) { in loadvm_postcopy_handle_listen()
2101 postcopy_ram_incoming_cleanup(mis); in loadvm_postcopy_handle_listen()
2113 mis->have_listen_thread = true; in loadvm_postcopy_handle_listen()
2114 postcopy_thread_create(mis, &mis->listen_thread, in loadvm_postcopy_handle_listen()
2125 MigrationIncomingState *mis = opaque; in loadvm_postcopy_handle_run_bh() local
2136 qemu_announce_self(&mis->announce_timer, migrate_announce_params()); in loadvm_postcopy_handle_run_bh()
2165 static int loadvm_postcopy_handle_run(MigrationIncomingState *mis) in loadvm_postcopy_handle_run() argument
2176 migration_bh_schedule(loadvm_postcopy_handle_run_bh, mis); in loadvm_postcopy_handle_run()
2190 MigrationIncomingState *mis = data; in postcopy_sync_page_req() local
2209 ret = migrate_send_rp_message_req_pages(mis, rb, rb_offset); in postcopy_sync_page_req()
2222 static void migrate_send_rp_req_pages_pending(MigrationIncomingState *mis) in migrate_send_rp_req_pages_pending() argument
2224 WITH_QEMU_LOCK_GUARD(&mis->page_request_mutex) { in migrate_send_rp_req_pages_pending()
2225 g_tree_foreach(mis->page_requested, postcopy_sync_page_req, mis); in migrate_send_rp_req_pages_pending()
2229 static int loadvm_postcopy_handle_resume(MigrationIncomingState *mis) in loadvm_postcopy_handle_resume() argument
2231 if (mis->state != MIGRATION_STATUS_POSTCOPY_RECOVER) { in loadvm_postcopy_handle_resume()
2241 mis->last_rb = NULL; in loadvm_postcopy_handle_resume()
2246 migrate_set_state(&mis->state, MIGRATION_STATUS_POSTCOPY_RECOVER, in loadvm_postcopy_handle_resume()
2252 migrate_send_rp_resume_ack(mis, MIGRATION_RESUME_ACK_VALUE); in loadvm_postcopy_handle_resume()
2266 migrate_send_rp_req_pages_pending(mis); in loadvm_postcopy_handle_resume()
2274 qemu_sem_post(&mis->postcopy_pause_sem_fault); in loadvm_postcopy_handle_resume()
2281 qemu_sem_wait(&mis->postcopy_qemufile_dst_done); in loadvm_postcopy_handle_resume()
2282 assert(mis->postcopy_qemufile_dst); in loadvm_postcopy_handle_resume()
2284 qemu_sem_post(&mis->postcopy_pause_sem_fast_load); in loadvm_postcopy_handle_resume()
2300 static int loadvm_handle_cmd_packaged(MigrationIncomingState *mis) in loadvm_handle_cmd_packaged() argument
2306 length = qemu_get_be32(mis->from_src_file); in loadvm_handle_cmd_packaged()
2316 ret = qemu_get_buffer(mis->from_src_file, in loadvm_handle_cmd_packaged()
2343 mis->postcopy_qemufile_dst) { in loadvm_handle_cmd_packaged()
2351 ret = qemu_loadvm_state_main(packf, mis); in loadvm_handle_cmd_packaged()
2365 static int loadvm_handle_recv_bitmap(MigrationIncomingState *mis, in loadvm_handle_recv_bitmap() argument
2368 QEMUFile *file = mis->from_src_file; in loadvm_handle_recv_bitmap()
2395 migrate_send_rp_recv_bitmap(mis, block_name); in loadvm_handle_recv_bitmap()
2402 static int loadvm_process_enable_colo(MigrationIncomingState *mis) in loadvm_process_enable_colo() argument
2423 MigrationIncomingState *mis = migration_incoming_get_current(); in loadvm_process_command() local
2452 if (mis->to_src_file) { in loadvm_process_command()
2457 mis->to_src_file = qemu_file_get_return_path(f); in loadvm_process_command()
2458 if (!mis->to_src_file) { in loadvm_process_command()
2468 if (migrate_switchover_ack() && !mis->switchover_ack_pending_num) { in loadvm_process_command()
2469 int ret = migrate_send_rp_switchover_ack(mis); in loadvm_process_command()
2482 if (!mis->to_src_file) { in loadvm_process_command()
2487 migrate_send_rp_pong(mis, tmp32); in loadvm_process_command()
2491 return loadvm_handle_cmd_packaged(mis); in loadvm_process_command()
2494 return loadvm_postcopy_handle_advise(mis, len); in loadvm_process_command()
2497 return loadvm_postcopy_handle_listen(mis); in loadvm_process_command()
2500 return loadvm_postcopy_handle_run(mis); in loadvm_process_command()
2503 return loadvm_postcopy_ram_handle_discard(mis, len); in loadvm_process_command()
2506 return loadvm_postcopy_handle_resume(mis); in loadvm_process_command()
2509 return loadvm_handle_recv_bitmap(mis, len); in loadvm_process_command()
2512 return loadvm_process_enable_colo(mis); in loadvm_process_command()
2727 static void qemu_loadvm_state_switchover_ack_needed(MigrationIncomingState *mis) in qemu_loadvm_state_switchover_ack_needed() argument
2737 mis->switchover_ack_pending_num++; in qemu_loadvm_state_switchover_ack_needed()
2741 trace_loadvm_state_switchover_ack_needed(mis->switchover_ack_pending_num); in qemu_loadvm_state_switchover_ack_needed()
2785 static bool postcopy_pause_incoming(MigrationIncomingState *mis) in postcopy_pause_incoming() argument
2797 migration_ioc_unregister_yank_from_file(mis->from_src_file); in postcopy_pause_incoming()
2799 assert(mis->from_src_file); in postcopy_pause_incoming()
2800 qemu_file_shutdown(mis->from_src_file); in postcopy_pause_incoming()
2801 qemu_fclose(mis->from_src_file); in postcopy_pause_incoming()
2802 mis->from_src_file = NULL; in postcopy_pause_incoming()
2804 assert(mis->to_src_file); in postcopy_pause_incoming()
2805 qemu_file_shutdown(mis->to_src_file); in postcopy_pause_incoming()
2806 qemu_mutex_lock(&mis->rp_mutex); in postcopy_pause_incoming()
2807 qemu_fclose(mis->to_src_file); in postcopy_pause_incoming()
2808 mis->to_src_file = NULL; in postcopy_pause_incoming()
2809 qemu_mutex_unlock(&mis->rp_mutex); in postcopy_pause_incoming()
2816 if (mis->postcopy_qemufile_dst) { in postcopy_pause_incoming()
2817 qemu_file_shutdown(mis->postcopy_qemufile_dst); in postcopy_pause_incoming()
2819 qemu_mutex_lock(&mis->postcopy_prio_thread_mutex); in postcopy_pause_incoming()
2820 migration_ioc_unregister_yank_from_file(mis->postcopy_qemufile_dst); in postcopy_pause_incoming()
2821 qemu_fclose(mis->postcopy_qemufile_dst); in postcopy_pause_incoming()
2822 mis->postcopy_qemufile_dst = NULL; in postcopy_pause_incoming()
2823 qemu_mutex_unlock(&mis->postcopy_prio_thread_mutex); in postcopy_pause_incoming()
2827 migrate_set_state(&mis->state, mis->state, in postcopy_pause_incoming()
2831 postcopy_fault_thread_notify(mis); in postcopy_pause_incoming()
2839 for (i = 0; i < mis->postcopy_channels; i++) { in postcopy_pause_incoming()
2840 postcopy_temp_page_reset(&mis->postcopy_tmp_pages[i]); in postcopy_pause_incoming()
2847 qemu_sem_wait(&mis->postcopy_pause_sem_dst); in postcopy_pause_incoming()
2848 } while (postcopy_is_paused(mis->state)); in postcopy_pause_incoming()
2855 int qemu_loadvm_state_main(QEMUFile *f, MigrationIncomingState *mis) in qemu_loadvm_state_main() argument
2864 ret = qemu_file_get_error_obj_any(f, mis->postcopy_qemufile_dst, NULL); in qemu_loadvm_state_main()
2921 migrate_postcopy_ram() && postcopy_pause_incoming(mis)) { in qemu_loadvm_state_main()
2923 f = mis->from_src_file; in qemu_loadvm_state_main()
2932 MigrationIncomingState *mis = migration_incoming_get_current(); in qemu_loadvm_state() local
2952 qemu_loadvm_state_switchover_ack_needed(mis); in qemu_loadvm_state()
2957 ret = qemu_loadvm_state_main(f, mis); in qemu_loadvm_state()
2958 qemu_event_set(&mis->main_thread_load_event); in qemu_loadvm_state()
2962 if (mis->have_listen_thread) { in qemu_loadvm_state()
3016 MigrationIncomingState *mis = migration_incoming_get_current(); in qemu_load_device_state() local
3020 ret = qemu_loadvm_state_main(f, mis); in qemu_load_device_state()
3032 MigrationIncomingState *mis = migration_incoming_get_current(); in qemu_loadvm_approve_switchover() local
3034 if (!mis->switchover_ack_pending_num) { in qemu_loadvm_approve_switchover()
3038 mis->switchover_ack_pending_num--; in qemu_loadvm_approve_switchover()
3039 trace_loadvm_approve_switchover(mis->switchover_ack_pending_num); in qemu_loadvm_approve_switchover()
3041 if (mis->switchover_ack_pending_num) { in qemu_loadvm_approve_switchover()
3045 return migrate_send_rp_switchover_ack(mis); in qemu_loadvm_approve_switchover()
3247 MigrationIncomingState *mis = migration_incoming_get_current(); in load_snapshot() local
3300 mis->from_src_file = f; in load_snapshot()