From: Orit Wasserman <owasserm@redhat.com>
To: Juan Quintela <quintela@redhat.com>
Cc: chegu_vinod@hp.com, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 2/7] Add tracepoints for savevm section start/end
Date: Thu, 14 Jun 2012 14:00:48 +0300 [thread overview]
Message-ID: <4FD9C460.30205@redhat.com> (raw)
In-Reply-To: <69aa628549030e86fa083ce801d26c3c4e7c9092.1337710679.git.quintela@redhat.com>
On 05/22/2012 09:32 PM, Juan Quintela wrote:
> This allows to know how long each section takes to save.
>
> An awk script like this tells us sections that takes more that 10ms
>
> $1 ~ /savevm_state_iterate_end/ {
> /* Print savevm_section_end line when > 10ms duration */
> if ($2 > 10000) {
> printf("%s times_missing=%u\n", $0, times_missing++);
> }
> }
>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> savevm.c | 8 ++++++++
> trace-events | 6 ++++++
> 2 files changed, 14 insertions(+), 0 deletions(-)
>
> diff --git a/savevm.c b/savevm.c
> index 2d18bab..779bd22 100644
> --- a/savevm.c
> +++ b/savevm.c
> @@ -85,6 +85,7 @@
> #include "cpus.h"
> #include "memory.h"
> #include "qmp-commands.h"
> +#include "trace.h"
>
> #define SELF_ANNOUNCE_ROUNDS 5
>
> @@ -1624,11 +1625,14 @@ int qemu_savevm_state_iterate(QEMUFile *f)
> if (se->save_live_state == NULL)
> continue;
>
> + trace_savevm_section_start();
> /* Section type */
> qemu_put_byte(f, QEMU_VM_SECTION_PART);
> qemu_put_be32(f, se->section_id);
>
> ret = se->save_live_state(f, QEMU_VM_SECTION_PART, se->opaque);
> + trace_savevm_section_end(se->section_id);
> +
> if (ret <= 0) {
> /* Do not proceed to the next vmstate before this one reported
> completion of the current stage. This serializes the migration
> @@ -1658,11 +1662,13 @@ int qemu_savevm_state_complete(QEMUFile *f)
> if (se->save_live_state == NULL)
> continue;
>
> + trace_savevm_section_start();
> /* Section type */
> qemu_put_byte(f, QEMU_VM_SECTION_END);
> qemu_put_be32(f, se->section_id);
>
> ret = se->save_live_state(f, QEMU_VM_SECTION_END, se->opaque);
> + trace_savevm_section_end(se->section_id);
> if (ret < 0) {
> return ret;
> }
> @@ -1674,6 +1680,7 @@ int qemu_savevm_state_complete(QEMUFile *f)
> if (se->save_state == NULL && se->vmsd == NULL)
> continue;
>
> + trace_savevm_section_start();
> /* Section type */
> qemu_put_byte(f, QEMU_VM_SECTION_FULL);
> qemu_put_be32(f, se->section_id);
> @@ -1687,6 +1694,7 @@ int qemu_savevm_state_complete(QEMUFile *f)
> qemu_put_be32(f, se->version_id);
>
> vmstate_save(f, se);
> + trace_savevm_section_end(se->section_id);
> }
>
> qemu_put_byte(f, QEMU_VM_EOF);
> diff --git a/trace-events b/trace-events
> index 87cb96c..73d5f81 100644
> --- a/trace-events
> +++ b/trace-events
> @@ -741,6 +741,11 @@ displaysurface_resize(void *display_state, void *display_surface, int width, int
> # vga.c
> ppm_save(const char *filename, void *display_surface) "%s surface=%p"
>
> +# savevm.c
> +
> +savevm_section_start(void) ""
> +savevm_section_end(unsigned int section_id) "section_id %u"
> +
> # hw/qxl.c
> disable qxl_interface_set_mm_time(int qid, uint32_t mm_time) "%d %d"
> disable qxl_io_write_vga(int qid, const char *mode, uint32_t addr, uint32_t val) "%d %s addr=%u val=%u"
> @@ -805,3 +810,4 @@ qxl_render_blit_guest_primary_initialized(void) ""
> qxl_render_blit(int32_t stride, int32_t left, int32_t right, int32_t top, int32_t bottom) "stride=%d [%d, %d, %d, %d]"
> qxl_render_guest_primary_resized(int32_t width, int32_t height, int32_t stride, int32_t bytes_pp, int32_t bits_pp) "%dx%d, stride %d, bpp %d, depth %d"
> qxl_render_update_area_done(void *cookie) "%p"
> +
extra ws
Reviewed-by: Orit Wasserman <owasserm@redhat.com>
next prev parent reply other threads:[~2012-06-14 11:01 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-22 18:32 [Qemu-devel] [RFC 0/7] Fix migration with lots of memory Juan Quintela
2012-05-22 18:32 ` [Qemu-devel] [PATCH 1/7] Add spent time for migration Juan Quintela
2012-06-14 10:52 ` Orit Wasserman
2012-05-22 18:32 ` [Qemu-devel] [PATCH 2/7] Add tracepoints for savevm section start/end Juan Quintela
2012-06-14 11:00 ` Orit Wasserman [this message]
2012-05-22 18:32 ` [Qemu-devel] [PATCH 3/7] No need to iterate if we already are over the limit Juan Quintela
2012-06-14 11:03 ` Orit Wasserman
2012-05-22 18:32 ` [Qemu-devel] [PATCH 4/7] Only TCG needs TLB handling Juan Quintela
2012-06-14 11:15 ` Orit Wasserman
2012-05-22 18:32 ` [Qemu-devel] [PATCH 5/7] Only calculate expected_time for stage 2 Juan Quintela
2012-06-14 11:31 ` Orit Wasserman
2012-05-22 18:32 ` [Qemu-devel] [PATCH 6/7] Exit loop if we have been there too long Juan Quintela
2012-06-14 11:36 ` Orit Wasserman
2012-06-21 19:34 ` Juan Quintela
2012-06-22 2:42 ` 陳韋任 (Wei-Ren Chen)
2012-06-22 12:44 ` Juan Quintela
2012-05-22 18:32 ` [Qemu-devel] [PATCH 7/7] Maintaing number of dirty pages Juan Quintela
2012-06-14 11:42 ` Orit Wasserman
2012-06-11 3:56 ` [Qemu-devel] [RFC 0/7] Fix migration with lots of memory Chegu Vinod
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4FD9C460.30205@redhat.com \
--to=owasserm@redhat.com \
--cc=chegu_vinod@hp.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.