303e6f54f9
1. Add zero_pages field in MultiFDPacket_t. 2. Implements the zero page detection and handling on the multifd threads for non-compression, zlib and zstd compression backends. 3. Added a new value 'multifd' in ZeroPageDetection enumeration. 4. Adds zero page counters and updates multifd send/receive tracing format to track the newly added counters. Signed-off-by: Hao Xiang <hao.xiang@bytedance.com> Acked-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Fabiano Rosas <farosas@suse.de> Link: https://lore.kernel.org/r/20240311180015.3359271-5-hao.xiang@linux.dev Signed-off-by: Peter Xu <peterx@redhat.com>
380 lines
24 KiB
Plaintext
380 lines
24 KiB
Plaintext
# See docs/devel/tracing.rst for syntax documentation.
|
|
|
|
# savevm.c
|
|
qemu_loadvm_state_section(unsigned int section_type) "%d"
|
|
qemu_loadvm_state_section_command(int ret) "%d"
|
|
qemu_loadvm_state_section_partend(uint32_t section_id) "%u"
|
|
qemu_loadvm_state_post_main(int ret) "%d"
|
|
qemu_loadvm_state_section_startfull(uint32_t section_id, const char *idstr, uint32_t instance_id, uint32_t version_id) "%u(%s) %u %u"
|
|
qemu_savevm_send_packaged(void) ""
|
|
loadvm_state_switchover_ack_needed(unsigned int switchover_ack_pending_num) "Switchover ack pending num=%u"
|
|
loadvm_state_setup(void) ""
|
|
loadvm_state_cleanup(void) ""
|
|
loadvm_handle_cmd_packaged(unsigned int length) "%u"
|
|
loadvm_handle_cmd_packaged_main(int ret) "%d"
|
|
loadvm_handle_cmd_packaged_received(int ret) "%d"
|
|
loadvm_handle_recv_bitmap(char *s) "%s"
|
|
loadvm_postcopy_handle_advise(void) ""
|
|
loadvm_postcopy_handle_listen(const char *str) "%s"
|
|
loadvm_postcopy_handle_run(void) ""
|
|
loadvm_postcopy_handle_resume(void) ""
|
|
loadvm_postcopy_ram_handle_discard(void) ""
|
|
loadvm_postcopy_ram_handle_discard_end(void) ""
|
|
loadvm_postcopy_ram_handle_discard_header(const char *ramid, uint16_t len) "%s: %ud"
|
|
loadvm_process_command(const char *s, uint16_t len) "com=%s len=%d"
|
|
loadvm_process_command_ping(uint32_t val) "0x%x"
|
|
loadvm_approve_switchover(unsigned int switchover_ack_pending_num) "Switchover ack pending num=%u"
|
|
postcopy_ram_listen_thread_exit(void) ""
|
|
postcopy_ram_listen_thread_start(void) ""
|
|
qemu_savevm_send_postcopy_advise(void) ""
|
|
qemu_savevm_send_postcopy_ram_discard(const char *id, uint16_t len) "%s: %ud"
|
|
savevm_command_send(uint16_t command, uint16_t len) "com=0x%x len=%d"
|
|
savevm_section_start(const char *id, unsigned int section_id) "%s, section_id %u"
|
|
savevm_section_end(const char *id, unsigned int section_id, int ret) "%s, section_id %u -> %d"
|
|
savevm_section_skip(const char *id, unsigned int section_id) "%s, section_id %u"
|
|
savevm_send_open_return_path(void) ""
|
|
savevm_send_ping(uint32_t val) "0x%x"
|
|
savevm_send_postcopy_listen(void) ""
|
|
savevm_send_postcopy_run(void) ""
|
|
savevm_send_postcopy_resume(void) ""
|
|
savevm_send_colo_enable(void) ""
|
|
savevm_send_recv_bitmap(char *name) "%s"
|
|
savevm_state_setup(void) ""
|
|
savevm_state_resume_prepare(void) ""
|
|
savevm_state_header(void) ""
|
|
savevm_state_iterate(void) ""
|
|
savevm_state_cleanup(void) ""
|
|
savevm_state_complete_precopy(void) ""
|
|
vmstate_save(const char *idstr, const char *vmsd_name) "%s, %s"
|
|
vmstate_load(const char *idstr, const char *vmsd_name) "%s, %s"
|
|
vmstate_downtime_save(const char *type, const char *idstr, uint32_t instance_id, int64_t downtime) "type=%s idstr=%s instance_id=%d downtime=%"PRIi64
|
|
vmstate_downtime_load(const char *type, const char *idstr, uint32_t instance_id, int64_t downtime) "type=%s idstr=%s instance_id=%d downtime=%"PRIi64
|
|
vmstate_downtime_checkpoint(const char *checkpoint) "%s"
|
|
postcopy_pause_incoming(void) ""
|
|
postcopy_pause_incoming_continued(void) ""
|
|
postcopy_page_req_sync(void *host_addr) "sync page req %p"
|
|
|
|
# vmstate.c
|
|
vmstate_load_field_error(const char *field, int ret) "field \"%s\" load failed, ret = %d"
|
|
vmstate_load_state(const char *name, int version_id) "%s v%d"
|
|
vmstate_load_state_end(const char *name, const char *reason, int val) "%s %s/%d"
|
|
vmstate_load_state_field(const char *name, const char *field) "%s:%s"
|
|
vmstate_n_elems(const char *name, int n_elems) "%s: %d"
|
|
vmstate_subsection_load(const char *parent) "%s"
|
|
vmstate_subsection_load_bad(const char *parent, const char *sub, const char *sub2) "%s: %s/%s"
|
|
vmstate_subsection_load_good(const char *parent) "%s"
|
|
vmstate_save_state_pre_save_res(const char *name, int res) "%s/%d"
|
|
vmstate_save_state_loop(const char *name, const char *field, int n_elems) "%s/%s[%d]"
|
|
vmstate_save_state_top(const char *idstr) "%s"
|
|
vmstate_subsection_save_loop(const char *name, const char *sub) "%s/%s"
|
|
vmstate_subsection_save_top(const char *idstr) "%s"
|
|
vmstate_field_exists(const char *vmsd, const char *name, int field_version, int version, int result) "%s:%s field_version %d version %d result %d"
|
|
|
|
# vmstate-types.c
|
|
get_qtailq(const char *name, int version_id) "%s v%d"
|
|
get_qtailq_end(const char *name, const char *reason, int val) "%s %s/%d"
|
|
put_qtailq(const char *name, int version_id) "%s v%d"
|
|
put_qtailq_end(const char *name, const char *reason) "%s %s"
|
|
|
|
get_gtree(const char *field_name, const char *key_vmsd_name, const char *val_vmsd_name, uint32_t nnodes) "%s(%s/%s) nnodes=%d"
|
|
get_gtree_end(const char *field_name, const char *key_vmsd_name, const char *val_vmsd_name, int ret) "%s(%s/%s) %d"
|
|
put_gtree(const char *field_name, const char *key_vmsd_name, const char *val_vmsd_name, uint32_t nnodes) "%s(%s/%s) nnodes=%d"
|
|
put_gtree_end(const char *field_name, const char *key_vmsd_name, const char *val_vmsd_name, int ret) "%s(%s/%s) %d"
|
|
|
|
get_qlist(const char *field_name, const char *vmsd_name, int version_id) "%s(%s v%d)"
|
|
get_qlist_end(const char *field_name, const char *vmsd_name) "%s(%s)"
|
|
put_qlist(const char *field_name, const char *vmsd_name, int version_id) "%s(%s v%d)"
|
|
put_qlist_end(const char *field_name, const char *vmsd_name) "%s(%s)"
|
|
|
|
# qemu-file.c
|
|
qemu_file_fclose(void) ""
|
|
|
|
# ram.c
|
|
get_queued_page(const char *block_name, uint64_t tmp_offset, unsigned long page_abs) "%s/0x%" PRIx64 " page_abs=0x%lx"
|
|
get_queued_page_not_dirty(const char *block_name, uint64_t tmp_offset, unsigned long page_abs) "%s/0x%" PRIx64 " page_abs=0x%lx"
|
|
migration_bitmap_sync_start(void) ""
|
|
migration_bitmap_sync_end(uint64_t dirty_pages) "dirty_pages %" PRIu64
|
|
migration_bitmap_clear_dirty(char *str, uint64_t start, uint64_t size, unsigned long page) "rb %s start 0x%"PRIx64" size 0x%"PRIx64" page 0x%lx"
|
|
migration_throttle(void) ""
|
|
migration_dirty_limit_guest(int64_t dirtyrate) "guest dirty page rate limit %" PRIi64 " MB/s"
|
|
ram_discard_range(const char *rbname, uint64_t start, size_t len) "%s: start: %" PRIx64 " %zx"
|
|
ram_load_loop(const char *rbname, uint64_t addr, int flags, void *host) "%s: addr: 0x%" PRIx64 " flags: 0x%x host: %p"
|
|
ram_load_postcopy_loop(int channel, uint64_t addr, int flags) "chan=%d addr=0x%" PRIx64 " flags=0x%x"
|
|
ram_postcopy_send_discard_bitmap(void) ""
|
|
ram_save_page(const char *rbname, uint64_t offset, void *host) "%s: offset: 0x%" PRIx64 " host: %p"
|
|
ram_save_queue_pages(const char *rbname, size_t start, size_t len) "%s: start: 0x%zx len: 0x%zx"
|
|
ram_dirty_bitmap_request(char *str) "%s"
|
|
ram_dirty_bitmap_reload_begin(char *str) "%s"
|
|
ram_dirty_bitmap_reload_complete(char *str) "%s"
|
|
ram_dirty_bitmap_sync_start(void) ""
|
|
ram_dirty_bitmap_sync_wait(void) ""
|
|
ram_dirty_bitmap_sync_complete(void) ""
|
|
ram_state_resume_prepare(uint64_t v) "%" PRId64
|
|
colo_flush_ram_cache_begin(uint64_t dirty_pages) "dirty_pages %" PRIu64
|
|
colo_flush_ram_cache_end(void) ""
|
|
save_xbzrle_page_skipping(void) ""
|
|
save_xbzrle_page_overflow(void) ""
|
|
ram_save_iterate_big_wait(uint64_t milliconds, int iterations) "big wait: %" PRIu64 " milliseconds, %d iterations"
|
|
ram_load_complete(int ret, uint64_t seq_iter) "exit_code %d seq iteration %" PRIu64
|
|
ram_write_tracking_ramblock_start(const char *block_id, size_t page_size, void *addr, size_t length) "%s: page_size: %zu addr: %p length: %zu"
|
|
ram_write_tracking_ramblock_stop(const char *block_id, size_t page_size, void *addr, size_t length) "%s: page_size: %zu addr: %p length: %zu"
|
|
postcopy_preempt_triggered(char *str, unsigned long page) "during sending ramblock %s offset 0x%lx"
|
|
postcopy_preempt_restored(char *str, unsigned long page) "ramblock %s offset 0x%lx"
|
|
postcopy_preempt_hit(char *str, uint64_t offset) "ramblock %s offset 0x%"PRIx64
|
|
postcopy_preempt_send_host_page(char *str, uint64_t offset) "ramblock %s offset 0x%"PRIx64
|
|
postcopy_preempt_switch_channel(int channel) "%d"
|
|
postcopy_preempt_reset_channel(void) ""
|
|
|
|
# multifd.c
|
|
multifd_new_send_channel_async(uint8_t id) "channel %u"
|
|
multifd_new_send_channel_async_error(uint8_t id, void *err) "channel=%u err=%p"
|
|
multifd_recv(uint8_t id, uint64_t packet_num, uint32_t normal, uint32_t zero, uint32_t flags, uint32_t next_packet_size) "channel %u packet_num %" PRIu64 " normal pages %u zero pages %u flags 0x%x next packet size %u"
|
|
multifd_recv_new_channel(uint8_t id) "channel %u"
|
|
multifd_recv_sync_main(long packet_num) "packet num %ld"
|
|
multifd_recv_sync_main_signal(uint8_t id) "channel %u"
|
|
multifd_recv_sync_main_wait(uint8_t id) "iter %u"
|
|
multifd_recv_terminate_threads(bool error) "error %d"
|
|
multifd_recv_thread_end(uint8_t id, uint64_t packets, uint64_t normal_pages, uint64_t zero_pages) "channel %u packets %" PRIu64 " normal pages %" PRIu64 " zero pages %" PRIu64
|
|
multifd_recv_thread_start(uint8_t id) "%u"
|
|
multifd_send(uint8_t id, uint64_t packet_num, uint32_t normal_pages, uint32_t zero_pages, uint32_t flags, uint32_t next_packet_size) "channel %u packet_num %" PRIu64 " normal pages %u zero pages %u flags 0x%x next packet size %u"
|
|
multifd_send_error(uint8_t id) "channel %u"
|
|
multifd_send_sync_main(long packet_num) "packet num %ld"
|
|
multifd_send_sync_main_signal(uint8_t id) "channel %u"
|
|
multifd_send_sync_main_wait(uint8_t id) "channel %u"
|
|
multifd_send_terminate_threads(void) ""
|
|
multifd_send_thread_end(uint8_t id, uint64_t packets, uint64_t normal_pages, uint64_t zero_pages) "channel %u packets %" PRIu64 " normal pages %" PRIu64 " zero pages %" PRIu64
|
|
multifd_send_thread_start(uint8_t id) "%u"
|
|
multifd_tls_outgoing_handshake_start(void *ioc, void *tioc, const char *hostname) "ioc=%p tioc=%p hostname=%s"
|
|
multifd_tls_outgoing_handshake_error(void *ioc, const char *err) "ioc=%p err=%s"
|
|
multifd_tls_outgoing_handshake_complete(void *ioc) "ioc=%p"
|
|
multifd_set_outgoing_channel(void *ioc, const char *ioctype, const char *hostname) "ioc=%p ioctype=%s hostname=%s"
|
|
|
|
# migration.c
|
|
migrate_set_state(const char *new_state) "new state %s"
|
|
migrate_fd_cleanup(void) ""
|
|
migrate_fd_error(const char *error_desc) "error=%s"
|
|
migrate_fd_cancel(void) ""
|
|
migrate_handle_rp_req_pages(const char *rbname, size_t start, size_t len) "in %s at 0x%zx len 0x%zx"
|
|
migrate_pending_exact(uint64_t size, uint64_t pre, uint64_t post) "exact pending size %" PRIu64 " (pre = %" PRIu64 " post=%" PRIu64 ")"
|
|
migrate_pending_estimate(uint64_t size, uint64_t pre, uint64_t post) "estimate pending size %" PRIu64 " (pre = %" PRIu64 " post=%" PRIu64 ")"
|
|
migrate_send_rp_message(int msg_type, uint16_t len) "%d: len %d"
|
|
migrate_send_rp_recv_bitmap(char *name, int64_t size) "block '%s' size 0x%"PRIi64
|
|
migration_completion_file_err(void) ""
|
|
migration_completion_vm_stop(int ret) "ret %d"
|
|
migration_completion_postcopy_end(void) ""
|
|
migration_completion_postcopy_end_after_complete(void) ""
|
|
migration_rate_limit_pre(int ms) "%d ms"
|
|
migration_rate_limit_post(int urgent) "urgent: %d"
|
|
migration_return_path_end_before(void) ""
|
|
migration_return_path_end_after(void) ""
|
|
migration_thread_after_loop(void) ""
|
|
migration_thread_file_err(void) ""
|
|
migration_thread_setup_complete(void) ""
|
|
open_return_path_on_source(void) ""
|
|
open_return_path_on_source_continue(void) ""
|
|
postcopy_start(void) ""
|
|
postcopy_pause_return_path(void) ""
|
|
postcopy_pause_return_path_continued(void) ""
|
|
postcopy_pause_continued(void) ""
|
|
postcopy_start_set_run(void) ""
|
|
postcopy_page_req_add(void *addr, int count) "new page req %p total %d"
|
|
source_return_path_thread_bad_end(void) ""
|
|
source_return_path_thread_end(void) ""
|
|
source_return_path_thread_entry(void) ""
|
|
source_return_path_thread_loop_top(void) ""
|
|
source_return_path_thread_pong(uint32_t val) "0x%x"
|
|
source_return_path_thread_shut(uint32_t val) "0x%x"
|
|
source_return_path_thread_resume_ack(uint32_t v) "%"PRIu32
|
|
source_return_path_thread_switchover_acked(void) ""
|
|
migration_thread_low_pending(uint64_t pending) "%" PRIu64
|
|
migrate_transferred(uint64_t transferred, uint64_t time_spent, uint64_t bandwidth, uint64_t avail_bw, uint64_t size) "transferred %" PRIu64 " time_spent %" PRIu64 " bandwidth %" PRIu64 " switchover_bw %" PRIu64 " max_size %" PRId64
|
|
process_incoming_migration_co_end(int ret, int ps) "ret=%d postcopy-state=%d"
|
|
process_incoming_migration_co_postcopy_end_main(void) ""
|
|
postcopy_preempt_enabled(bool value) "%d"
|
|
|
|
# migration-stats
|
|
migration_transferred_bytes(uint64_t qemu_file, uint64_t multifd, uint64_t rdma) "qemu_file %" PRIu64 " multifd %" PRIu64 " RDMA %" PRIu64
|
|
|
|
# channel.c
|
|
migration_set_incoming_channel(void *ioc, const char *ioctype) "ioc=%p ioctype=%s"
|
|
migration_set_outgoing_channel(void *ioc, const char *ioctype, const char *hostname, void *err) "ioc=%p ioctype=%s hostname=%s err=%p"
|
|
|
|
# global_state.c
|
|
migrate_state_too_big(void) ""
|
|
migrate_global_state_post_load(const char *state) "loaded state: %s"
|
|
migrate_global_state_pre_save(const char *state) "saved state: %s"
|
|
|
|
# rdma.c
|
|
qemu_rdma_accept_incoming_migration(void) ""
|
|
qemu_rdma_accept_incoming_migration_accepted(void) ""
|
|
qemu_rdma_accept_pin_state(bool pin) "%d"
|
|
qemu_rdma_accept_pin_verbsc(void *verbs) "Verbs context after listen: %p"
|
|
qemu_rdma_block_for_wrid_miss(uint64_t wcomp, uint64_t req) "A Wanted wrid %" PRIu64 " but got %" PRIu64
|
|
qemu_rdma_cleanup_disconnect(void) ""
|
|
qemu_rdma_close(void) ""
|
|
qemu_rdma_connect_pin_all_requested(void) ""
|
|
qemu_rdma_connect_pin_all_outcome(bool pin) "%d"
|
|
qemu_rdma_dest_init_trying(const char *host, const char *ip) "%s => %s"
|
|
qemu_rdma_dump_id_failed(const char *who) "%s RDMA Device opened, but can't query port information"
|
|
qemu_rdma_dump_id(const char *who, const char *name, const char *dev_name, const char *dev_path, const char *ibdev_path, int transport, const char *transport_name) "%s RDMA Device opened: kernel name %s uverbs device name %s, infiniband_verbs class device path %s, infiniband class device path %s, transport: (%d) %s"
|
|
qemu_rdma_dump_gid(const char *who, const char *src, const char *dst) "%s Source GID: %s, Dest GID: %s"
|
|
qemu_rdma_exchange_get_response_start(const char *desc) "CONTROL: %s receiving..."
|
|
qemu_rdma_exchange_get_response_none(const char *desc, int type) "Surprise: got %s (%d)"
|
|
qemu_rdma_exchange_send_issue_callback(void) ""
|
|
qemu_rdma_exchange_send_waiting(const char *desc) "Waiting for response %s"
|
|
qemu_rdma_exchange_send_received(const char *desc) "Response %s received."
|
|
qemu_rdma_fill(size_t control_len, size_t size) "RDMA %zd of %zd bytes already in buffer"
|
|
qemu_rdma_init_ram_blocks(int blocks) "Allocated %d local ram block structures"
|
|
qemu_rdma_poll_recv(uint64_t comp, int64_t id, int sent) "completion %" PRIu64 " received (%" PRId64 ") left %d"
|
|
qemu_rdma_poll_write(uint64_t comp, int left, uint64_t block, uint64_t chunk, void *local, void *remote) "completions %" PRIu64 " left %d, block %" PRIu64 ", chunk: %" PRIu64 " %p %p"
|
|
qemu_rdma_poll_other(uint64_t comp, int left) "other completion %" PRIu64 " received left %d"
|
|
qemu_rdma_post_send_control(const char *desc) "CONTROL: sending %s.."
|
|
qemu_rdma_register_and_get_keys(uint64_t len, void *start) "Registering %" PRIu64 " bytes @ %p"
|
|
qemu_rdma_register_odp_mr(const char *name) "Try to register On-Demand Paging memory region: %s"
|
|
qemu_rdma_advise_mr(const char *name, uint32_t len, uint64_t addr, const char *res) "Try to advise block %s prefetch at %" PRIu32 "@0x%" PRIx64 ": %s"
|
|
qemu_rdma_resolve_host_trying(const char *host, const char *ip) "Trying %s => %s"
|
|
qemu_rdma_signal_unregister_append(uint64_t chunk, int pos) "Appending unregister chunk %" PRIu64 " at position %d"
|
|
qemu_rdma_signal_unregister_already(uint64_t chunk) "Unregister chunk %" PRIu64 " already in queue"
|
|
qemu_rdma_unregister_waiting_inflight(uint64_t chunk) "Cannot unregister inflight chunk: %" PRIu64
|
|
qemu_rdma_unregister_waiting_proc(uint64_t chunk, int pos) "Processing unregister for chunk: %" PRIu64 " at position %d"
|
|
qemu_rdma_unregister_waiting_send(uint64_t chunk) "Sending unregister for chunk: %" PRIu64
|
|
qemu_rdma_unregister_waiting_complete(uint64_t chunk) "Unregister for chunk: %" PRIu64 " complete."
|
|
qemu_rdma_write_flush(int sent) "sent total: %d"
|
|
qemu_rdma_write_one_block(int count, int block, uint64_t chunk, uint64_t current, uint64_t len, int nb_sent, int nb_chunks) "(%d) Not clobbering: block: %d chunk %" PRIu64 " current %" PRIu64 " len %" PRIu64 " %d %d"
|
|
qemu_rdma_write_one_post(uint64_t chunk, long addr, long remote, uint32_t len) "Posting chunk: %" PRIu64 ", addr: 0x%lx remote: 0x%lx, bytes %" PRIu32
|
|
qemu_rdma_write_one_queue_full(void) ""
|
|
qemu_rdma_write_one_recvregres(int mykey, int theirkey, uint64_t chunk) "Received registration result: my key: 0x%x their key 0x%x, chunk %" PRIu64
|
|
qemu_rdma_write_one_sendreg(uint64_t chunk, int len, int index, int64_t offset) "Sending registration request chunk %" PRIu64 " for %d bytes, index: %d, offset: %" PRId64
|
|
qemu_rdma_write_one_top(uint64_t chunks, uint64_t size) "Writing %" PRIu64 " chunks, (%" PRIu64 " MB)"
|
|
qemu_rdma_write_one_zero(uint64_t chunk, int len, int index, int64_t offset) "Entire chunk is zero, sending compress: %" PRIu64 " for %d bytes, index: %d, offset: %" PRId64
|
|
rdma_add_block(const char *block_name, int block, uint64_t addr, uint64_t offset, uint64_t len, uint64_t end, uint64_t bits, int chunks) "Added Block: '%s':%d, addr: %" PRIu64 ", offset: %" PRIu64 " length: %" PRIu64 " end: %" PRIu64 " bits %" PRIu64 " chunks %d"
|
|
rdma_block_notification_handle(const char *name, int index) "%s at %d"
|
|
rdma_delete_block(void *block, uint64_t addr, uint64_t offset, uint64_t len, uint64_t end, uint64_t bits, int chunks) "Deleted Block: %p, addr: %" PRIu64 ", offset: %" PRIu64 " length: %" PRIu64 " end: %" PRIu64 " bits %" PRIu64 " chunks %d"
|
|
rdma_registration_handle_compress(int64_t length, int index, int64_t offset) "Zapping zero chunk: %" PRId64 " bytes, index %d, offset %" PRId64
|
|
rdma_registration_handle_finished(void) ""
|
|
rdma_registration_handle_ram_blocks(void) ""
|
|
rdma_registration_handle_ram_blocks_loop(const char *name, uint64_t offset, uint64_t length, void *local_host_addr, unsigned int src_index) "%s: @0x%" PRIx64 "/%" PRIu64 " host:@%p src_index: %u"
|
|
rdma_registration_handle_register(int requests) "%d requests"
|
|
rdma_registration_handle_register_loop(int req, int index, uint64_t addr, uint64_t chunks) "Registration request (%d): index %d, current_addr %" PRIu64 " chunks: %" PRIu64
|
|
rdma_registration_handle_register_rkey(int rkey) "0x%x"
|
|
rdma_registration_handle_unregister(int requests) "%d requests"
|
|
rdma_registration_handle_unregister_loop(int count, int index, uint64_t chunk) "Unregistration request (%d): index %d, chunk %" PRIu64
|
|
rdma_registration_handle_unregister_success(uint64_t chunk) "%" PRIu64
|
|
rdma_registration_handle_wait(void) ""
|
|
rdma_registration_start(uint64_t flags) "%" PRIu64
|
|
rdma_registration_stop(uint64_t flags) "%" PRIu64
|
|
rdma_registration_stop_ram(void) ""
|
|
rdma_start_incoming_migration(void) ""
|
|
rdma_start_incoming_migration_after_dest_init(void) ""
|
|
rdma_start_incoming_migration_after_rdma_listen(void) ""
|
|
rdma_start_outgoing_migration_after_rdma_connect(void) ""
|
|
rdma_start_outgoing_migration_after_rdma_source_init(void) ""
|
|
|
|
# postcopy-ram.c
|
|
postcopy_discard_send_finish(const char *ramblock, int nwords, int ncmds) "%s mask words sent=%d in %d commands"
|
|
postcopy_discard_send_range(const char *ramblock, unsigned long start, unsigned long length) "%s:%lx/%lx"
|
|
postcopy_cleanup_range(const char *ramblock, void *host_addr, size_t offset, size_t length) "%s: %p offset=0x%zx length=0x%zx"
|
|
postcopy_init_range(const char *ramblock, void *host_addr, size_t offset, size_t length) "%s: %p offset=0x%zx length=0x%zx"
|
|
postcopy_nhp_range(const char *ramblock, void *host_addr, size_t offset, size_t length) "%s: %p offset=0x%zx length=0x%zx"
|
|
postcopy_place_page(void *host_addr) "host=%p"
|
|
postcopy_place_page_zero(void *host_addr) "host=%p"
|
|
postcopy_ram_enable_notify(void) ""
|
|
mark_postcopy_blocktime_begin(uint64_t addr, void *dd, uint32_t time, int cpu, int received) "addr: 0x%" PRIx64 ", dd: %p, time: %u, cpu: %d, already_received: %d"
|
|
mark_postcopy_blocktime_end(uint64_t addr, void *dd, uint32_t time, int affected_cpu) "addr: 0x%" PRIx64 ", dd: %p, time: %u, affected_cpu: %d"
|
|
postcopy_pause_fault_thread(void) ""
|
|
postcopy_pause_fault_thread_continued(void) ""
|
|
postcopy_pause_fast_load(void) ""
|
|
postcopy_pause_fast_load_continued(void) ""
|
|
postcopy_ram_fault_thread_entry(void) ""
|
|
postcopy_ram_fault_thread_exit(void) ""
|
|
postcopy_ram_fault_thread_fds_core(int baseufd, int quitfd) "ufd: %d quitfd: %d"
|
|
postcopy_ram_fault_thread_fds_extra(size_t index, const char *name, int fd) "%zd/%s: %d"
|
|
postcopy_ram_fault_thread_quit(void) ""
|
|
postcopy_ram_fault_thread_request(uint64_t hostaddr, const char *ramblock, size_t offset, uint32_t pid) "Request for HVA=0x%" PRIx64 " rb=%s offset=0x%zx pid=%u"
|
|
postcopy_ram_incoming_cleanup_closeuf(void) ""
|
|
postcopy_ram_incoming_cleanup_entry(void) ""
|
|
postcopy_ram_incoming_cleanup_exit(void) ""
|
|
postcopy_ram_incoming_cleanup_join(void) ""
|
|
postcopy_ram_incoming_cleanup_blocktime(uint64_t total) "total blocktime %" PRIu64
|
|
postcopy_request_shared_page(const char *sharer, const char *rb, uint64_t rb_offset) "for %s in %s offset 0x%"PRIx64
|
|
postcopy_request_shared_page_present(const char *sharer, const char *rb, uint64_t rb_offset) "%s already %s offset 0x%"PRIx64
|
|
postcopy_wake_shared(uint64_t client_addr, const char *rb) "at 0x%"PRIx64" in %s"
|
|
postcopy_page_req_del(void *addr, int count) "resolved page req %p total %d"
|
|
postcopy_preempt_tls_handshake(void) ""
|
|
postcopy_preempt_new_channel(void) ""
|
|
postcopy_preempt_thread_entry(void) ""
|
|
postcopy_preempt_thread_exit(void) ""
|
|
|
|
get_mem_fault_cpu_index(int cpu, uint32_t pid) "cpu: %d, pid: %u"
|
|
|
|
# exec.c
|
|
migration_exec_outgoing(const char *cmd) "cmd=%s"
|
|
migration_exec_incoming(const char *cmd) "cmd=%s"
|
|
|
|
# fd.c
|
|
migration_fd_outgoing(int fd) "fd=%d"
|
|
migration_fd_incoming(int fd) "fd=%d"
|
|
|
|
# file.c
|
|
migration_file_outgoing(const char *filename) "filename=%s"
|
|
migration_file_incoming(const char *filename) "filename=%s"
|
|
|
|
# socket.c
|
|
migration_socket_incoming_accepted(void) ""
|
|
migration_socket_outgoing_connected(const char *hostname) "hostname=%s"
|
|
migration_socket_outgoing_error(const char *err) "error=%s"
|
|
|
|
# tls.c
|
|
migration_tls_outgoing_handshake_start(const char *hostname) "hostname=%s"
|
|
migration_tls_outgoing_handshake_error(const char *err) "err=%s"
|
|
migration_tls_outgoing_handshake_complete(void) ""
|
|
migration_tls_incoming_handshake_start(void) ""
|
|
migration_tls_incoming_handshake_error(const char *err) "err=%s"
|
|
migration_tls_incoming_handshake_complete(void) ""
|
|
|
|
# colo.c
|
|
colo_vm_state_change(const char *old, const char *new) "Change '%s' => '%s'"
|
|
colo_send_message(const char *msg) "Send '%s' message"
|
|
colo_receive_message(const char *msg) "Receive '%s' message"
|
|
|
|
# colo-failover.c
|
|
colo_failover_set_state(const char *new_state) "new state %s"
|
|
|
|
# block-dirty-bitmap.c
|
|
send_bitmap_header_enter(void) ""
|
|
send_bitmap_bits(uint32_t flags, uint64_t start_sector, uint32_t nr_sectors, uint64_t data_size) "flags: 0x%x, start_sector: %" PRIu64 ", nr_sectors: %" PRIu32 ", data_size: %" PRIu64
|
|
dirty_bitmap_save_iterate(int in_postcopy) "in postcopy: %d"
|
|
dirty_bitmap_save_complete_enter(void) ""
|
|
dirty_bitmap_save_complete_finish(void) ""
|
|
dirty_bitmap_state_pending(uint64_t pending) "pending %" PRIu64
|
|
dirty_bitmap_load_complete(void) ""
|
|
dirty_bitmap_load_bits_enter(uint64_t first_sector, uint32_t nr_sectors) "chunk: %" PRIu64 " %" PRIu32
|
|
dirty_bitmap_load_bits_zeroes(void) ""
|
|
dirty_bitmap_load_header(uint32_t flags) "flags 0x%x"
|
|
dirty_bitmap_load_enter(void) ""
|
|
dirty_bitmap_load_success(void) ""
|
|
|
|
# dirtyrate.c
|
|
dirtyrate_set_state(const char *new_state) "new state %s"
|
|
query_dirty_rate_info(const char *new_state) "current state %s"
|
|
get_ramblock_vfn_hash(const char *idstr, uint64_t vfn, uint32_t hash) "ramblock name: %s, vfn: %"PRIu64 ", hash: %" PRIu32
|
|
calc_page_dirty_rate(const char *idstr, uint32_t new_hash, uint32_t old_hash) "ramblock name: %s, new hash: %" PRIu32 ", old hash: %" PRIu32
|
|
skip_sample_ramblock(const char *idstr, uint64_t ramblock_size) "ramblock name: %s, ramblock size: %" PRIu64
|
|
find_page_matched(const char *idstr) "ramblock %s addr or size changed"
|
|
dirtyrate_calculate(int64_t dirtyrate) "dirty rate: %" PRIi64 " MB/s"
|
|
dirtyrate_do_calculate_vcpu(int idx, uint64_t rate) "vcpu[%d]: %"PRIu64 " MB/s"
|
|
|
|
# block.c
|
|
migration_block_init_shared(const char *blk_device_name) "Start migration for %s with shared base image"
|
|
migration_block_init_full(const char *blk_device_name) "Start full migration for %s"
|
|
migration_block_save_device_dirty(int64_t sector) "Error reading sector %" PRId64
|
|
migration_block_flush_blks(const char *action, int submitted, int read_done, int transferred) "%s submitted %d read_done %d transferred %d"
|
|
migration_block_save(const char *mig_stage, int submitted, int transferred) "Enter save live %s submitted %d transferred %d"
|
|
migration_block_save_complete(void) "Block migration completed"
|
|
migration_block_state_pending(uint64_t pending) "Enter save live pending %" PRIu64
|
|
migration_block_progression(unsigned percent) "Completed %u%%"
|
|
|
|
# page_cache.c
|
|
migration_pagecache_init(int64_t max_num_items) "Setting cache buckets to %" PRId64
|
|
migration_pagecache_insert(void) "Error allocating page"
|