From 1313efdc0ac664169c5c271f832264efe6659743 Mon Sep 17 00:00:00 2001 Message-Id: From: Philipp Hahn Date: Fri, 17 Mar 2017 12:51:01 +0100 Subject: [PATCH 1/2] 0006-Bug-38877-debug-loadvm-offset Organization: Univention GmbH, Bremen, Germany To: address@hidden debug: Print offset on section error: address@hidden:qemu_loadvm_state_section address@hidden Gbp: Topic debug Signed-off-by: Philipp Hahn --- include/migration/qemu-file.h | 1 + migration/qemu-file.c | 5 +++++ migration/savevm.c | 2 +- migration/trace-events | 2 +- 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/include/migration/qemu-file.h b/include/migration/qemu-file.h index abedd46..a570836 100644 --- a/include/migration/qemu-file.h +++ b/include/migration/qemu-file.h @@ -126,6 +126,7 @@ int qemu_get_fd(QEMUFile *f); int qemu_fclose(QEMUFile *f); int64_t qemu_ftell(QEMUFile *f); int64_t qemu_ftell_fast(QEMUFile *f); +int64_t qemu_ftell_internal(QEMUFile *f); void qemu_put_buffer(QEMUFile *f, const uint8_t *buf, size_t size); void qemu_put_byte(QEMUFile *f, int v); /* diff --git a/migration/qemu-file.c b/migration/qemu-file.c index e9fae31..862b8c7 100644 --- a/migration/qemu-file.c +++ b/migration/qemu-file.c @@ -543,6 +543,11 @@ int64_t qemu_ftell(QEMUFile *f) return f->pos; } +int64_t qemu_ftell_internal(QEMUFile *f) +{ + return f->pos - f->buf_size + f->buf_index; +} + int qemu_file_rate_limit(QEMUFile *f) { if (qemu_file_get_error(f)) { diff --git a/migration/savevm.c b/migration/savevm.c index 0363372..da2a98b 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -1882,7 +1882,7 @@ static int qemu_loadvm_state_main(QEMUFile *f, MigrationIncomingState *mis) while ((section_type = qemu_get_byte(f)) != QEMU_VM_EOF) { ret = 0; - trace_qemu_loadvm_state_section(section_type); + trace_qemu_loadvm_state_section(section_type, qemu_ftell_internal(f) - 1); switch (section_type) { case QEMU_VM_SECTION_START: case QEMU_VM_SECTION_FULL: diff --git a/migration/trace-events b/migration/trace-events index 94134f7..49f8458 100644 --- a/migration/trace-events +++ b/migration/trace-events @@ -1,7 +1,7 @@ # See docs/tracing.txt for syntax documentation. # migration/savevm.c -qemu_loadvm_state_section(unsigned int section_type) "%d" +qemu_loadvm_state_section(unsigned int section_type, uint64_t offset) "address@hidden" PRIx64 qemu_loadvm_state_section_command(int ret) "%d" qemu_loadvm_state_section_partend(uint32_t section_id) "%u" qemu_loadvm_state_main(void) "" -- 2.1.4