Message ID | 1599663177-53993-8-git-send-email-zhengchuan@huawei.com |
---|---|
State | New |
Headers | show |
Series | *** Add Multifd support for TLS migration *** | expand |
On Wed, Sep 09, 2020 at 10:52:57PM +0800, Chuan Zheng wrote: > add trace points for multifd-tls for debug. > > Signed-off-by: Chuan Zheng <zhengchuan@huawei.com> > Signed-off-by: Yan Jin <jinyan12@huawei.com> > --- > migration/multifd.c | 10 +++++++++- > migration/trace-events | 5 +++++ > 2 files changed, 14 insertions(+), 1 deletion(-) > > diff --git a/migration/multifd.c b/migration/multifd.c > index 2509187..26935b6 100644 > --- a/migration/multifd.c > +++ b/migration/multifd.c > @@ -730,7 +730,11 @@ static void multifd_tls_outgoing_handshake(QIOTask *task, > QIOChannel *ioc = QIO_CHANNEL(qio_task_get_source(task)); > Error *err = NULL; > > - qio_task_propagate_error(task, &err); > + if (qio_task_propagate_error(task, &err)) { > + trace_multifd_tls_outgoing_handshake_error(error_get_pretty(err)); > + } else { > + trace_multifd_tls_outgoing_handshake_complete(); > + } > multifd_channel_connect(p, ioc, err); > } > > @@ -747,6 +751,7 @@ static void multifd_tls_channel_connect(MultiFDSendParams *p, > return; > } > > + trace_multifd_tls_outgoing_handshake_start(hostname); > qio_channel_set_name(QIO_CHANNEL(tioc), "multifd-tls-outgoing"); > qio_channel_tls_handshake(tioc, > multifd_tls_outgoing_handshake, > @@ -762,6 +767,9 @@ static bool multifd_channel_connect(MultiFDSendParams *p, > { > MigrationState *s = p->s; > > + trace_multifd_set_outgoing_channel( > + ioc, object_get_typename(OBJECT(ioc)), s->hostname, error); > + > if (!error) { > if (s->parameters.tls_creds && > *s->parameters.tls_creds && > diff --git a/migration/trace-events b/migration/trace-events > index 4ab0a50..860d2c4 100644 > --- a/migration/trace-events > +++ b/migration/trace-events > @@ -109,6 +109,11 @@ multifd_send_sync_main_wait(uint8_t id) "channel %d" > multifd_send_terminate_threads(bool error) "error %d" > multifd_send_thread_end(uint8_t id, uint64_t packets, uint64_t pages) "channel %d packets %" PRIu64 " pages %" PRIu64 > multifd_send_thread_start(uint8_t id) "%d" > +multifd_tls_outgoing_handshake_start(const char *hostname) "hostname=%s" > +multifd_tls_outgoing_handshake_error(const char *err) "err=%s" > +multifd_tls_outgoing_handshake_complete(void) "" I'd suggest adding 'void *ioc' for all of these to make it clearer to correlate the traces. > +multifd_set_outgoing_channel(void *ioc, const char *ioctype, const char *hostname, void *err) "ioc=%p ioctype=%s hostname=%s err=%p" > + > 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" > -- > 1.8.3.1 > Regards, Daniel
On 2020/9/10 21:37, Daniel P. Berrangé wrote: > On Wed, Sep 09, 2020 at 10:52:57PM +0800, Chuan Zheng wrote: >> add trace points for multifd-tls for debug. >> >> Signed-off-by: Chuan Zheng <zhengchuan@huawei.com> >> Signed-off-by: Yan Jin <jinyan12@huawei.com> >> --- >> migration/multifd.c | 10 +++++++++- >> migration/trace-events | 5 +++++ >> 2 files changed, 14 insertions(+), 1 deletion(-) >> >> diff --git a/migration/multifd.c b/migration/multifd.c >> index 2509187..26935b6 100644 >> --- a/migration/multifd.c >> +++ b/migration/multifd.c >> @@ -730,7 +730,11 @@ static void multifd_tls_outgoing_handshake(QIOTask *task, >> QIOChannel *ioc = QIO_CHANNEL(qio_task_get_source(task)); >> Error *err = NULL; >> >> - qio_task_propagate_error(task, &err); >> + if (qio_task_propagate_error(task, &err)) { >> + trace_multifd_tls_outgoing_handshake_error(error_get_pretty(err)); >> + } else { >> + trace_multifd_tls_outgoing_handshake_complete(); >> + } >> multifd_channel_connect(p, ioc, err); >> } >> >> @@ -747,6 +751,7 @@ static void multifd_tls_channel_connect(MultiFDSendParams *p, >> return; >> } >> >> + trace_multifd_tls_outgoing_handshake_start(hostname); >> qio_channel_set_name(QIO_CHANNEL(tioc), "multifd-tls-outgoing"); >> qio_channel_tls_handshake(tioc, >> multifd_tls_outgoing_handshake, >> @@ -762,6 +767,9 @@ static bool multifd_channel_connect(MultiFDSendParams *p, >> { >> MigrationState *s = p->s; >> >> + trace_multifd_set_outgoing_channel( >> + ioc, object_get_typename(OBJECT(ioc)), s->hostname, error); >> + >> if (!error) { >> if (s->parameters.tls_creds && >> *s->parameters.tls_creds && >> diff --git a/migration/trace-events b/migration/trace-events >> index 4ab0a50..860d2c4 100644 >> --- a/migration/trace-events >> +++ b/migration/trace-events >> @@ -109,6 +109,11 @@ multifd_send_sync_main_wait(uint8_t id) "channel %d" >> multifd_send_terminate_threads(bool error) "error %d" >> multifd_send_thread_end(uint8_t id, uint64_t packets, uint64_t pages) "channel %d packets %" PRIu64 " pages %" PRIu64 >> multifd_send_thread_start(uint8_t id) "%d" >> +multifd_tls_outgoing_handshake_start(const char *hostname) "hostname=%s" >> +multifd_tls_outgoing_handshake_error(const char *err) "err=%s" >> +multifd_tls_outgoing_handshake_complete(void) "" > > I'd suggest adding 'void *ioc' for all of these to make it clearer to > correlate the traces. > OK, will add it in v2 >> +multifd_set_outgoing_channel(void *ioc, const char *ioctype, const char *hostname, void *err) "ioc=%p ioctype=%s hostname=%s err=%p" >> + >> 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" >> -- >> 1.8.3.1 >> > > Regards, > Daniel >
diff --git a/migration/multifd.c b/migration/multifd.c index 2509187..26935b6 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -730,7 +730,11 @@ static void multifd_tls_outgoing_handshake(QIOTask *task, QIOChannel *ioc = QIO_CHANNEL(qio_task_get_source(task)); Error *err = NULL; - qio_task_propagate_error(task, &err); + if (qio_task_propagate_error(task, &err)) { + trace_multifd_tls_outgoing_handshake_error(error_get_pretty(err)); + } else { + trace_multifd_tls_outgoing_handshake_complete(); + } multifd_channel_connect(p, ioc, err); } @@ -747,6 +751,7 @@ static void multifd_tls_channel_connect(MultiFDSendParams *p, return; } + trace_multifd_tls_outgoing_handshake_start(hostname); qio_channel_set_name(QIO_CHANNEL(tioc), "multifd-tls-outgoing"); qio_channel_tls_handshake(tioc, multifd_tls_outgoing_handshake, @@ -762,6 +767,9 @@ static bool multifd_channel_connect(MultiFDSendParams *p, { MigrationState *s = p->s; + trace_multifd_set_outgoing_channel( + ioc, object_get_typename(OBJECT(ioc)), s->hostname, error); + if (!error) { if (s->parameters.tls_creds && *s->parameters.tls_creds && diff --git a/migration/trace-events b/migration/trace-events index 4ab0a50..860d2c4 100644 --- a/migration/trace-events +++ b/migration/trace-events @@ -109,6 +109,11 @@ multifd_send_sync_main_wait(uint8_t id) "channel %d" multifd_send_terminate_threads(bool error) "error %d" multifd_send_thread_end(uint8_t id, uint64_t packets, uint64_t pages) "channel %d packets %" PRIu64 " pages %" PRIu64 multifd_send_thread_start(uint8_t id) "%d" +multifd_tls_outgoing_handshake_start(const char *hostname) "hostname=%s" +multifd_tls_outgoing_handshake_error(const char *err) "err=%s" +multifd_tls_outgoing_handshake_complete(void) "" +multifd_set_outgoing_channel(void *ioc, const char *ioctype, const char *hostname, void *err) "ioc=%p ioctype=%s hostname=%s err=%p" + 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"