From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Juan Quintela <quintela@redhat.com>
Cc: qemu-devel@nongnu.org, lvivier@redhat.com, peterx@redhat.com
Subject: Re: [Qemu-devel] [PATCH v14 03/12] migration: Add multifd traces for start/end thread
Date: Wed, 20 Jun 2018 10:51:33 +0100 [thread overview]
Message-ID: <20180620095132.GE2549@work-vm> (raw)
In-Reply-To: <20180620081524.5751-4-quintela@redhat.com>
* Juan Quintela (quintela@redhat.com) wrote:
> We want to know how many pages/packets each channel has sent. Add
> counters for those.
>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> Reviewed-by: Juan Quintela <quintela@redhat.com>
You mean
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> --
> sort trace-events (dave)
> ---
> migration/ram.c | 22 ++++++++++++++++++++++
> migration/trace-events | 4 ++++
> 2 files changed, 26 insertions(+)
>
> diff --git a/migration/ram.c b/migration/ram.c
> index 6504b492da..d146689d3a 100644
> --- a/migration/ram.c
> +++ b/migration/ram.c
> @@ -570,6 +570,11 @@ typedef struct {
> uint32_t flags;
> /* global number of generated multifd packets */
> uint64_t packet_num;
> + /* thread local variables */
> + /* packets sent through this channel */
> + uint32_t num_packets;
> + /* pages sent through this channel */
> + uint32_t num_pages;
> } MultiFDSendParams;
>
> typedef struct {
> @@ -600,6 +605,11 @@ typedef struct {
> uint32_t flags;
> /* global number of generated multifd packets */
> uint64_t packet_num;
> + /* thread local variables */
> + /* packets sent through this channel */
> + uint32_t num_packets;
> + /* pages sent through this channel */
> + uint32_t num_pages;
> } MultiFDRecvParams;
>
> static int multifd_send_initial_packet(MultiFDSendParams *p, Error **errp)
> @@ -856,9 +866,13 @@ static void *multifd_send_thread(void *opaque)
> MultiFDSendParams *p = opaque;
> Error *local_err = NULL;
>
> + trace_multifd_send_thread_start(p->id);
> +
> if (multifd_send_initial_packet(p, &local_err) < 0) {
> goto out;
> }
> + /* initial packet */
> + p->num_packets = 1;
>
> while (true) {
> qemu_mutex_lock(&p->mutex);
> @@ -880,6 +894,8 @@ out:
> p->running = false;
> qemu_mutex_unlock(&p->mutex);
>
> + trace_multifd_send_thread_end(p->id, p->num_packets, p->num_pages);
> +
> return NULL;
> }
>
> @@ -1007,6 +1023,8 @@ static void *multifd_recv_thread(void *opaque)
> Error *local_err = NULL;
> int ret;
>
> + trace_multifd_recv_thread_start(p->id);
> +
> while (true) {
> qemu_mutex_lock(&p->mutex);
> if (false) {
> @@ -1029,6 +1047,8 @@ static void *multifd_recv_thread(void *opaque)
> p->running = false;
> qemu_mutex_unlock(&p->mutex);
>
> + trace_multifd_recv_thread_end(p->id, p->num_packets, p->num_pages);
> +
> return NULL;
> }
>
> @@ -1094,6 +1114,8 @@ void multifd_recv_new_channel(QIOChannel *ioc)
> }
> p->c = ioc;
> object_ref(OBJECT(ioc));
> + /* initial packet */
> + p->num_packets = 1;
>
> p->running = true;
> qemu_thread_create(&p->thread, p->name, multifd_recv_thread, p,
> diff --git a/migration/trace-events b/migration/trace-events
> index 3f67758893..6d499448b3 100644
> --- a/migration/trace-events
> +++ b/migration/trace-events
> @@ -76,6 +76,10 @@ get_queued_page_not_dirty(const char *block_name, uint64_t tmp_offset, unsigned
> migration_bitmap_sync_start(void) ""
> migration_bitmap_sync_end(uint64_t dirty_pages) "dirty_pages %" PRIu64
> migration_throttle(void) ""
> +multifd_recv_thread_end(uint8_t id, uint32_t packets, uint32_t pages) "channel %d packets %d pages %d"
> +multifd_recv_thread_start(uint8_t id) "%d"
> +multifd_send_thread_end(uint8_t id, uint32_t packets, uint32_t pages) "channel %d packets %d pages %d"
> +multifd_send_thread_start(uint8_t id) "%d"
> 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(uint64_t addr, int flags) "@%" PRIx64 " %x"
> --
> 2.17.1
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
next prev parent reply other threads:[~2018-06-20 9:51 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-20 8:15 [Qemu-devel] [PATCH v14 00/12] Multifd Juan Quintela
2018-06-20 8:15 ` [Qemu-devel] [PATCH v14 01/12] migration: Create multipage support Juan Quintela
2018-06-20 8:15 ` [Qemu-devel] [PATCH v14 02/12] migration: Create multifd packet Juan Quintela
2018-06-20 9:40 ` Dr. David Alan Gilbert
2018-06-20 9:43 ` Juan Quintela
2018-06-20 8:15 ` [Qemu-devel] [PATCH v14 03/12] migration: Add multifd traces for start/end thread Juan Quintela
2018-06-20 9:51 ` Dr. David Alan Gilbert [this message]
2018-06-20 8:15 ` [Qemu-devel] [PATCH v14 04/12] migration: Calculate transferred ram correctly Juan Quintela
2018-06-20 9:58 ` Dr. David Alan Gilbert
2018-06-20 8:15 ` [Qemu-devel] [PATCH v14 05/12] migration: Multifd channels always wait on the sem Juan Quintela
2018-06-20 8:15 ` [Qemu-devel] [PATCH v14 06/12] migration: Add block where to send/receive packets Juan Quintela
2018-06-20 8:15 ` [Qemu-devel] [PATCH v14 07/12] migration: Synchronize multifd threads with main thread Juan Quintela
2018-06-20 10:30 ` Dr. David Alan Gilbert
2018-06-20 8:15 ` [Qemu-devel] [PATCH v14 08/12] migration: Create ram_save_multifd_page Juan Quintela
2018-06-20 8:15 ` [Qemu-devel] [PATCH v14 09/12] migration: Start sending messages Juan Quintela
2018-06-20 8:15 ` [Qemu-devel] [PATCH v14 10/12] migration: Wait for blocking IO Juan Quintela
2018-06-20 8:15 ` [Qemu-devel] [PATCH v14 11/12] migration: Remove not needed semaphore and quit Juan Quintela
2018-06-20 8:15 ` [Qemu-devel] [PATCH v14 12/12] migration: Stop sending whole pages through main channel Juan Quintela
2018-06-20 10:44 ` [Qemu-devel] [PATCH v14 00/12] Multifd no-reply
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=20180620095132.GE2549@work-vm \
--to=dgilbert@redhat.com \
--cc=lvivier@redhat.com \
--cc=peterx@redhat.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.