From: "Richard W.M. Jones" <rjones@redhat.com>
To: Laurent Vivier <lvivier@redhat.com>
Cc: qemu-devel@nongnu.org, "Liu Yuan" <namei.unix@gmail.com>,
"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
"Kevin Wolf" <kwolf@redhat.com>, "Max Reitz" <mreitz@redhat.com>,
qemu-trivial@nongnu.org, qemu-block@nongnu.org
Subject: Re: [Qemu-trivial] [PATCH 2/4] block/curl: Convert from DPRINTF() macro to trace events
Date: Wed, 12 Dec 2018 21:20:21 +0000 [thread overview]
Message-ID: <20181212212021.GD27120@redhat.com> (raw)
In-Reply-To: <20181212194009.2951-3-lvivier@redhat.com>
On Wed, Dec 12, 2018 at 08:40:07PM +0100, Laurent Vivier wrote:
> Signed-off-by: Laurent Vivier <lvivier@redhat.com>
> ---
> 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 <curl/curl.h>
> #include "qemu/cutils.h"
> +#include "trace.h"
>
> -// #define DEBUG_CURL
> // #define DEBUG_VERBOSE
>
> -#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 >= 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 = opaque;
>
> - DPRINTF("CURL: timer callback timeout_ms %ld\n", timeout_ms);
> + trace_curl_timer_cb(timeout_ms);
> if (timeout_ms == -1) {
> timer_del(&s->timer);
> } else {
> @@ -193,7 +181,7 @@ static int curl_sock_cb(CURL *curl, curl_socket_t fd, int action,
> }
> socket = NULL;
>
> - 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 = size * nmemb;
> int i;
>
> - DPRINTF("CURL: Just reading %zd bytes\n", realsize);
> + trace_curl_read_cb(realsize);
>
> if (!s || !s->orig_buf) {
> goto read_end;
> @@ -777,7 +765,7 @@ static int curl_open(BlockDriverState *bs, QDict *options, int flags,
> }
> }
>
> - DPRINTF("CURL: Opening %s\n", file);
> + trace_curl_open(file);
> qemu_co_queue_init(&s->free_state_waitq);
> s->aio_context = bdrv_get_aio_context(bs);
> s->url = g_strdup(file);
> @@ -830,7 +818,7 @@ static int curl_open(BlockDriverState *bs, QDict *options, int flags,
> "Server does not support 'range' (byte ranges).");
> goto out;
> }
> - DPRINTF("CURL: Size = %" PRIu64 "\n", s->len);
> + trace_curl_open_size(s->len);
>
> qemu_mutex_lock(&s->mutex);
> curl_clean_state(state);
> @@ -908,8 +896,7 @@ static void curl_setup_preadv(BlockDriverState *bs, CURLAIOCB *acb)
> state->acb[0] = acb;
>
> 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);
>
> curl_multi_add_handle(s->multi, state->curl);
> @@ -943,7 +930,7 @@ static void curl_close(BlockDriverState *bs)
> {
> BDRVCURLState *s = bs->opaque;
>
> - DPRINTF("CURL: Close\n");
> + trace_curl_close();
> curl_detach_aio_context(bs);
> qemu_mutex_destroy(&s->mutex);
>
> diff --git a/block/trace-events b/block/trace-events
> index b13b1e9706..5b83280b02 100644
> --- a/block/trace-events
> +++ b/block/trace-events
> @@ -173,3 +173,12 @@ ssh_write(int64_t offset, size_t size) "offset=%" PRIi64 " size=%zu"
> ssh_write_buf(void *buf, size_t size) "sftp_write buf=%p size=%zu"
> ssh_write_return(size_t ret) "sftp_write returned %zd"
> ssh_seek(uint64_t offset) "seeking to offset=%" 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 %zd bytes"
> +curl_open(const char *file) "opening %s"
> +curl_open_size(uint64_t size) "size = %" PRIu64
> +curl_setup_preadv(uint64_t bytes, uint64_t start, const char *range) "reading %" PRIu64 " at %" PRIu64 " (%s)"
> +curl_close(void) "close"
Reviewed-by: Richard W.M. Jones <rjones@redhat.com>
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-top is 'top' for virtual machines. Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://people.redhat.com/~rjones/virt-top
WARNING: multiple messages have this Message-ID (diff)
From: "Richard W.M. Jones" <rjones@redhat.com>
To: Laurent Vivier <lvivier@redhat.com>
Cc: qemu-devel@nongnu.org, "Liu Yuan" <namei.unix@gmail.com>,
"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
"Kevin Wolf" <kwolf@redhat.com>, "Max Reitz" <mreitz@redhat.com>,
qemu-trivial@nongnu.org, qemu-block@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 2/4] block/curl: Convert from DPRINTF() macro to trace events
Date: Wed, 12 Dec 2018 21:20:21 +0000 [thread overview]
Message-ID: <20181212212021.GD27120@redhat.com> (raw)
In-Reply-To: <20181212194009.2951-3-lvivier@redhat.com>
On Wed, Dec 12, 2018 at 08:40:07PM +0100, Laurent Vivier wrote:
> Signed-off-by: Laurent Vivier <lvivier@redhat.com>
> ---
> 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 <curl/curl.h>
> #include "qemu/cutils.h"
> +#include "trace.h"
>
> -// #define DEBUG_CURL
> // #define DEBUG_VERBOSE
>
> -#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 >= 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 = opaque;
>
> - DPRINTF("CURL: timer callback timeout_ms %ld\n", timeout_ms);
> + trace_curl_timer_cb(timeout_ms);
> if (timeout_ms == -1) {
> timer_del(&s->timer);
> } else {
> @@ -193,7 +181,7 @@ static int curl_sock_cb(CURL *curl, curl_socket_t fd, int action,
> }
> socket = NULL;
>
> - 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 = size * nmemb;
> int i;
>
> - DPRINTF("CURL: Just reading %zd bytes\n", realsize);
> + trace_curl_read_cb(realsize);
>
> if (!s || !s->orig_buf) {
> goto read_end;
> @@ -777,7 +765,7 @@ static int curl_open(BlockDriverState *bs, QDict *options, int flags,
> }
> }
>
> - DPRINTF("CURL: Opening %s\n", file);
> + trace_curl_open(file);
> qemu_co_queue_init(&s->free_state_waitq);
> s->aio_context = bdrv_get_aio_context(bs);
> s->url = g_strdup(file);
> @@ -830,7 +818,7 @@ static int curl_open(BlockDriverState *bs, QDict *options, int flags,
> "Server does not support 'range' (byte ranges).");
> goto out;
> }
> - DPRINTF("CURL: Size = %" PRIu64 "\n", s->len);
> + trace_curl_open_size(s->len);
>
> qemu_mutex_lock(&s->mutex);
> curl_clean_state(state);
> @@ -908,8 +896,7 @@ static void curl_setup_preadv(BlockDriverState *bs, CURLAIOCB *acb)
> state->acb[0] = acb;
>
> 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);
>
> curl_multi_add_handle(s->multi, state->curl);
> @@ -943,7 +930,7 @@ static void curl_close(BlockDriverState *bs)
> {
> BDRVCURLState *s = bs->opaque;
>
> - DPRINTF("CURL: Close\n");
> + trace_curl_close();
> curl_detach_aio_context(bs);
> qemu_mutex_destroy(&s->mutex);
>
> diff --git a/block/trace-events b/block/trace-events
> index b13b1e9706..5b83280b02 100644
> --- a/block/trace-events
> +++ b/block/trace-events
> @@ -173,3 +173,12 @@ ssh_write(int64_t offset, size_t size) "offset=%" PRIi64 " size=%zu"
> ssh_write_buf(void *buf, size_t size) "sftp_write buf=%p size=%zu"
> ssh_write_return(size_t ret) "sftp_write returned %zd"
> ssh_seek(uint64_t offset) "seeking to offset=%" 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 %zd bytes"
> +curl_open(const char *file) "opening %s"
> +curl_open_size(uint64_t size) "size = %" PRIu64
> +curl_setup_preadv(uint64_t bytes, uint64_t start, const char *range) "reading %" PRIu64 " at %" PRIu64 " (%s)"
> +curl_close(void) "close"
Reviewed-by: Richard W.M. Jones <rjones@redhat.com>
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-top is 'top' for virtual machines. Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://people.redhat.com/~rjones/virt-top
next prev parent reply other threads:[~2018-12-12 21:20 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-12 19:40 [Qemu-trivial] [PATCH 0/4] block: Convert from DPRINTF() macro to trace event Laurent Vivier
2018-12-12 19:40 ` [Qemu-devel] " Laurent Vivier
2018-12-12 19:40 ` [Qemu-trivial] [PATCH 1/4] block/ssh: Convert from DPRINTF() macro to trace events Laurent Vivier
2018-12-12 19:40 ` [Qemu-devel] " Laurent Vivier
2018-12-12 21:19 ` [Qemu-trivial] " Richard W.M. Jones
2018-12-12 21:19 ` [Qemu-devel] " Richard W.M. Jones
2018-12-13 9:17 ` [Qemu-trivial] " Philippe Mathieu-Daudé
2018-12-13 9:17 ` Philippe Mathieu-Daudé
2018-12-12 19:40 ` [Qemu-trivial] [PATCH 2/4] block/curl: " Laurent Vivier
2018-12-12 19:40 ` [Qemu-devel] " Laurent Vivier
2018-12-12 21:20 ` Richard W.M. Jones [this message]
2018-12-12 21:20 ` Richard W.M. Jones
2018-12-13 9:23 ` [Qemu-trivial] " Philippe Mathieu-Daudé
2018-12-13 9:23 ` Philippe Mathieu-Daudé
2018-12-12 19:40 ` [Qemu-trivial] [PATCH 3/4] block/file-posix: " Laurent Vivier
2018-12-12 19:40 ` [Qemu-devel] " Laurent Vivier
2018-12-13 9:18 ` [Qemu-trivial] " Philippe Mathieu-Daudé
2018-12-13 9:18 ` Philippe Mathieu-Daudé
2018-12-12 19:40 ` [Qemu-trivial] [PATCH 4/4] block/sheepdog: " Laurent Vivier
2018-12-12 19:40 ` [Qemu-devel] " Laurent Vivier
2018-12-13 9:21 ` [Qemu-trivial] " Philippe Mathieu-Daudé
2018-12-13 9:21 ` Philippe Mathieu-Daudé
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=20181212212021.GD27120@redhat.com \
--to=rjones@redhat.com \
--cc=f4bug@amsat.org \
--cc=kwolf@redhat.com \
--cc=lvivier@redhat.com \
--cc=mreitz@redhat.com \
--cc=namei.unix@gmail.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-trivial@nongnu.org \
/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.