* [PATCH] virtio-pmem: add trace events
@ 2020-11-17 11:57 Pankaj Gupta
2020-12-09 17:49 ` Pankaj Gupta
2020-12-09 19:15 ` David Hildenbrand
0 siblings, 2 replies; 4+ messages in thread
From: Pankaj Gupta @ 2020-11-17 11:57 UTC (permalink / raw)
To: mst; +Cc: pankaj.gupta.linux, qemu-devel, david
This patch adds trace events for virtio-pmem functionality.
Adding trace events for virtio pmem request, reponse and host
side fsync functionality.
Signed-off-by: Pankaj Gupta <pankaj.gupta.linux@gmail.com>
---
hw/virtio/trace-events | 5 +++++
hw/virtio/virtio-pmem.c | 4 ++++
2 files changed, 9 insertions(+)
diff --git a/hw/virtio/trace-events b/hw/virtio/trace-events
index 2060a144a2..c62727f879 100644
--- a/hw/virtio/trace-events
+++ b/hw/virtio/trace-events
@@ -122,3 +122,8 @@ virtio_mem_unplug_all_request(void) ""
virtio_mem_resized_usable_region(uint64_t old_size, uint64_t new_size) "old_size=0x%" PRIx64 "new_size=0x%" PRIx64
virtio_mem_state_request(uint64_t addr, uint16_t nb_blocks) "addr=0x%" PRIx64 " nb_blocks=%" PRIu16
virtio_mem_state_response(uint16_t state) "state=%" PRIu16
+
+# virtio-pmem.c
+virtio_pmem_flush_request(void) "flush request"
+virtio_pmem_response(void) "flush response"
+virtio_pmem_flush_done(int type) "fsync return=%d"
diff --git a/hw/virtio/virtio-pmem.c b/hw/virtio/virtio-pmem.c
index ddb0125901..d83e973bf2 100644
--- a/hw/virtio/virtio-pmem.c
+++ b/hw/virtio/virtio-pmem.c
@@ -24,6 +24,7 @@
#include "sysemu/hostmem.h"
#include "block/aio.h"
#include "block/thread-pool.h"
+#include "trace.h"
typedef struct VirtIODeviceRequest {
VirtQueueElement elem;
@@ -41,6 +42,7 @@ static int worker_cb(void *opaque)
/* flush raw backing image */
err = fsync(req_data->fd);
+ trace_virtio_pmem_flush_done(err);
if (err != 0) {
err = 1;
}
@@ -59,6 +61,7 @@ static void done_cb(void *opaque, int ret)
/* Callbacks are serialized, so no need to use atomic ops. */
virtqueue_push(req_data->pmem->rq_vq, &req_data->elem, len);
virtio_notify((VirtIODevice *)req_data->pmem, req_data->pmem->rq_vq);
+ trace_virtio_pmem_response();
g_free(req_data);
}
@@ -69,6 +72,7 @@ static void virtio_pmem_flush(VirtIODevice *vdev, VirtQueue *vq)
HostMemoryBackend *backend = MEMORY_BACKEND(pmem->memdev);
ThreadPool *pool = aio_get_thread_pool(qemu_get_aio_context());
+ trace_virtio_pmem_flush_request();
req_data = virtqueue_pop(vq, sizeof(VirtIODeviceRequest));
if (!req_data) {
virtio_error(vdev, "virtio-pmem missing request data");
--
2.20.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] virtio-pmem: add trace events
2020-11-17 11:57 [PATCH] virtio-pmem: add trace events Pankaj Gupta
@ 2020-12-09 17:49 ` Pankaj Gupta
2020-12-09 19:15 ` David Hildenbrand
1 sibling, 0 replies; 4+ messages in thread
From: Pankaj Gupta @ 2020-12-09 17:49 UTC (permalink / raw)
To: Michael S . Tsirkin; +Cc: Qemu Developers, David Hildenbrand
ping.
> This patch adds trace events for virtio-pmem functionality.
> Adding trace events for virtio pmem request, reponse and host
> side fsync functionality.
>
> Signed-off-by: Pankaj Gupta <pankaj.gupta.linux@gmail.com>
> ---
> hw/virtio/trace-events | 5 +++++
> hw/virtio/virtio-pmem.c | 4 ++++
> 2 files changed, 9 insertions(+)
>
> diff --git a/hw/virtio/trace-events b/hw/virtio/trace-events
> index 2060a144a2..c62727f879 100644
> --- a/hw/virtio/trace-events
> +++ b/hw/virtio/trace-events
> @@ -122,3 +122,8 @@ virtio_mem_unplug_all_request(void) ""
> virtio_mem_resized_usable_region(uint64_t old_size, uint64_t new_size) "old_size=0x%" PRIx64 "new_size=0x%" PRIx64
> virtio_mem_state_request(uint64_t addr, uint16_t nb_blocks) "addr=0x%" PRIx64 " nb_blocks=%" PRIu16
> virtio_mem_state_response(uint16_t state) "state=%" PRIu16
> +
> +# virtio-pmem.c
> +virtio_pmem_flush_request(void) "flush request"
> +virtio_pmem_response(void) "flush response"
> +virtio_pmem_flush_done(int type) "fsync return=%d"
> diff --git a/hw/virtio/virtio-pmem.c b/hw/virtio/virtio-pmem.c
> index ddb0125901..d83e973bf2 100644
> --- a/hw/virtio/virtio-pmem.c
> +++ b/hw/virtio/virtio-pmem.c
> @@ -24,6 +24,7 @@
> #include "sysemu/hostmem.h"
> #include "block/aio.h"
> #include "block/thread-pool.h"
> +#include "trace.h"
>
> typedef struct VirtIODeviceRequest {
> VirtQueueElement elem;
> @@ -41,6 +42,7 @@ static int worker_cb(void *opaque)
>
> /* flush raw backing image */
> err = fsync(req_data->fd);
> + trace_virtio_pmem_flush_done(err);
> if (err != 0) {
> err = 1;
> }
> @@ -59,6 +61,7 @@ static void done_cb(void *opaque, int ret)
> /* Callbacks are serialized, so no need to use atomic ops. */
> virtqueue_push(req_data->pmem->rq_vq, &req_data->elem, len);
> virtio_notify((VirtIODevice *)req_data->pmem, req_data->pmem->rq_vq);
> + trace_virtio_pmem_response();
> g_free(req_data);
> }
>
> @@ -69,6 +72,7 @@ static void virtio_pmem_flush(VirtIODevice *vdev, VirtQueue *vq)
> HostMemoryBackend *backend = MEMORY_BACKEND(pmem->memdev);
> ThreadPool *pool = aio_get_thread_pool(qemu_get_aio_context());
>
> + trace_virtio_pmem_flush_request();
> req_data = virtqueue_pop(vq, sizeof(VirtIODeviceRequest));
> if (!req_data) {
> virtio_error(vdev, "virtio-pmem missing request data");
> --
> 2.20.1
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] virtio-pmem: add trace events
2020-11-17 11:57 [PATCH] virtio-pmem: add trace events Pankaj Gupta
2020-12-09 17:49 ` Pankaj Gupta
@ 2020-12-09 19:15 ` David Hildenbrand
2021-02-02 14:54 ` Pankaj Gupta
1 sibling, 1 reply; 4+ messages in thread
From: David Hildenbrand @ 2020-12-09 19:15 UTC (permalink / raw)
To: Pankaj Gupta, mst; +Cc: qemu-devel
On 17.11.20 12:57, Pankaj Gupta wrote:
> This patch adds trace events for virtio-pmem functionality.
> Adding trace events for virtio pmem request, reponse and host
> side fsync functionality.
>
> Signed-off-by: Pankaj Gupta <pankaj.gupta.linux@gmail.com>
> ---
> hw/virtio/trace-events | 5 +++++
> hw/virtio/virtio-pmem.c | 4 ++++
> 2 files changed, 9 insertions(+)
>
> diff --git a/hw/virtio/trace-events b/hw/virtio/trace-events
> index 2060a144a2..c62727f879 100644
> --- a/hw/virtio/trace-events
> +++ b/hw/virtio/trace-events
> @@ -122,3 +122,8 @@ virtio_mem_unplug_all_request(void) ""
> virtio_mem_resized_usable_region(uint64_t old_size, uint64_t new_size) "old_size=0x%" PRIx64 "new_size=0x%" PRIx64
> virtio_mem_state_request(uint64_t addr, uint16_t nb_blocks) "addr=0x%" PRIx64 " nb_blocks=%" PRIu16
> virtio_mem_state_response(uint16_t state) "state=%" PRIu16
> +
> +# virtio-pmem.c
> +virtio_pmem_flush_request(void) "flush request"
> +virtio_pmem_response(void) "flush response"
> +virtio_pmem_flush_done(int type) "fsync return=%d"
> diff --git a/hw/virtio/virtio-pmem.c b/hw/virtio/virtio-pmem.c
> index ddb0125901..d83e973bf2 100644
> --- a/hw/virtio/virtio-pmem.c
> +++ b/hw/virtio/virtio-pmem.c
> @@ -24,6 +24,7 @@
> #include "sysemu/hostmem.h"
> #include "block/aio.h"
> #include "block/thread-pool.h"
> +#include "trace.h"
>
> typedef struct VirtIODeviceRequest {
> VirtQueueElement elem;
> @@ -41,6 +42,7 @@ static int worker_cb(void *opaque)
>
> /* flush raw backing image */
> err = fsync(req_data->fd);
> + trace_virtio_pmem_flush_done(err);
> if (err != 0) {
> err = 1;
> }
> @@ -59,6 +61,7 @@ static void done_cb(void *opaque, int ret)
> /* Callbacks are serialized, so no need to use atomic ops. */
> virtqueue_push(req_data->pmem->rq_vq, &req_data->elem, len);
> virtio_notify((VirtIODevice *)req_data->pmem, req_data->pmem->rq_vq);
> + trace_virtio_pmem_response();
> g_free(req_data);
> }
>
> @@ -69,6 +72,7 @@ static void virtio_pmem_flush(VirtIODevice *vdev, VirtQueue *vq)
> HostMemoryBackend *backend = MEMORY_BACKEND(pmem->memdev);
> ThreadPool *pool = aio_get_thread_pool(qemu_get_aio_context());
>
> + trace_virtio_pmem_flush_request();
> req_data = virtqueue_pop(vq, sizeof(VirtIODeviceRequest));
> if (!req_data) {
> virtio_error(vdev, "virtio-pmem missing request data");
>
LGTM
Reviewed-by: David Hildenbrand <david@redhat.com>
--
Thanks,
David / dhildenb
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] virtio-pmem: add trace events
2020-12-09 19:15 ` David Hildenbrand
@ 2021-02-02 14:54 ` Pankaj Gupta
0 siblings, 0 replies; 4+ messages in thread
From: Pankaj Gupta @ 2021-02-02 14:54 UTC (permalink / raw)
To: Michael S . Tsirkin; +Cc: Qemu Developers, David Hildenbrand
Ping
@M
On Wed, 9 Dec 2020 at 20:15, David Hildenbrand <david@redhat.com> wrote:
>
> On 17.11.20 12:57, Pankaj Gupta wrote:
> > This patch adds trace events for virtio-pmem functionality.
> > Adding trace events for virtio pmem request, reponse and host
> > side fsync functionality.
> >
> > Signed-off-by: Pankaj Gupta <pankaj.gupta.linux@gmail.com>
> > ---
> > hw/virtio/trace-events | 5 +++++
> > hw/virtio/virtio-pmem.c | 4 ++++
> > 2 files changed, 9 insertions(+)
> >
> > diff --git a/hw/virtio/trace-events b/hw/virtio/trace-events
> > index 2060a144a2..c62727f879 100644
> > --- a/hw/virtio/trace-events
> > +++ b/hw/virtio/trace-events
> > @@ -122,3 +122,8 @@ virtio_mem_unplug_all_request(void) ""
> > virtio_mem_resized_usable_region(uint64_t old_size, uint64_t new_size) "old_size=0x%" PRIx64 "new_size=0x%" PRIx64
> > virtio_mem_state_request(uint64_t addr, uint16_t nb_blocks) "addr=0x%" PRIx64 " nb_blocks=%" PRIu16
> > virtio_mem_state_response(uint16_t state) "state=%" PRIu16
> > +
> > +# virtio-pmem.c
> > +virtio_pmem_flush_request(void) "flush request"
> > +virtio_pmem_response(void) "flush response"
> > +virtio_pmem_flush_done(int type) "fsync return=%d"
> > diff --git a/hw/virtio/virtio-pmem.c b/hw/virtio/virtio-pmem.c
> > index ddb0125901..d83e973bf2 100644
> > --- a/hw/virtio/virtio-pmem.c
> > +++ b/hw/virtio/virtio-pmem.c
> > @@ -24,6 +24,7 @@
> > #include "sysemu/hostmem.h"
> > #include "block/aio.h"
> > #include "block/thread-pool.h"
> > +#include "trace.h"
> >
> > typedef struct VirtIODeviceRequest {
> > VirtQueueElement elem;
> > @@ -41,6 +42,7 @@ static int worker_cb(void *opaque)
> >
> > /* flush raw backing image */
> > err = fsync(req_data->fd);
> > + trace_virtio_pmem_flush_done(err);
> > if (err != 0) {
> > err = 1;
> > }
> > @@ -59,6 +61,7 @@ static void done_cb(void *opaque, int ret)
> > /* Callbacks are serialized, so no need to use atomic ops. */
> > virtqueue_push(req_data->pmem->rq_vq, &req_data->elem, len);
> > virtio_notify((VirtIODevice *)req_data->pmem, req_data->pmem->rq_vq);
> > + trace_virtio_pmem_response();
> > g_free(req_data);
> > }
> >
> > @@ -69,6 +72,7 @@ static void virtio_pmem_flush(VirtIODevice *vdev, VirtQueue *vq)
> > HostMemoryBackend *backend = MEMORY_BACKEND(pmem->memdev);
> > ThreadPool *pool = aio_get_thread_pool(qemu_get_aio_context());
> >
> > + trace_virtio_pmem_flush_request();
> > req_data = virtqueue_pop(vq, sizeof(VirtIODeviceRequest));
> > if (!req_data) {
> > virtio_error(vdev, "virtio-pmem missing request data");
> >
>
> LGTM
>
> Reviewed-by: David Hildenbrand <david@redhat.com>
>
> --
> Thanks,
>
> David / dhildenb
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-02-02 15:16 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-11-17 11:57 [PATCH] virtio-pmem: add trace events Pankaj Gupta
2020-12-09 17:49 ` Pankaj Gupta
2020-12-09 19:15 ` David Hildenbrand
2021-02-02 14:54 ` Pankaj Gupta
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).