aboutsummaryrefslogtreecommitdiff
path: root/migration/trace-events
diff options
context:
space:
mode:
authorPeter Xu <peterx@redhat.com>2023-10-30 12:33:44 -0400
committerJuan Quintela <quintela@redhat.com>2023-11-01 16:13:58 +0100
commit3c80f14272057f77c87fb9971e8c4f603a03289a (patch)
tree8be7206d4739153ebdcc61d91f20511c2afd1192 /migration/trace-events
parente22ffad03a32d3fc4717561f8af5ef7d9657728d (diff)
downloadqemu-3c80f14272057f77c87fb9971e8c4f603a03289a.zip
qemu-3c80f14272057f77c87fb9971e8c4f603a03289a.tar.gz
qemu-3c80f14272057f77c87fb9971e8c4f603a03289a.tar.bz2
migration: Add per vmstate downtime tracepoints
We have a bunch of savevm_section* tracepoints, they're good to analyze migration stream, but not always suitable if someone would like to analyze the migration downtime. Two major problems: - savevm_section* tracepoints are dumping all sections, we only care about the sections that contribute to the downtime - They don't have an identifier to show the type of sections, so no way to filter downtime information either easily. We can add type into the tracepoints, but instead of doing so, this patch kept them untouched, instead of adding a bunch of downtime specific tracepoints, so one can enable "vmstate_downtime*" tracepoints and get a full picture of how the downtime is distributed across iterative and non-iterative vmstate save/load. Note that here both save() and load() need to be traced, because both of them may contribute to the downtime. The contribution is not a simple "add them together", though: consider when the src is doing a save() of device1 while the dest can be load()ing for device2, so they can happen concurrently. Tracking both sides make sense because device load() and save() can be imbalanced, one device can save() super fast, but load() super slow, vice versa. We can't figure that out without tracing both. Signed-off-by: Peter Xu <peterx@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com> Message-ID: <20231030163346.765724-4-peterx@redhat.com>
Diffstat (limited to 'migration/trace-events')
-rw-r--r--migration/trace-events2
1 files changed, 2 insertions, 0 deletions
diff --git a/migration/trace-events b/migration/trace-events
index fa9486d..5820add 100644
--- a/migration/trace-events
+++ b/migration/trace-events
@@ -48,6 +48,8 @@ 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
postcopy_pause_incoming(void) ""
postcopy_pause_incoming_continued(void) ""
postcopy_page_req_sync(void *host_addr) "sync page req %p"