* [Qemu-devel] [PATCH v2 0/3] migration: add more traces @ 2014-03-04 4:10 Alexey Kardashevskiy 2014-03-04 4:10 ` [Qemu-devel] [PATCH v2 1/3] vl: add system_wakeup_request tracepoint Alexey Kardashevskiy ` (3 more replies) 0 siblings, 4 replies; 12+ messages in thread From: Alexey Kardashevskiy @ 2014-03-04 4:10 UTC (permalink / raw) To: qemu-devel; +Cc: Alexey Kardashevskiy, Paolo Bonzini This reworks/adds traces for migration. v2 is rework of an original single patch with the same subject. Alexey Kardashevskiy (3): vl: add system_wakeup_request tracepoint migration: extend section_start/end traces migration: add more traces migration.c | 30 ++++++------------------------ qemu-file.c | 2 ++ savevm.c | 20 ++++++++++++++------ trace-events | 21 +++++++++++++++++++-- vl.c | 2 ++ vmstate.c | 2 ++ 6 files changed, 45 insertions(+), 32 deletions(-) -- 1.8.4.rc4 ^ permalink raw reply [flat|nested] 12+ messages in thread
* [Qemu-devel] [PATCH v2 1/3] vl: add system_wakeup_request tracepoint 2014-03-04 4:10 [Qemu-devel] [PATCH v2 0/3] migration: add more traces Alexey Kardashevskiy @ 2014-03-04 4:10 ` Alexey Kardashevskiy 2014-03-04 4:10 ` [Qemu-devel] [PATCH v2 2/3] migration: extend section_start/end traces Alexey Kardashevskiy ` (2 subsequent siblings) 3 siblings, 0 replies; 12+ messages in thread From: Alexey Kardashevskiy @ 2014-03-04 4:10 UTC (permalink / raw) To: qemu-devel; +Cc: Alexey Kardashevskiy, Paolo Bonzini It might be useful for tracing migration. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> --- trace-events | 1 + vl.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/trace-events b/trace-events index 3713063..dbbaa04 100644 --- a/trace-events +++ b/trace-events @@ -486,6 +486,7 @@ runstate_set(int new_state) "new state %d" g_malloc(size_t size, void *ptr) "size %zu ptr %p" g_realloc(void *ptr, size_t size, void *newptr) "ptr %p size %zu newptr %p" g_free(void *ptr) "ptr %p" +system_wakeup_request(int reason) "reason=%d" # block/qcow2.c qcow2_writev_start_req(void *co, int64_t sector, int nb_sectors) "co %p sector %" PRIx64 " nb_sectors %d" diff --git a/vl.c b/vl.c index 1d27b34..179f14e 100644 --- a/vl.c +++ b/vl.c @@ -1837,6 +1837,8 @@ void qemu_register_suspend_notifier(Notifier *notifier) void qemu_system_wakeup_request(WakeupReason reason) { + trace_system_wakeup_request(reason); + if (!runstate_check(RUN_STATE_SUSPENDED)) { return; } -- 1.8.4.rc4 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [PATCH v2 2/3] migration: extend section_start/end traces 2014-03-04 4:10 [Qemu-devel] [PATCH v2 0/3] migration: add more traces Alexey Kardashevskiy 2014-03-04 4:10 ` [Qemu-devel] [PATCH v2 1/3] vl: add system_wakeup_request tracepoint Alexey Kardashevskiy @ 2014-03-04 4:10 ` Alexey Kardashevskiy 2014-03-04 4:10 ` [Qemu-devel] [PATCH v2 3/3] migration: add more traces Alexey Kardashevskiy 2014-03-04 12:32 ` [Qemu-devel] [PATCH v2 0/3] " Paolo Bonzini 3 siblings, 0 replies; 12+ messages in thread From: Alexey Kardashevskiy @ 2014-03-04 4:10 UTC (permalink / raw) To: qemu-devel; +Cc: Alexey Kardashevskiy, Paolo Bonzini This adds @idstr to savevm_section_start and savevm_section_end tracepoints. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> --- savevm.c | 12 ++++++------ trace-events | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/savevm.c b/savevm.c index 7329fc5..d094fbb 100644 --- a/savevm.c +++ b/savevm.c @@ -527,13 +527,13 @@ int qemu_savevm_state_iterate(QEMUFile *f) if (qemu_file_rate_limit(f)) { return 0; } - trace_savevm_section_start(); + trace_savevm_section_start(se->idstr, se->section_id); /* Section type */ qemu_put_byte(f, QEMU_VM_SECTION_PART); qemu_put_be32(f, se->section_id); ret = se->ops->save_live_iterate(f, se->opaque); - trace_savevm_section_end(se->section_id); + trace_savevm_section_end(se->idstr, se->section_id); if (ret < 0) { qemu_file_set_error(f, ret); @@ -565,13 +565,13 @@ void qemu_savevm_state_complete(QEMUFile *f) continue; } } - trace_savevm_section_start(); + trace_savevm_section_start(se->idstr, se->section_id); /* Section type */ qemu_put_byte(f, QEMU_VM_SECTION_END); qemu_put_be32(f, se->section_id); ret = se->ops->save_live_complete(f, se->opaque); - trace_savevm_section_end(se->section_id); + trace_savevm_section_end(se->idstr, se->section_id); if (ret < 0) { qemu_file_set_error(f, ret); return; @@ -584,7 +584,7 @@ void qemu_savevm_state_complete(QEMUFile *f) if ((!se->ops || !se->ops->save_state) && !se->vmsd) { continue; } - trace_savevm_section_start(); + trace_savevm_section_start(se->idstr, se->section_id); /* Section type */ qemu_put_byte(f, QEMU_VM_SECTION_FULL); qemu_put_be32(f, se->section_id); @@ -598,7 +598,7 @@ void qemu_savevm_state_complete(QEMUFile *f) qemu_put_be32(f, se->version_id); vmstate_save(f, se); - trace_savevm_section_end(se->section_id); + trace_savevm_section_end(se->idstr, se->section_id); } qemu_put_byte(f, QEMU_VM_EOF); diff --git a/trace-events b/trace-events index dbbaa04..6225235 100644 --- a/trace-events +++ b/trace-events @@ -1031,8 +1031,8 @@ vmware_scratch_write(uint32_t index, uint32_t value) "index %d, value 0x%x" vmware_setmode(uint32_t w, uint32_t h, uint32_t bpp) "%dx%d @ %d bpp" # savevm.c -savevm_section_start(void) "" -savevm_section_end(unsigned int section_id) "section_id %u" +savevm_section_start(const char *id, unsigned int section_id) "%s, section_id %u" +savevm_section_end(const char *id, unsigned int section_id) "%s, section_id %u" # arch_init.c migration_bitmap_sync_start(void) "" -- 1.8.4.rc4 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [PATCH v2 3/3] migration: add more traces 2014-03-04 4:10 [Qemu-devel] [PATCH v2 0/3] migration: add more traces Alexey Kardashevskiy 2014-03-04 4:10 ` [Qemu-devel] [PATCH v2 1/3] vl: add system_wakeup_request tracepoint Alexey Kardashevskiy 2014-03-04 4:10 ` [Qemu-devel] [PATCH v2 2/3] migration: extend section_start/end traces Alexey Kardashevskiy @ 2014-03-04 4:10 ` Alexey Kardashevskiy 2014-03-04 12:26 ` Paolo Bonzini 2014-03-04 12:32 ` [Qemu-devel] [PATCH v2 0/3] " Paolo Bonzini 3 siblings, 1 reply; 12+ messages in thread From: Alexey Kardashevskiy @ 2014-03-04 4:10 UTC (permalink / raw) To: qemu-devel; +Cc: Alexey Kardashevskiy, Paolo Bonzini This replaces DPRINTF macro with tracepoints. This moves some messages from migration.c to savevm.c. This adds tracepoint to signal about fileds failed to migrate. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> --- migration.c | 30 ++++++------------------------ qemu-file.c | 2 ++ savevm.c | 8 ++++++++ trace-events | 16 ++++++++++++++++ vmstate.c | 2 ++ 5 files changed, 34 insertions(+), 24 deletions(-) diff --git a/migration.c b/migration.c index 14235b2..2497c5d 100644 --- a/migration.c +++ b/migration.c @@ -26,16 +26,6 @@ #include "qmp-commands.h" #include "trace.h" -//#define DEBUG_MIGRATION - -#ifdef DEBUG_MIGRATION -#define DPRINTF(fmt, ...) \ - do { printf("migration: " fmt, ## __VA_ARGS__); } while (0) -#else -#define DPRINTF(fmt, ...) \ - do { } while (0) -#endif - enum { MIG_STATE_ERROR = -1, MIG_STATE_NONE, @@ -111,7 +101,6 @@ static void process_incoming_migration_co(void *opaque) exit(EXIT_FAILURE); } qemu_announce_self(); - DPRINTF("successfully loaded vm state\n"); bdrv_clear_incoming_migration_all(); /* Make sure all file formats flush their mutable metadata */ @@ -300,7 +289,7 @@ static void migrate_fd_cleanup(void *opaque) s->cleanup_bh = NULL; if (s->file) { - DPRINTF("closing file\n"); + trace_migrate_fd_cleanup(); qemu_mutex_unlock_iothread(); qemu_thread_join(&s->thread); qemu_mutex_lock_iothread(); @@ -323,7 +312,7 @@ static void migrate_fd_cleanup(void *opaque) void migrate_fd_error(MigrationState *s) { - DPRINTF("setting error state\n"); + trace_migrate_fd_error(); assert(s->file == NULL); s->state = MIG_STATE_ERROR; trace_migrate_set_state(MIG_STATE_ERROR); @@ -333,7 +322,7 @@ void migrate_fd_error(MigrationState *s) static void migrate_fd_cancel(MigrationState *s) { int old_state ; - DPRINTF("cancelling migration\n"); + trace_migrate_fd_cancel(); do { old_state = s->state; @@ -583,29 +572,23 @@ static void *migration_thread(void *opaque) int64_t start_time = initial_time; bool old_vm_running = false; - DPRINTF("beginning savevm\n"); qemu_savevm_state_begin(s->file, &s->params); s->setup_time = qemu_clock_get_ms(QEMU_CLOCK_HOST) - setup_start; migrate_set_state(s, MIG_STATE_SETUP, MIG_STATE_ACTIVE); - DPRINTF("setup complete\n"); - while (s->state == MIG_STATE_ACTIVE) { int64_t current_time; uint64_t pending_size; if (!qemu_file_rate_limit(s->file)) { - DPRINTF("iterate\n"); pending_size = qemu_savevm_state_pending(s->file, max_size); - DPRINTF("pending size %" PRIu64 " max %" PRIu64 "\n", - pending_size, max_size); + trace_migrate_pending(pending_size, max_size); if (pending_size && pending_size >= max_size) { qemu_savevm_state_iterate(s->file); } else { int ret; - DPRINTF("done iterating\n"); qemu_mutex_lock_iothread(); start_time = qemu_clock_get_ms(QEMU_CLOCK_REALTIME); qemu_system_wakeup_request(QEMU_WAKEUP_REASON_OTHER); @@ -644,9 +627,8 @@ static void *migration_thread(void *opaque) s->mbps = time_spent ? (((double) transferred_bytes * 8.0) / ((double) time_spent / 1000.0)) / 1000.0 / 1000.0 : -1; - DPRINTF("transferred %" PRIu64 " time_spent %" PRIu64 - " bandwidth %g max_size %" PRId64 "\n", - transferred_bytes, time_spent, bandwidth, max_size); + trace_migrate_transferred(transferred_bytes, time_spent, + bandwidth, max_size); /* if we haven't sent anything, we don't want to recalculate 10000 is a small enough number for our purposes */ if (s->dirty_bytes_rate && transferred_bytes > 10000) { diff --git a/qemu-file.c b/qemu-file.c index f074af1..1bf4b62 100644 --- a/qemu-file.c +++ b/qemu-file.c @@ -4,6 +4,7 @@ #include "block/coroutine.h" #include "migration/migration.h" #include "migration/qemu-file.h" +#include "trace.h" #define IO_BUF_SIZE 32768 #define MAX_IOV_SIZE MIN(IOV_MAX, 64) @@ -595,6 +596,7 @@ int qemu_fclose(QEMUFile *f) ret = f->last_error; } g_free(f); + trace_qemu_file_fclose(); return ret; } diff --git a/savevm.c b/savevm.c index d094fbb..efe604a 100644 --- a/savevm.c +++ b/savevm.c @@ -81,6 +81,7 @@ static void qemu_announce_self_iter(NICState *nic, void *opaque) uint8_t buf[60]; int len; + trace_qemu_announce_self_iter(); len = announce_self_create(buf, nic->conf->macaddr.a); qemu_send_packet_raw(qemu_get_queue(nic), buf, len); @@ -429,6 +430,7 @@ void vmstate_unregister(DeviceState *dev, const VMStateDescription *vmsd, static int vmstate_load(QEMUFile *f, SaveStateEntry *se, int version_id) { + trace_vmstate_load(se->idstr, se->vmsd ? se->vmsd->name : "(old)"); if (!se->vmsd) { /* Old style */ return se->ops->load_state(f, se->opaque, version_id); } @@ -437,6 +439,7 @@ static int vmstate_load(QEMUFile *f, SaveStateEntry *se, int version_id) static void vmstate_save(QEMUFile *f, SaveStateEntry *se) { + trace_vmstate_save(se->idstr, se->vmsd ? se->vmsd->name : "(old)"); if (!se->vmsd) { /* Old style */ se->ops->save_state(f, se->opaque); return; @@ -463,6 +466,7 @@ void qemu_savevm_state_begin(QEMUFile *f, SaveStateEntry *se; int ret; + trace_savevm_state_begin(); QTAILQ_FOREACH(se, &savevm_handlers, entry) { if (!se->ops || !se->ops->set_params) { continue; @@ -515,6 +519,7 @@ int qemu_savevm_state_iterate(QEMUFile *f) SaveStateEntry *se; int ret = 1; + trace_savevm_state_iterate(); QTAILQ_FOREACH(se, &savevm_handlers, entry) { if (!se->ops || !se->ops->save_live_iterate) { continue; @@ -554,6 +559,8 @@ void qemu_savevm_state_complete(QEMUFile *f) SaveStateEntry *se; int ret; + trace_savevm_state_complete(); + cpu_synchronize_all_states(); QTAILQ_FOREACH(se, &savevm_handlers, entry) { @@ -628,6 +635,7 @@ void qemu_savevm_state_cancel(void) { SaveStateEntry *se; + trace_savevm_state_cancel(); QTAILQ_FOREACH(se, &savevm_handlers, entry) { if (se->ops && se->ops->cancel) { se->ops->cancel(se->opaque); diff --git a/trace-events b/trace-events index 6225235..f7c0465 100644 --- a/trace-events +++ b/trace-events @@ -1033,6 +1033,17 @@ vmware_setmode(uint32_t w, uint32_t h, uint32_t bpp) "%dx%d @ %d bpp" # savevm.c savevm_section_start(const char *id, unsigned int section_id) "%s, section_id %u" savevm_section_end(const char *id, unsigned int section_id) "%s, section_id %u" +savevm_state_begin(void) "" +savevm_state_iterate(void) "" +savevm_state_complete(void) "" +savevm_state_cancel(void) "" +vmstate_save(const char *idstr, const char *vmsd_name) "%s, %s" +vmstate_load(const char *idstr, const char *vmsd_name) "%s, %s" +vmstate_load_field_error(const char *field, int ret) "field \"%s\" load failed, ret = %d" +qemu_announce_self_iter(void) "" + +# qemu-file.c +qemu_file_fclose(void) "" # arch_init.c migration_bitmap_sync_start(void) "" @@ -1165,6 +1176,11 @@ virtio_ccw_new_device(int cssid, int ssid, int schid, int devno, const char *dev # migration.c migrate_set_state(int new_state) "new state %d" +migrate_fd_cleanup(void) "" +migrate_fd_error(void) "" +migrate_fd_cancel(void) "" +migrate_pending(uint64_t size, uint64_t max) "pending size %" PRIu64 " max %" PRIu64 +migrate_transferred(uint64_t tranferred, uint64_t time_spent, double bandwidth, uint64_t size) "transferred %" PRIu64 " time_spent %" PRIu64 " bandwidth %g max_size %" PRId64 # kvm-all.c kvm_ioctl(int type, void *arg) "type 0x%x, arg %p" diff --git a/vmstate.c b/vmstate.c index d1f5eb0..b689f2f 100644 --- a/vmstate.c +++ b/vmstate.c @@ -3,6 +3,7 @@ #include "migration/qemu-file.h" #include "migration/vmstate.h" #include "qemu/bitops.h" +#include "trace.h" static void vmstate_subsection_save(QEMUFile *f, const VMStateDescription *vmsd, void *opaque); @@ -73,6 +74,7 @@ int vmstate_load_state(QEMUFile *f, const VMStateDescription *vmsd, } if (ret < 0) { + trace_vmstate_load_field_error(field->name, ret); return ret; } } -- 1.8.4.rc4 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH v2 3/3] migration: add more traces 2014-03-04 4:10 ` [Qemu-devel] [PATCH v2 3/3] migration: add more traces Alexey Kardashevskiy @ 2014-03-04 12:26 ` Paolo Bonzini 2014-03-04 15:14 ` [Qemu-devel] [PATCH v3] " Alexey Kardashevskiy 0 siblings, 1 reply; 12+ messages in thread From: Paolo Bonzini @ 2014-03-04 12:26 UTC (permalink / raw) To: Alexey Kardashevskiy, qemu-devel Il 04/03/2014 05:10, Alexey Kardashevskiy ha scritto: > @@ -81,6 +81,7 @@ static void qemu_announce_self_iter(NICState *nic, void *opaque) > uint8_t buf[60]; > int len; > > + trace_qemu_announce_self_iter(); Should include the nic or, even better, the six bytes of the MAC address. Otherwise fine. Paolo ^ permalink raw reply [flat|nested] 12+ messages in thread
* [Qemu-devel] [PATCH v3] migration: add more traces 2014-03-04 12:26 ` Paolo Bonzini @ 2014-03-04 15:14 ` Alexey Kardashevskiy 2014-03-06 20:04 ` Amit Shah 2014-03-10 17:17 ` Amit Shah 0 siblings, 2 replies; 12+ messages in thread From: Alexey Kardashevskiy @ 2014-03-04 15:14 UTC (permalink / raw) To: qemu-devel; +Cc: Alexey Kardashevskiy, Paolo Bonzini, Juan Quintela This replaces DPRINTF macro with tracepoints. This moves some messages from migration.c to savevm.c. This adds tracepoint to signal about fileds failed to migrate. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> --- This is v3. Should I repost the whole thing or just "3/3 v3" is ok? Thanks! --- Changes: v3: * added MAC address to trace_qemu_announce_self_iter --- migration.c | 30 ++++++------------------------ qemu-file.c | 2 ++ savevm.c | 10 ++++++++++ trace-events | 16 ++++++++++++++++ vmstate.c | 2 ++ 5 files changed, 36 insertions(+), 24 deletions(-) diff --git a/migration.c b/migration.c index 14235b2..2497c5d 100644 --- a/migration.c +++ b/migration.c @@ -26,16 +26,6 @@ #include "qmp-commands.h" #include "trace.h" -//#define DEBUG_MIGRATION - -#ifdef DEBUG_MIGRATION -#define DPRINTF(fmt, ...) \ - do { printf("migration: " fmt, ## __VA_ARGS__); } while (0) -#else -#define DPRINTF(fmt, ...) \ - do { } while (0) -#endif - enum { MIG_STATE_ERROR = -1, MIG_STATE_NONE, @@ -111,7 +101,6 @@ static void process_incoming_migration_co(void *opaque) exit(EXIT_FAILURE); } qemu_announce_self(); - DPRINTF("successfully loaded vm state\n"); bdrv_clear_incoming_migration_all(); /* Make sure all file formats flush their mutable metadata */ @@ -300,7 +289,7 @@ static void migrate_fd_cleanup(void *opaque) s->cleanup_bh = NULL; if (s->file) { - DPRINTF("closing file\n"); + trace_migrate_fd_cleanup(); qemu_mutex_unlock_iothread(); qemu_thread_join(&s->thread); qemu_mutex_lock_iothread(); @@ -323,7 +312,7 @@ static void migrate_fd_cleanup(void *opaque) void migrate_fd_error(MigrationState *s) { - DPRINTF("setting error state\n"); + trace_migrate_fd_error(); assert(s->file == NULL); s->state = MIG_STATE_ERROR; trace_migrate_set_state(MIG_STATE_ERROR); @@ -333,7 +322,7 @@ void migrate_fd_error(MigrationState *s) static void migrate_fd_cancel(MigrationState *s) { int old_state ; - DPRINTF("cancelling migration\n"); + trace_migrate_fd_cancel(); do { old_state = s->state; @@ -583,29 +572,23 @@ static void *migration_thread(void *opaque) int64_t start_time = initial_time; bool old_vm_running = false; - DPRINTF("beginning savevm\n"); qemu_savevm_state_begin(s->file, &s->params); s->setup_time = qemu_clock_get_ms(QEMU_CLOCK_HOST) - setup_start; migrate_set_state(s, MIG_STATE_SETUP, MIG_STATE_ACTIVE); - DPRINTF("setup complete\n"); - while (s->state == MIG_STATE_ACTIVE) { int64_t current_time; uint64_t pending_size; if (!qemu_file_rate_limit(s->file)) { - DPRINTF("iterate\n"); pending_size = qemu_savevm_state_pending(s->file, max_size); - DPRINTF("pending size %" PRIu64 " max %" PRIu64 "\n", - pending_size, max_size); + trace_migrate_pending(pending_size, max_size); if (pending_size && pending_size >= max_size) { qemu_savevm_state_iterate(s->file); } else { int ret; - DPRINTF("done iterating\n"); qemu_mutex_lock_iothread(); start_time = qemu_clock_get_ms(QEMU_CLOCK_REALTIME); qemu_system_wakeup_request(QEMU_WAKEUP_REASON_OTHER); @@ -644,9 +627,8 @@ static void *migration_thread(void *opaque) s->mbps = time_spent ? (((double) transferred_bytes * 8.0) / ((double) time_spent / 1000.0)) / 1000.0 / 1000.0 : -1; - DPRINTF("transferred %" PRIu64 " time_spent %" PRIu64 - " bandwidth %g max_size %" PRId64 "\n", - transferred_bytes, time_spent, bandwidth, max_size); + trace_migrate_transferred(transferred_bytes, time_spent, + bandwidth, max_size); /* if we haven't sent anything, we don't want to recalculate 10000 is a small enough number for our purposes */ if (s->dirty_bytes_rate && transferred_bytes > 10000) { diff --git a/qemu-file.c b/qemu-file.c index f074af1..1bf4b62 100644 --- a/qemu-file.c +++ b/qemu-file.c @@ -4,6 +4,7 @@ #include "block/coroutine.h" #include "migration/migration.h" #include "migration/qemu-file.h" +#include "trace.h" #define IO_BUF_SIZE 32768 #define MAX_IOV_SIZE MIN(IOV_MAX, 64) @@ -595,6 +596,7 @@ int qemu_fclose(QEMUFile *f) ret = f->last_error; } g_free(f); + trace_qemu_file_fclose(); return ret; } diff --git a/savevm.c b/savevm.c index d094fbb..ef7d9ce 100644 --- a/savevm.c +++ b/savevm.c @@ -41,6 +41,7 @@ #include "qemu/iov.h" #include "block/snapshot.h" #include "block/qapi.h" +#include <netinet/ether.h> #define SELF_ANNOUNCE_ROUNDS 5 @@ -81,6 +82,8 @@ static void qemu_announce_self_iter(NICState *nic, void *opaque) uint8_t buf[60]; int len; + trace_qemu_announce_self_iter(ether_ntoa((struct ether_addr *) + &nic->conf->macaddr)); len = announce_self_create(buf, nic->conf->macaddr.a); qemu_send_packet_raw(qemu_get_queue(nic), buf, len); @@ -429,6 +432,7 @@ void vmstate_unregister(DeviceState *dev, const VMStateDescription *vmsd, static int vmstate_load(QEMUFile *f, SaveStateEntry *se, int version_id) { + trace_vmstate_load(se->idstr, se->vmsd ? se->vmsd->name : "(old)"); if (!se->vmsd) { /* Old style */ return se->ops->load_state(f, se->opaque, version_id); } @@ -437,6 +441,7 @@ static int vmstate_load(QEMUFile *f, SaveStateEntry *se, int version_id) static void vmstate_save(QEMUFile *f, SaveStateEntry *se) { + trace_vmstate_save(se->idstr, se->vmsd ? se->vmsd->name : "(old)"); if (!se->vmsd) { /* Old style */ se->ops->save_state(f, se->opaque); return; @@ -463,6 +468,7 @@ void qemu_savevm_state_begin(QEMUFile *f, SaveStateEntry *se; int ret; + trace_savevm_state_begin(); QTAILQ_FOREACH(se, &savevm_handlers, entry) { if (!se->ops || !se->ops->set_params) { continue; @@ -515,6 +521,7 @@ int qemu_savevm_state_iterate(QEMUFile *f) SaveStateEntry *se; int ret = 1; + trace_savevm_state_iterate(); QTAILQ_FOREACH(se, &savevm_handlers, entry) { if (!se->ops || !se->ops->save_live_iterate) { continue; @@ -554,6 +561,8 @@ void qemu_savevm_state_complete(QEMUFile *f) SaveStateEntry *se; int ret; + trace_savevm_state_complete(); + cpu_synchronize_all_states(); QTAILQ_FOREACH(se, &savevm_handlers, entry) { @@ -628,6 +637,7 @@ void qemu_savevm_state_cancel(void) { SaveStateEntry *se; + trace_savevm_state_cancel(); QTAILQ_FOREACH(se, &savevm_handlers, entry) { if (se->ops && se->ops->cancel) { se->ops->cancel(se->opaque); diff --git a/trace-events b/trace-events index 828a3e9..395da76 100644 --- a/trace-events +++ b/trace-events @@ -1033,6 +1033,17 @@ vmware_setmode(uint32_t w, uint32_t h, uint32_t bpp) "%dx%d @ %d bpp" # savevm.c savevm_section_start(const char *id, unsigned int section_id) "%s, section_id %u" savevm_section_end(const char *id, unsigned int section_id) "%s, section_id %u" +savevm_state_begin(void) "" +savevm_state_iterate(void) "" +savevm_state_complete(void) "" +savevm_state_cancel(void) "" +vmstate_save(const char *idstr, const char *vmsd_name) "%s, %s" +vmstate_load(const char *idstr, const char *vmsd_name) "%s, %s" +vmstate_load_field_error(const char *field, int ret) "field \"%s\" load failed, ret = %d" +qemu_announce_self_iter(const char *mac) "%s" + +# qemu-file.c +qemu_file_fclose(void) "" # arch_init.c migration_bitmap_sync_start(void) "" @@ -1165,6 +1176,11 @@ virtio_ccw_new_device(int cssid, int ssid, int schid, int devno, const char *dev # migration.c migrate_set_state(int new_state) "new state %d" +migrate_fd_cleanup(void) "" +migrate_fd_error(void) "" +migrate_fd_cancel(void) "" +migrate_pending(uint64_t size, uint64_t max) "pending size %" PRIu64 " max %" PRIu64 +migrate_transferred(uint64_t tranferred, uint64_t time_spent, double bandwidth, uint64_t size) "transferred %" PRIu64 " time_spent %" PRIu64 " bandwidth %g max_size %" PRId64 # kvm-all.c kvm_ioctl(int type, void *arg) "type 0x%x, arg %p" diff --git a/vmstate.c b/vmstate.c index d1f5eb0..b689f2f 100644 --- a/vmstate.c +++ b/vmstate.c @@ -3,6 +3,7 @@ #include "migration/qemu-file.h" #include "migration/vmstate.h" #include "qemu/bitops.h" +#include "trace.h" static void vmstate_subsection_save(QEMUFile *f, const VMStateDescription *vmsd, void *opaque); @@ -73,6 +74,7 @@ int vmstate_load_state(QEMUFile *f, const VMStateDescription *vmsd, } if (ret < 0) { + trace_vmstate_load_field_error(field->name, ret); return ret; } } -- 1.8.4.rc4 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH v3] migration: add more traces 2014-03-04 15:14 ` [Qemu-devel] [PATCH v3] " Alexey Kardashevskiy @ 2014-03-06 20:04 ` Amit Shah 2014-03-10 17:17 ` Amit Shah 1 sibling, 0 replies; 12+ messages in thread From: Amit Shah @ 2014-03-06 20:04 UTC (permalink / raw) To: Alexey Kardashevskiy; +Cc: Paolo Bonzini, qemu-devel, Juan Quintela On (Wed) 05 Mar 2014 [02:14:56], Alexey Kardashevskiy wrote: > This replaces DPRINTF macro with tracepoints. > > This moves some messages from migration.c to savevm.c. > > This adds tracepoint to signal about fileds failed to migrate. > > Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> > --- > > This is v3. Should I repost the whole thing or just "3/3 v3" is ok? Thanks! Sending the series again is preferred. (You can see 3/3 was missed in the subject line. There are other small quirks that can happen and cause more pain for maintainers.) I've corrected the 's/fileds/fields' typo in the commit msg and picked up this series and applied to my migration branch, which I'll send to Juan. Amit ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH v3] migration: add more traces 2014-03-04 15:14 ` [Qemu-devel] [PATCH v3] " Alexey Kardashevskiy 2014-03-06 20:04 ` Amit Shah @ 2014-03-10 17:17 ` Amit Shah 2014-03-10 22:35 ` Alexey Kardashevskiy 1 sibling, 1 reply; 12+ messages in thread From: Amit Shah @ 2014-03-10 17:17 UTC (permalink / raw) To: Alexey Kardashevskiy; +Cc: Paolo Bonzini, qemu-devel, Juan Quintela On (Wed) 05 Mar 2014 [02:14:56], Alexey Kardashevskiy wrote: > This replaces DPRINTF macro with tracepoints. > > This moves some messages from migration.c to savevm.c. > > This adds tracepoint to signal about fileds failed to migrate. > > Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> > --- > > This is v3. Should I repost the whole thing or just "3/3 v3" is ok? Thanks! This broke the build on windows: http://news.gmane.org/find-root.php?message_id=CAFEAcA%5fEa72JTVLJ3Z%2dzUtoe8vg%2bjh8R96mNW2c2x2Mx%5fj%2bFwg%40mail.gmail.com Please fix. Amit ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH v3] migration: add more traces 2014-03-10 17:17 ` Amit Shah @ 2014-03-10 22:35 ` Alexey Kardashevskiy 2014-03-10 22:42 ` Juan Quintela 0 siblings, 1 reply; 12+ messages in thread From: Alexey Kardashevskiy @ 2014-03-10 22:35 UTC (permalink / raw) To: Amit Shah; +Cc: Paolo Bonzini, qemu-devel, Juan Quintela On 03/11/2014 04:17 AM, Amit Shah wrote: > On (Wed) 05 Mar 2014 [02:14:56], Alexey Kardashevskiy wrote: >> This replaces DPRINTF macro with tracepoints. >> >> This moves some messages from migration.c to savevm.c. >> >> This adds tracepoint to signal about fileds failed to migrate. >> >> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> >> --- >> >> This is v3. Should I repost the whole thing or just "3/3 v3" is ok? Thanks! > > This broke the build on windows: > > http://news.gmane.org/find-root.php?message_id=CAFEAcA%5fEa72JTVLJ3Z%2dzUtoe8vg%2bjh8R96mNW2c2x2Mx%5fj%2bFwg%40mail.gmail.com > > Please fix. I am sorry but how? Is it msvc? Is it mingw? Or replace with %02x:%02x:%02x:%02x:%02x:%02x? -- Alexey ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH v3] migration: add more traces 2014-03-10 22:35 ` Alexey Kardashevskiy @ 2014-03-10 22:42 ` Juan Quintela 0 siblings, 0 replies; 12+ messages in thread From: Juan Quintela @ 2014-03-10 22:42 UTC (permalink / raw) To: Alexey Kardashevskiy; +Cc: Amit Shah, Paolo Bonzini, qemu-devel Alexey Kardashevskiy <aik@ozlabs.ru> wrote: > On 03/11/2014 04:17 AM, Amit Shah wrote: >> On (Wed) 05 Mar 2014 [02:14:56], Alexey Kardashevskiy wrote: >>> This replaces DPRINTF macro with tracepoints. >>> >>> This moves some messages from migration.c to savevm.c. >>> >>> This adds tracepoint to signal about fileds failed to migrate. >>> >>> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> >>> --- >>> >>> This is v3. Should I repost the whole thing or just "3/3 v3" is ok? Thanks! >> >> This broke the build on windows: >> >> http://news.gmane.org/find-root.php?message_id=CAFEAcA%5fEa72JTVLJ3Z%2dzUtoe8vg%2bjh8R96mNW2c2x2Mx%5fj%2bFwg%40mail.gmail.com >> >> Please fix. > > I am sorry but how? Is it msvc? Is it mingw? Or replace with > %02x:%02x:%02x:%02x:%02x:%02x? mingw32. Replace with %02x:02x or create a qmeu_ether_ntoa() function with exactly that code in utils/cutils.c Later, Juan. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH v2 0/3] migration: add more traces 2014-03-04 4:10 [Qemu-devel] [PATCH v2 0/3] migration: add more traces Alexey Kardashevskiy ` (2 preceding siblings ...) 2014-03-04 4:10 ` [Qemu-devel] [PATCH v2 3/3] migration: add more traces Alexey Kardashevskiy @ 2014-03-04 12:32 ` Paolo Bonzini 2014-03-05 9:10 ` Stefan Hajnoczi 3 siblings, 1 reply; 12+ messages in thread From: Paolo Bonzini @ 2014-03-04 12:32 UTC (permalink / raw) To: Alexey Kardashevskiy, qemu-devel, Juan Quintela, Stefan Hajnoczi Il 04/03/2014 05:10, Alexey Kardashevskiy ha scritto: > This reworks/adds traces for migration. > v2 is rework of an original single patch with the same subject. > > Alexey Kardashevskiy (3): > vl: add system_wakeup_request tracepoint > migration: extend section_start/end traces > migration: add more traces > > migration.c | 30 ++++++------------------------ > qemu-file.c | 2 ++ > savevm.c | 20 ++++++++++++++------ > trace-events | 21 +++++++++++++++++++-- > vl.c | 2 ++ > vmstate.c | 2 ++ > 6 files changed, 45 insertions(+), 32 deletions(-) > Looks good, CCing Juan and Stefan. It would be nice to have this in 2.0. I had a remark on patch 3. Paolo ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH v2 0/3] migration: add more traces 2014-03-04 12:32 ` [Qemu-devel] [PATCH v2 0/3] " Paolo Bonzini @ 2014-03-05 9:10 ` Stefan Hajnoczi 0 siblings, 0 replies; 12+ messages in thread From: Stefan Hajnoczi @ 2014-03-05 9:10 UTC (permalink / raw) To: Paolo Bonzini Cc: Alexey Kardashevskiy, qemu-devel, Stefan Hajnoczi, Juan Quintela On Tue, Mar 04, 2014 at 01:32:54PM +0100, Paolo Bonzini wrote: > Il 04/03/2014 05:10, Alexey Kardashevskiy ha scritto: > >This reworks/adds traces for migration. > >v2 is rework of an original single patch with the same subject. > > > >Alexey Kardashevskiy (3): > > vl: add system_wakeup_request tracepoint > > migration: extend section_start/end traces > > migration: add more traces > > > > migration.c | 30 ++++++------------------------ > > qemu-file.c | 2 ++ > > savevm.c | 20 ++++++++++++++------ > > trace-events | 21 +++++++++++++++++++-- > > vl.c | 2 ++ > > vmstate.c | 2 ++ > > 6 files changed, 45 insertions(+), 32 deletions(-) > > > > Looks good, CCing Juan and Stefan. It would be nice to have this in > 2.0. I had a remark on patch 3. Juan: please take this series through the migration tree Stefan ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2014-03-10 22:42 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-03-04 4:10 [Qemu-devel] [PATCH v2 0/3] migration: add more traces Alexey Kardashevskiy 2014-03-04 4:10 ` [Qemu-devel] [PATCH v2 1/3] vl: add system_wakeup_request tracepoint Alexey Kardashevskiy 2014-03-04 4:10 ` [Qemu-devel] [PATCH v2 2/3] migration: extend section_start/end traces Alexey Kardashevskiy 2014-03-04 4:10 ` [Qemu-devel] [PATCH v2 3/3] migration: add more traces Alexey Kardashevskiy 2014-03-04 12:26 ` Paolo Bonzini 2014-03-04 15:14 ` [Qemu-devel] [PATCH v3] " Alexey Kardashevskiy 2014-03-06 20:04 ` Amit Shah 2014-03-10 17:17 ` Amit Shah 2014-03-10 22:35 ` Alexey Kardashevskiy 2014-03-10 22:42 ` Juan Quintela 2014-03-04 12:32 ` [Qemu-devel] [PATCH v2 0/3] " Paolo Bonzini 2014-03-05 9:10 ` Stefan Hajnoczi
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).