From nobody Thu Nov 6 22:49:41 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1544718592372573.0299999413918; Thu, 13 Dec 2018 08:29:52 -0800 (PST) Received: from localhost ([::1]:53574 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gXTrz-0000EA-5K for importer@patchew.org; Thu, 13 Dec 2018 11:29:51 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42145) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gXTps-0006mP-Ua for qemu-devel@nongnu.org; Thu, 13 Dec 2018 11:27:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gXTpr-0002g9-9a for qemu-devel@nongnu.org; Thu, 13 Dec 2018 11:27:40 -0500 Received: from mx1.redhat.com ([209.132.183.28]:40644) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gXTpn-0002bd-Em; Thu, 13 Dec 2018 11:27:35 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8695B86679; Thu, 13 Dec 2018 16:27:34 +0000 (UTC) Received: from thinkpad.redhat.com (ovpn-204-190.brq.redhat.com [10.40.204.190]) by smtp.corp.redhat.com (Postfix) with ESMTP id D01F91974F; Thu, 13 Dec 2018 16:27:31 +0000 (UTC) From: Laurent Vivier To: qemu-devel@nongnu.org Date: Thu, 13 Dec 2018 17:27:24 +0100 Message-Id: <20181213162727.17438-2-lvivier@redhat.com> In-Reply-To: <20181213162727.17438-1-lvivier@redhat.com> References: <20181213162727.17438-1-lvivier@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Thu, 13 Dec 2018 16:27:34 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v2 1/4] block/ssh: Convert from DPRINTF() macro to trace events X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Laurent Vivier , qemu-block@nongnu.org, "Richard W.M. Jones" , qemu-trivial@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Max Reitz , Liu Yuan Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Signed-off-by: Laurent Vivier Reviewed-by: Richard W.M. Jones Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- Notes: v2: use %zu with size_t change an uint64_t to int64_t to match % PRIi64 block/ssh.c | 46 +++++++++++++++++----------------------------- block/trace-events | 17 +++++++++++++++++ 2 files changed, 34 insertions(+), 29 deletions(-) diff --git a/block/ssh.c b/block/ssh.c index 7fbc27abdf..bbc513e095 100644 --- a/block/ssh.c +++ b/block/ssh.c @@ -41,27 +41,17 @@ #include "qapi/qmp/qstring.h" #include "qapi/qobject-input-visitor.h" #include "qapi/qobject-output-visitor.h" +#include "trace.h" =20 -/* DEBUG_SSH=3D1 enables the DPRINTF (debugging printf) statements in - * this block driver code. - * +/* * TRACE_LIBSSH2=3D enables tracing in libssh2 itself. Note * that this requires that libssh2 was specially compiled with the * `./configure --enable-debug' option, so most likely you will have * to compile it yourself. The meaning of is described * here: http://www.libssh2.org/libssh2_trace.html */ -#define DEBUG_SSH 0 #define TRACE_LIBSSH2 0 /* or try: LIBSSH2_TRACE_SFTP */ =20 -#define DPRINTF(fmt, ...) \ - do { \ - if (DEBUG_SSH) { \ - fprintf(stderr, "ssh: %-15s " fmt "\n", \ - __func__, ##__VA_ARGS__); \ - } \ - } while (0) - typedef struct BDRVSSHState { /* Coroutine. */ CoMutex lock; @@ -336,7 +326,7 @@ static int check_host_key_knownhosts(BDRVSSHState *s, switch (r) { case LIBSSH2_KNOWNHOST_CHECK_MATCH: /* OK */ - DPRINTF("host key OK: %s", found->key); + trace_ssh_check_host_key_knownhosts(found->key); break; case LIBSSH2_KNOWNHOST_CHECK_MISMATCH: ret =3D -EINVAL; @@ -721,8 +711,7 @@ static int connect_to_ssh(BDRVSSHState *s, BlockdevOpti= onsSsh *opts, } =20 /* Open the remote file. */ - DPRINTF("opening file %s flags=3D0x%x creat_mode=3D0%o", - opts->path, ssh_flags, creat_mode); + trace_ssh_connect_to_ssh(opts->path, ssh_flags, creat_mode); s->sftp_handle =3D libssh2_sftp_open(s->sftp, opts->path, ssh_flags, creat_mode); if (!s->sftp_handle) { @@ -890,7 +879,7 @@ static int coroutine_fn ssh_co_create_opts(const char *= filename, QemuOpts *opts, /* Get desired file size. */ ssh_opts->size =3D ROUND_UP(qemu_opt_get_size_del(opts, BLOCK_OPT_SIZE= , 0), BDRV_SECTOR_SIZE); - DPRINTF("total_size=3D%" PRIi64, ssh_opts->size); + trace_ssh_co_create_opts(ssh_opts->size); =20 uri_options =3D qdict_new(); ret =3D parse_uri(filename, uri_options, errp); @@ -946,7 +935,7 @@ static void restart_coroutine(void *opaque) BDRVSSHState *s =3D bs->opaque; AioContext *ctx =3D bdrv_get_aio_context(bs); =20 - DPRINTF("co=3D%p", restart->co); + trace_ssh_restart_coroutine(restart->co); aio_set_fd_handler(ctx, s->sock, false, NULL, NULL, NULL, NULL); =20 aio_co_wake(restart->co); @@ -974,13 +963,12 @@ static coroutine_fn void co_yield(BDRVSSHState *s, Bl= ockDriverState *bs) wr_handler =3D restart_coroutine; } =20 - DPRINTF("s->sock=3D%d rd_handler=3D%p wr_handler=3D%p", s->sock, - rd_handler, wr_handler); + trace_ssh_co_yield(s->sock, rd_handler, wr_handler); =20 aio_set_fd_handler(bdrv_get_aio_context(bs), s->sock, false, rd_handler, wr_handler, NULL, &restart); qemu_coroutine_yield(); - DPRINTF("s->sock=3D%d - back", s->sock); + trace_ssh_co_yield_back(s->sock); } =20 /* SFTP has a function `libssh2_sftp_seek64' which seeks to a position @@ -1003,7 +991,7 @@ static void ssh_seek(BDRVSSHState *s, int64_t offset, = int flags) bool force =3D (flags & SSH_SEEK_FORCE) !=3D 0; =20 if (force || op_read !=3D s->offset_op_read || offset !=3D s->offset) { - DPRINTF("seeking to offset=3D%" PRIi64, offset); + trace_ssh_seek(offset); libssh2_sftp_seek64(s->sftp_handle, offset); s->offset =3D offset; s->offset_op_read =3D op_read; @@ -1019,7 +1007,7 @@ static coroutine_fn int ssh_read(BDRVSSHState *s, Blo= ckDriverState *bs, char *buf, *end_of_vec; struct iovec *i; =20 - DPRINTF("offset=3D%" PRIi64 " size=3D%zu", offset, size); + trace_ssh_read(offset, size); =20 ssh_seek(s, offset, SSH_SEEK_READ); =20 @@ -1038,9 +1026,9 @@ static coroutine_fn int ssh_read(BDRVSSHState *s, Blo= ckDriverState *bs, */ for (got =3D 0; got < size; ) { again: - DPRINTF("sftp_read buf=3D%p size=3D%zu", buf, end_of_vec - buf); + trace_ssh_read_buf(buf, end_of_vec - buf); r =3D libssh2_sftp_read(s->sftp_handle, buf, end_of_vec - buf); - DPRINTF("sftp_read returned %zd", r); + trace_ssh_read_return(r); =20 if (r =3D=3D LIBSSH2_ERROR_EAGAIN || r =3D=3D LIBSSH2_ERROR_TIMEOU= T) { co_yield(s, bs); @@ -1094,7 +1082,7 @@ static int ssh_write(BDRVSSHState *s, BlockDriverStat= e *bs, char *buf, *end_of_vec; struct iovec *i; =20 - DPRINTF("offset=3D%" PRIi64 " size=3D%zu", offset, size); + trace_ssh_write(offset, size); =20 ssh_seek(s, offset, SSH_SEEK_WRITE); =20 @@ -1108,9 +1096,9 @@ static int ssh_write(BDRVSSHState *s, BlockDriverStat= e *bs, =20 for (written =3D 0; written < size; ) { again: - DPRINTF("sftp_write buf=3D%p size=3D%zu", buf, end_of_vec - buf); + trace_ssh_write_buf(buf, end_of_vec - buf); r =3D libssh2_sftp_write(s->sftp_handle, buf, end_of_vec - buf); - DPRINTF("sftp_write returned %zd", r); + trace_ssh_write_return(r); =20 if (r =3D=3D LIBSSH2_ERROR_EAGAIN || r =3D=3D LIBSSH2_ERROR_TIMEOU= T) { co_yield(s, bs); @@ -1187,7 +1175,7 @@ static coroutine_fn int ssh_flush(BDRVSSHState *s, Bl= ockDriverState *bs) { int r; =20 - DPRINTF("fsync"); + trace_ssh_flush(); again: r =3D libssh2_sftp_fsync(s->sftp_handle); if (r =3D=3D LIBSSH2_ERROR_EAGAIN || r =3D=3D LIBSSH2_ERROR_TIMEOUT) { @@ -1238,7 +1226,7 @@ static int64_t ssh_getlength(BlockDriverState *bs) =20 /* Note we cannot make a libssh2 call here. */ length =3D (int64_t) s->attrs.filesize; - DPRINTF("length=3D%" PRIi64, length); + trace_ssh_getlength(length); =20 return length; } diff --git a/block/trace-events b/block/trace-events index 3e8c47bb24..e1dfd9713a 100644 --- a/block/trace-events +++ b/block/trace-events @@ -156,3 +156,20 @@ nvme_cmd_map_qiov_iov(void *s, int i, void *page, int = pages) "s %p iov[%d] %p pa =20 # block/iscsi.c iscsi_xcopy(void *src_lun, uint64_t src_off, void *dst_lun, uint64_t dst_o= ff, uint64_t bytes, int ret) "src_lun %p offset %"PRIu64" dst_lun %p offset= %"PRIu64" bytes %"PRIu64" ret %d" + +# block/ssh.c +ssh_restart_coroutine(void *co) "co=3D%p" +ssh_flush(void) "fsync" +ssh_check_host_key_knownhosts(const char *key) "host key OK: %s" +ssh_connect_to_ssh(char *path, int flags, int mode) "opening file %s flags= =3D0x%x creat_mode=3D0%o" +ssh_co_yield(int sock, void *rd_handler, void *wr_handler) "s->sock=3D%d r= d_handler=3D%p wr_handler=3D%p" +ssh_co_yield_back(int sock) "s->sock=3D%d - back" +ssh_getlength(int64_t length) "length=3D%" PRIi64 +ssh_co_create_opts(uint64_t size) "total_size=3D%" PRIu64 +ssh_read(int64_t offset, size_t size) "offset=3D%" PRIi64 " size=3D%zu" +ssh_read_buf(void *buf, size_t size) "sftp_read buf=3D%p size=3D%zu" +ssh_read_return(size_t ret) "sftp_read returned %zu" +ssh_write(int64_t offset, size_t size) "offset=3D%" PRIi64 " size=3D%zu" +ssh_write_buf(void *buf, size_t size) "sftp_write buf=3D%p size=3D%zu" +ssh_write_return(size_t ret) "sftp_write returned %zu" +ssh_seek(int64_t offset) "seeking to offset=3D%" PRIi64 --=20 2.19.2 From nobody Thu Nov 6 22:49:41 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1544718624575398.86817348531633; Thu, 13 Dec 2018 08:30:24 -0800 (PST) Received: from localhost ([::1]:53579 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gXTsV-0000fn-9M for importer@patchew.org; Thu, 13 Dec 2018 11:30:23 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42211) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gXTpy-0006qu-1O for qemu-devel@nongnu.org; Thu, 13 Dec 2018 11:27:47 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gXTpx-0002lL-23 for qemu-devel@nongnu.org; Thu, 13 Dec 2018 11:27:45 -0500 Received: from mx1.redhat.com ([209.132.183.28]:37182) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gXTpq-0002eb-Bk; Thu, 13 Dec 2018 11:27:38 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 6632231256C3; Thu, 13 Dec 2018 16:27:37 +0000 (UTC) Received: from thinkpad.redhat.com (ovpn-204-190.brq.redhat.com [10.40.204.190]) by smtp.corp.redhat.com (Postfix) with ESMTP id E4B541974F; Thu, 13 Dec 2018 16:27:34 +0000 (UTC) From: Laurent Vivier To: qemu-devel@nongnu.org Date: Thu, 13 Dec 2018 17:27:25 +0100 Message-Id: <20181213162727.17438-3-lvivier@redhat.com> In-Reply-To: <20181213162727.17438-1-lvivier@redhat.com> References: <20181213162727.17438-1-lvivier@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.46]); Thu, 13 Dec 2018 16:27:37 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v2 2/4] block/curl: Convert from DPRINTF() macro to trace events X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Laurent Vivier , qemu-block@nongnu.org, "Richard W.M. Jones" , qemu-trivial@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Max Reitz , Liu Yuan Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Signed-off-by: Laurent Vivier Reviewed-by: Richard W.M. Jones Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- Notes: v2: use %zu with size_t block/curl.c | 29 ++++++++--------------------- block/trace-events | 9 +++++++++ 2 files changed, 17 insertions(+), 21 deletions(-) diff --git a/block/curl.c b/block/curl.c index db5d2bd8ef..b7ac265d3a 100644 --- a/block/curl.c +++ b/block/curl.c @@ -32,22 +32,10 @@ #include "crypto/secret.h" #include #include "qemu/cutils.h" +#include "trace.h" =20 -// #define DEBUG_CURL // #define DEBUG_VERBOSE =20 -#ifdef DEBUG_CURL -#define DEBUG_CURL_PRINT 1 -#else -#define DEBUG_CURL_PRINT 0 -#endif -#define DPRINTF(fmt, ...) \ - do { \ - if (DEBUG_CURL_PRINT) { \ - fprintf(stderr, fmt, ## __VA_ARGS__); \ - } \ - } while (0) - #if LIBCURL_VERSION_NUM >=3D 0x071000 /* The multi interface timer callback was introduced in 7.16.0 */ #define NEED_CURL_TIMER_CALLBACK @@ -154,7 +142,7 @@ static int curl_timer_cb(CURLM *multi, long timeout_ms,= void *opaque) { BDRVCURLState *s =3D opaque; =20 - DPRINTF("CURL: timer callback timeout_ms %ld\n", timeout_ms); + trace_curl_timer_cb(timeout_ms); if (timeout_ms =3D=3D -1) { timer_del(&s->timer); } else { @@ -193,7 +181,7 @@ static int curl_sock_cb(CURL *curl, curl_socket_t fd, i= nt action, } socket =3D NULL; =20 - DPRINTF("CURL (AIO): Sock action %d on fd %d\n", action, (int)fd); + trace_curl_sock_cb(action, (int)fd); switch (action) { case CURL_POLL_IN: aio_set_fd_handler(s->aio_context, fd, false, @@ -238,7 +226,7 @@ static size_t curl_read_cb(void *ptr, size_t size, size= _t nmemb, void *opaque) size_t realsize =3D size * nmemb; int i; =20 - DPRINTF("CURL: Just reading %zd bytes\n", realsize); + trace_curl_read_cb(realsize); =20 if (!s || !s->orig_buf) { goto read_end; @@ -777,7 +765,7 @@ static int curl_open(BlockDriverState *bs, QDict *optio= ns, int flags, } } =20 - DPRINTF("CURL: Opening %s\n", file); + trace_curl_open(file); qemu_co_queue_init(&s->free_state_waitq); s->aio_context =3D bdrv_get_aio_context(bs); s->url =3D g_strdup(file); @@ -830,7 +818,7 @@ static int curl_open(BlockDriverState *bs, QDict *optio= ns, int flags, "Server does not support 'range' (byte ranges)."); goto out; } - DPRINTF("CURL: Size =3D %" PRIu64 "\n", s->len); + trace_curl_open_size(s->len); =20 qemu_mutex_lock(&s->mutex); curl_clean_state(state); @@ -908,8 +896,7 @@ static void curl_setup_preadv(BlockDriverState *bs, CUR= LAIOCB *acb) state->acb[0] =3D acb; =20 snprintf(state->range, 127, "%" PRIu64 "-%" PRIu64, start, end); - DPRINTF("CURL (AIO): Reading %" PRIu64 " at %" PRIu64 " (%s)\n", - acb->bytes, start, state->range); + trace_curl_setup_preadv(acb->bytes, start, state->range); curl_easy_setopt(state->curl, CURLOPT_RANGE, state->range); =20 curl_multi_add_handle(s->multi, state->curl); @@ -943,7 +930,7 @@ static void curl_close(BlockDriverState *bs) { BDRVCURLState *s =3D bs->opaque; =20 - DPRINTF("CURL: Close\n"); + trace_curl_close(); curl_detach_aio_context(bs); qemu_mutex_destroy(&s->mutex); =20 diff --git a/block/trace-events b/block/trace-events index e1dfd9713a..128ac2dd93 100644 --- a/block/trace-events +++ b/block/trace-events @@ -173,3 +173,12 @@ ssh_write(int64_t offset, size_t size) "offset=3D%" PR= Ii64 " size=3D%zu" ssh_write_buf(void *buf, size_t size) "sftp_write buf=3D%p size=3D%zu" ssh_write_return(size_t ret) "sftp_write returned %zu" ssh_seek(int64_t offset) "seeking to offset=3D%" PRIi64 + +# block/curl.c +curl_timer_cb(long timeout_ms) "timer callback timeout_ms %ld" +curl_sock_cb(int action, int fd) "sock action %d on fd %d" +curl_read_cb(size_t realsize) "just reading %zu bytes" +curl_open(const char *file) "opening %s" +curl_open_size(uint64_t size) "size =3D %" PRIu64 +curl_setup_preadv(uint64_t bytes, uint64_t start, const char *range) "read= ing %" PRIu64 " at %" PRIu64 " (%s)" +curl_close(void) "close" --=20 2.19.2 From nobody Thu Nov 6 22:49:41 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1544718800281111.89004960860075; Thu, 13 Dec 2018 08:33:20 -0800 (PST) Received: from localhost ([::1]:53599 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gXTvK-00034s-Da for importer@patchew.org; Thu, 13 Dec 2018 11:33:18 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42228) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gXTpy-0006rt-VG for qemu-devel@nongnu.org; Thu, 13 Dec 2018 11:27:47 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gXTpy-0002mC-01 for qemu-devel@nongnu.org; Thu, 13 Dec 2018 11:27:46 -0500 Received: from mx1.redhat.com ([209.132.183.28]:60078) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gXTpt-0002hM-88; Thu, 13 Dec 2018 11:27:41 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 43BAA30832CF; Thu, 13 Dec 2018 16:27:40 +0000 (UTC) Received: from thinkpad.redhat.com (ovpn-204-190.brq.redhat.com [10.40.204.190]) by smtp.corp.redhat.com (Postfix) with ESMTP id C7AA926192; Thu, 13 Dec 2018 16:27:37 +0000 (UTC) From: Laurent Vivier To: qemu-devel@nongnu.org Date: Thu, 13 Dec 2018 17:27:26 +0100 Message-Id: <20181213162727.17438-4-lvivier@redhat.com> In-Reply-To: <20181213162727.17438-1-lvivier@redhat.com> References: <20181213162727.17438-1-lvivier@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.44]); Thu, 13 Dec 2018 16:27:40 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v2 3/4] block/file-posix: Convert from DPRINTF() macro to trace events X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Laurent Vivier , qemu-block@nongnu.org, "Richard W.M. Jones" , qemu-trivial@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Max Reitz , Liu Yuan Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Signed-off-by: Laurent Vivier Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- block/file-posix.c | 25 ++++++------------------- block/trace-events | 7 +++++++ 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/block/file-posix.c b/block/file-posix.c index 07bbdab953..cf90899a6e 100644 --- a/block/file-posix.c +++ b/block/file-posix.c @@ -102,19 +102,7 @@ #include #endif =20 -//#define DEBUG_BLOCK - -#ifdef DEBUG_BLOCK -# define DEBUG_BLOCK_PRINT 1 -#else -# define DEBUG_BLOCK_PRINT 0 -#endif -#define DPRINTF(fmt, ...) \ -do { \ - if (DEBUG_BLOCK_PRINT) { \ - printf(fmt, ## __VA_ARGS__); \ - } \ -} while (0) +#include "trace.h" =20 /* OS X does not have O_DSYNC */ #ifndef O_DSYNC @@ -1386,7 +1374,7 @@ static int xfs_write_zeroes(BDRVRawState *s, int64_t = offset, uint64_t bytes) =20 if (xfsctl(NULL, s->fd, XFS_IOC_ZERO_RANGE, &fl) < 0) { err =3D errno; - DPRINTF("cannot write zero range (%s)\n", strerror(errno)); + trace_file_xfs_write_zeroes(strerror(errno)); return -err; } =20 @@ -1405,7 +1393,7 @@ static int xfs_discard(BDRVRawState *s, int64_t offse= t, uint64_t bytes) =20 if (xfsctl(NULL, s->fd, XFS_IOC_UNRESVSP64, &fl) < 0) { err =3D errno; - DPRINTF("cannot punch hole (%s)\n", strerror(errno)); + trace_file_xfs_discard(strerror(errno)); return -err; } =20 @@ -2798,7 +2786,7 @@ static char *FindEjectableOpticalMedia(io_iterator_t = *mediaIterator) =20 /* If a match was found, leave the loop */ if (*mediaIterator !=3D 0) { - DPRINTF("Matching using %s\n", matching_array[index]); + trace_file_FindEjectableOpticalMedia(matching_array[index]); mediaType =3D g_strdup(matching_array[index]); break; } @@ -2858,7 +2846,7 @@ static bool setup_cdrom(char *bsd_path, Error **errp) if (partition_found =3D=3D false) { error_setg(errp, "Failed to find a working partition on disc"); } else { - DPRINTF("Using %s as optical disc\n", test_partition); + trace_file_setup_cdrom(test_partition); pstrcpy(bsd_path, MAXPATHLEN, test_partition); } return partition_found; @@ -2953,8 +2941,7 @@ static bool hdev_is_sg(BlockDriverState *bs) =20 ret =3D ioctl(s->fd, SG_GET_SCSI_ID, &scsiid); if (ret >=3D 0) { - DPRINTF("SG device found: type=3D%d, version=3D%d\n", - scsiid.scsi_type, sg_version); + trace_file_hdev_is_sg(scsiid.scsi_type, sg_version); return true; } =20 diff --git a/block/trace-events b/block/trace-events index 128ac2dd93..06dbe65080 100644 --- a/block/trace-events +++ b/block/trace-events @@ -182,3 +182,10 @@ curl_open(const char *file) "opening %s" curl_open_size(uint64_t size) "size =3D %" PRIu64 curl_setup_preadv(uint64_t bytes, uint64_t start, const char *range) "read= ing %" PRIu64 " at %" PRIu64 " (%s)" curl_close(void) "close" + +# block/file-posix.c +file_xfs_write_zeroes(const char *error) "cannot write zero range (%s)" +file_xfs_discard(const char* error) "cannot punch hole (%s)" +file_FindEjectableOpticalMedia(const char *media) "Matching using %s" +file_setup_cdrom(const char *partition) "Using %s as optical disc" +file_hdev_is_sg(int type, int version) "SG device found: type=3D%d, versio= n=3D%d" --=20 2.19.2 From nobody Thu Nov 6 22:49:41 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1544718594613392.8116500797021; Thu, 13 Dec 2018 08:29:54 -0800 (PST) Received: from localhost ([::1]:53575 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gXTs1-0000Fv-Bu for importer@patchew.org; Thu, 13 Dec 2018 11:29:53 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42253) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gXTq0-0006tT-9v for qemu-devel@nongnu.org; Thu, 13 Dec 2018 11:27:49 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gXTpz-0002nJ-2E for qemu-devel@nongnu.org; Thu, 13 Dec 2018 11:27:48 -0500 Received: from mx1.redhat.com ([209.132.183.28]:60102) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gXTpw-0002jn-2V; Thu, 13 Dec 2018 11:27:44 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 29FF4307EAAB; Thu, 13 Dec 2018 16:27:43 +0000 (UTC) Received: from thinkpad.redhat.com (ovpn-204-190.brq.redhat.com [10.40.204.190]) by smtp.corp.redhat.com (Postfix) with ESMTP id A240426160; Thu, 13 Dec 2018 16:27:40 +0000 (UTC) From: Laurent Vivier To: qemu-devel@nongnu.org Date: Thu, 13 Dec 2018 17:27:27 +0100 Message-Id: <20181213162727.17438-5-lvivier@redhat.com> In-Reply-To: <20181213162727.17438-1-lvivier@redhat.com> References: <20181213162727.17438-1-lvivier@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.44]); Thu, 13 Dec 2018 16:27:43 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v2 4/4] block/sheepdog: Convert from DPRINTF() macro to trace events X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Laurent Vivier , qemu-block@nongnu.org, "Richard W.M. Jones" , qemu-trivial@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Max Reitz , Liu Yuan Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Signed-off-by: Laurent Vivier Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- Notes: v2: replace "sd_" prefix by "sheepdog_" remove the dot at the end of the text strings block/sheepdog.c | 47 +++++++++++++++++----------------------------- block/trace-events | 14 ++++++++++++++ 2 files changed, 31 insertions(+), 30 deletions(-) diff --git a/block/sheepdog.c b/block/sheepdog.c index 0125df9d49..8b95cde01a 100644 --- a/block/sheepdog.c +++ b/block/sheepdog.c @@ -28,6 +28,7 @@ #include "sysemu/block-backend.h" #include "qemu/bitops.h" #include "qemu/cutils.h" +#include "trace.h" =20 #define SD_PROTO_VER 0x01 =20 @@ -299,19 +300,6 @@ static inline size_t count_data_objs(const struct Shee= pdogInode *inode) (1UL << inode->block_size_shift)); } =20 -#undef DPRINTF -#ifdef DEBUG_SDOG -#define DEBUG_SDOG_PRINT 1 -#else -#define DEBUG_SDOG_PRINT 0 -#endif -#define DPRINTF(fmt, args...) \ - do { \ - if (DEBUG_SDOG_PRINT) { \ - fprintf(stderr, "%s %d: " fmt, __func__, __LINE__, ##args); \ - } \ - } while (0) - typedef struct SheepdogAIOCB SheepdogAIOCB; typedef struct BDRVSheepdogState BDRVSheepdogState; =20 @@ -750,7 +738,7 @@ static coroutine_fn void reconnect_to_sdog(void *opaque) Error *local_err =3D NULL; s->fd =3D get_sheep_fd(s, &local_err); if (s->fd < 0) { - DPRINTF("Wait for connection to be established\n"); + trace_sheepdog_reconnect_to_sdog(); error_report_err(local_err); qemu_co_sleep_ns(QEMU_CLOCK_REALTIME, 1000000000ULL); } @@ -847,7 +835,7 @@ static void coroutine_fn aio_read_response(void *opaque) break; case AIOCB_FLUSH_CACHE: if (rsp.result =3D=3D SD_RES_INVALID_PARMS) { - DPRINTF("disable cache since the server doesn't support it\n"); + trace_sheepdog_aio_read_response(); s->cache_flags =3D SD_FLAG_CMD_DIRECT; rsp.result =3D SD_RES_SUCCESS; } @@ -1639,7 +1627,7 @@ static int sd_open(BlockDriverState *bs, QDict *optio= ns, int flags, s->discard_supported =3D true; =20 if (snap_id || tag[0]) { - DPRINTF("%" PRIx32 " snapshot inode was open.\n", vid); + trace_sheepdog_open(vid); s->is_snapshot =3D true; } =20 @@ -2252,7 +2240,7 @@ static void sd_close(BlockDriverState *bs) unsigned int wlen, rlen =3D 0; int fd, ret; =20 - DPRINTF("%s\n", s->name); + trace_sheepdog_close(s->name); =20 fd =3D connect_to_sdog(s, &local_err); if (fd < 0) { @@ -2429,7 +2417,7 @@ static int sd_create_branch(BDRVSheepdogState *s) char *buf; bool deleted; =20 - DPRINTF("%" PRIx32 " is snapshot.\n", s->inode.vdi_id); + trace_sheepdog_create_branch_snapshot(s->inode.vdi_id); =20 buf =3D g_malloc(SD_INODE_SIZE); =20 @@ -2445,7 +2433,7 @@ static int sd_create_branch(BDRVSheepdogState *s) goto out; } =20 - DPRINTF("%" PRIx32 " is created.\n", vid); + trace_sheepdog_create_branch_created(vid); =20 fd =3D connect_to_sdog(s, &local_err); if (fd < 0) { @@ -2467,7 +2455,7 @@ static int sd_create_branch(BDRVSheepdogState *s) =20 s->is_snapshot =3D false; ret =3D 0; - DPRINTF("%" PRIx32 " was newly created.\n", s->inode.vdi_id); + trace_sheepdog_create_branch_new(s->inode.vdi_id); =20 out: g_free(buf); @@ -2561,11 +2549,11 @@ static void coroutine_fn sd_co_rw_vector(SheepdogAI= OCB *acb) } =20 if (create) { - DPRINTF("update ino (%" PRIu32 ") %" PRIu64 " %" PRIu64 " %ld\= n", - inode->vdi_id, oid, - vid_to_data_oid(inode->data_vdi_id[idx], idx), idx); + trace_sheepdog_co_rw_vector_update(inode->vdi_id, oid, + vid_to_data_oid(inode->data_vdi_id[idx],= idx), + idx); oid =3D vid_to_data_oid(inode->vdi_id, idx); - DPRINTF("new oid %" PRIx64 "\n", oid); + trace_sheepdog_co_rw_vector_new(oid); } =20 aio_req =3D alloc_aio_req(s, acb, oid, len, offset, flags, create, @@ -2670,9 +2658,8 @@ static int sd_snapshot_create(BlockDriverState *bs, Q= EMUSnapshotInfo *sn_info) SheepdogInode *inode; unsigned int datalen; =20 - DPRINTF("sn_info: name %s id_str %s s: name %s vm_state_size %" PRId64= " " - "is_snapshot %d\n", sn_info->name, sn_info->id_str, - s->name, sn_info->vm_state_size, s->is_snapshot); + trace_sheepdog_snapshot_create_info(sn_info->name, sn_info->id_str, s-= >name, + sn_info->vm_state_size, s->is_snap= shot); =20 if (s->is_snapshot) { error_report("You can't create a snapshot of a snapshot VDI, " @@ -2681,7 +2668,7 @@ static int sd_snapshot_create(BlockDriverState *bs, Q= EMUSnapshotInfo *sn_info) return -EINVAL; } =20 - DPRINTF("%s %s\n", sn_info->name, sn_info->id_str); + trace_sheepdog_snapshot_create(sn_info->name, sn_info->id_str); =20 s->inode.vm_state_size =3D sn_info->vm_state_size; s->inode.vm_clock_nsec =3D sn_info->vm_clock_nsec; @@ -2726,8 +2713,8 @@ static int sd_snapshot_create(BlockDriverState *bs, Q= EMUSnapshotInfo *sn_info) } =20 memcpy(&s->inode, inode, datalen); - DPRINTF("s->inode: name %s snap_id %x oid %x\n", - s->inode.name, s->inode.snap_id, s->inode.vdi_id); + trace_sheepdog_snapshot_create_inode(s->inode.name, s->inode.snap_id, + s->inode.vdi_id); =20 cleanup: g_free(inode); diff --git a/block/trace-events b/block/trace-events index 06dbe65080..358c0e3c11 100644 --- a/block/trace-events +++ b/block/trace-events @@ -189,3 +189,17 @@ file_xfs_discard(const char* error) "cannot punch hole= (%s)" file_FindEjectableOpticalMedia(const char *media) "Matching using %s" file_setup_cdrom(const char *partition) "Using %s as optical disc" file_hdev_is_sg(int type, int version) "SG device found: type=3D%d, versio= n=3D%d" + +# block/sheepdog.c +sheepdog_reconnect_to_sdog(void) "Wait for connection to be established" +sheepdog_aio_read_response(void) "disable cache since the server doesn't s= upport it" +sheepdog_open(uint32_t vid) "0x%" PRIx32 " snapshot inode was open" +sheepdog_close(const char *name) "%s" +sheepdog_create_branch_snapshot(uint32_t vdi) "0x%" PRIx32 " is snapshot" +sheepdog_create_branch_created(uint32_t vdi) "0x%" PRIx32 " is created" +sheepdog_create_branch_new(uint32_t vdi) "0x%" PRIx32 " was newly created" +sheepdog_co_rw_vector_update(uint32_t vdi, uint64_t oid, uint64_t data, lo= ng idx) "update ino (%" PRIu32 ") %" PRIu64 " %" PRIu64 " %ld" +sheepdog_co_rw_vector_new(uint64_t oid) "new oid 0x%" PRIx64 +sheepdog_snapshot_create_info(const char *sn_name, const char *id, const c= har *name, int64_t size, int is_snapshot) "sn_info: name %s id_str %s s: na= me %s vm_state_size %" PRId64 " " "is_snapshot %d" +sheepdog_snapshot_create(const char *sn_name, const char *id) "%s %s" +sheepdog_snapshot_create_inode(const char *name, uint32_t snap, uint32_t v= di) "s->inode: name %s snap_id 0x%x vdi 0x%x" --=20 2.19.2