From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: David Hildenbrand <david@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>,
kvm@vger.kernel.org, "Michael S . Tsirkin" <mst@redhat.com>,
qemu-devel@nongnu.org, qemu-s390x@nongnu.org,
Paolo Bonzini <pbonzini@redhat.com>,
Richard Henderson <rth@twiddle.net>
Subject: Re: [PATCH v5 19/21] virtio-mem: Add trace events
Date: Thu, 2 Jul 2020 20:08:04 +0100 [thread overview]
Message-ID: <20200702190804.GG14863@work-vm> (raw)
In-Reply-To: <20200626072248.78761-20-david@redhat.com>
* David Hildenbrand (david@redhat.com) wrote:
> Let's add some trace events that might come in handy later.
>
> Cc: "Michael S. Tsirkin" <mst@redhat.com>
> Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> Signed-off-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> ---
> hw/virtio/trace-events | 10 ++++++++++
> hw/virtio/virtio-mem.c | 10 +++++++++-
> 2 files changed, 19 insertions(+), 1 deletion(-)
>
> diff --git a/hw/virtio/trace-events b/hw/virtio/trace-events
> index 6427a0047d..292fc15e29 100644
> --- a/hw/virtio/trace-events
> +++ b/hw/virtio/trace-events
> @@ -74,3 +74,13 @@ virtio_iommu_get_domain(uint32_t domain_id) "Alloc domain=%d"
> virtio_iommu_put_domain(uint32_t domain_id) "Free domain=%d"
> virtio_iommu_translate_out(uint64_t virt_addr, uint64_t phys_addr, uint32_t sid) "0x%"PRIx64" -> 0x%"PRIx64 " for sid=%d"
> virtio_iommu_report_fault(uint8_t reason, uint32_t flags, uint32_t endpoint, uint64_t addr) "FAULT reason=%d flags=%d endpoint=%d address =0x%"PRIx64
> +
> +# virtio-mem.c
> +virtio_mem_send_response(uint16_t type) "type=%" PRIu16
> +virtio_mem_plug_request(uint64_t addr, uint16_t nb_blocks) "addr=0x%" PRIx64 " nb_blocks=%" PRIu16
> +virtio_mem_unplug_request(uint64_t addr, uint16_t nb_blocks) "addr=0x%" PRIx64 " nb_blocks=%" PRIu16
> +virtio_mem_unplugged_all(void) ""
> +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
> diff --git a/hw/virtio/virtio-mem.c b/hw/virtio/virtio-mem.c
> index 6ed5409669..fdd4dbb42c 100644
> --- a/hw/virtio/virtio-mem.c
> +++ b/hw/virtio/virtio-mem.c
> @@ -30,6 +30,7 @@
> #include "hw/boards.h"
> #include "hw/qdev-properties.h"
> #include "config-devices.h"
> +#include "trace.h"
>
> /*
> * Use QEMU_VMALLOC_ALIGN, so no THP will have to be split when unplugging
> @@ -100,6 +101,7 @@ static void virtio_mem_send_response(VirtIOMEM *vmem, VirtQueueElement *elem,
> VirtIODevice *vdev = VIRTIO_DEVICE(vmem);
> VirtQueue *vq = vmem->vq;
>
> + trace_virtio_mem_send_response(le16_to_cpu(resp->type));
> iov_from_buf(elem->in_sg, elem->in_num, 0, resp, sizeof(*resp));
>
> virtqueue_push(vq, elem, sizeof(*resp));
> @@ -195,6 +197,7 @@ static void virtio_mem_plug_request(VirtIOMEM *vmem, VirtQueueElement *elem,
> const uint16_t nb_blocks = le16_to_cpu(req->u.plug.nb_blocks);
> uint16_t type;
>
> + trace_virtio_mem_plug_request(gpa, nb_blocks);
> type = virtio_mem_state_change_request(vmem, gpa, nb_blocks, true);
> virtio_mem_send_response_simple(vmem, elem, type);
> }
> @@ -206,6 +209,7 @@ static void virtio_mem_unplug_request(VirtIOMEM *vmem, VirtQueueElement *elem,
> const uint16_t nb_blocks = le16_to_cpu(req->u.unplug.nb_blocks);
> uint16_t type;
>
> + trace_virtio_mem_unplug_request(gpa, nb_blocks);
> type = virtio_mem_state_change_request(vmem, gpa, nb_blocks, false);
> virtio_mem_send_response_simple(vmem, elem, type);
> }
> @@ -225,6 +229,7 @@ static void virtio_mem_resize_usable_region(VirtIOMEM *vmem,
> return;
> }
>
> + trace_virtio_mem_resized_usable_region(vmem->usable_region_size, newsize);
> vmem->usable_region_size = newsize;
> }
>
> @@ -247,7 +252,7 @@ static int virtio_mem_unplug_all(VirtIOMEM *vmem)
> vmem->size = 0;
> notifier_list_notify(&vmem->size_change_notifiers, &vmem->size);
> }
> -
> + trace_virtio_mem_unplugged_all();
> virtio_mem_resize_usable_region(vmem, vmem->requested_size, true);
> return 0;
> }
> @@ -255,6 +260,7 @@ static int virtio_mem_unplug_all(VirtIOMEM *vmem)
> static void virtio_mem_unplug_all_request(VirtIOMEM *vmem,
> VirtQueueElement *elem)
> {
> + trace_virtio_mem_unplug_all_request();
> if (virtio_mem_unplug_all(vmem)) {
> virtio_mem_send_response_simple(vmem, elem, VIRTIO_MEM_RESP_BUSY);
> } else {
> @@ -272,6 +278,7 @@ static void virtio_mem_state_request(VirtIOMEM *vmem, VirtQueueElement *elem,
> .type = cpu_to_le16(VIRTIO_MEM_RESP_ACK),
> };
>
> + trace_virtio_mem_state_request(gpa, nb_blocks);
> if (!virtio_mem_valid_range(vmem, gpa, size)) {
> virtio_mem_send_response_simple(vmem, elem, VIRTIO_MEM_RESP_ERROR);
> return;
> @@ -284,6 +291,7 @@ static void virtio_mem_state_request(VirtIOMEM *vmem, VirtQueueElement *elem,
> } else {
> resp.u.state.state = cpu_to_le16(VIRTIO_MEM_STATE_MIXED);
> }
> + trace_virtio_mem_state_response(le16_to_cpu(resp.u.state.state));
> virtio_mem_send_response(vmem, elem, &resp);
> }
>
> --
> 2.26.2
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
next prev parent reply other threads:[~2020-07-02 19:09 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-26 7:22 [PATCH v5 00/21] virtio-mem: Paravirtualized memory hot(un)plug David Hildenbrand
2020-06-26 7:22 ` [PATCH v5 01/21] pc: Support coldplugging of virtio-pmem-pci devices on all buses David Hildenbrand
2020-06-26 7:22 ` [PATCH v5 02/21] exec: Introduce ram_block_discard_(disable|require)() David Hildenbrand
2020-06-26 7:22 ` [PATCH v5 03/21] vfio: Convert to ram_block_discard_disable() David Hildenbrand
2020-06-26 7:22 ` [PATCH v5 04/21] accel/kvm: " David Hildenbrand
2020-06-26 7:22 ` [PATCH v5 05/21] s390x/pv: " David Hildenbrand
2020-06-26 7:22 ` [PATCH v5 06/21] virtio-balloon: Rip out qemu_balloon_inhibit() David Hildenbrand
2020-06-26 7:22 ` [PATCH v5 07/21] target/i386: sev: Use ram_block_discard_disable() David Hildenbrand
2020-06-26 7:22 ` [PATCH v5 08/21] migration/rdma: " David Hildenbrand
2020-06-26 7:22 ` [PATCH v5 09/21] migration/colo: " David Hildenbrand
2020-06-26 7:22 ` [PATCH v5 10/21] virtio-mem: Paravirtualized memory hot(un)plug David Hildenbrand
2020-06-30 10:06 ` Michael S. Tsirkin
2020-06-30 10:21 ` David Hildenbrand
2020-06-26 7:22 ` [PATCH v5 11/21] virtio-pci: Proxy for virtio-mem David Hildenbrand
2020-07-06 15:28 ` Cornelia Huck
2020-07-06 16:39 ` David Hildenbrand
2020-06-26 7:22 ` [PATCH v5 12/21] MAINTAINERS: Add myself as virtio-mem maintainer David Hildenbrand
2020-06-26 7:22 ` [PATCH v5 13/21] hmp: Handle virtio-mem when printing memory device info David Hildenbrand
2020-06-26 7:22 ` [PATCH v5 14/21] numa: Handle virtio-mem in NUMA stats David Hildenbrand
2020-06-26 7:22 ` [PATCH v5 15/21] pc: Support for virtio-mem-pci David Hildenbrand
2020-06-26 7:22 ` [PATCH v5 16/21] virtio-mem: Allow notifiers for size changes David Hildenbrand
2020-06-26 7:22 ` [PATCH v5 17/21] virtio-pci: Send qapi events when the virtio-mem " David Hildenbrand
2020-06-26 7:22 ` [PATCH v5 18/21] virtio-mem: Migration sanity checks David Hildenbrand
2020-06-26 7:22 ` [PATCH v5 19/21] virtio-mem: Add trace events David Hildenbrand
2020-07-02 19:08 ` Dr. David Alan Gilbert [this message]
2020-06-26 7:22 ` [PATCH v5 20/21] virtio-mem: Exclude unplugged memory during migration David Hildenbrand
2020-06-26 7:22 ` [PATCH v5 21/21] numa: Auto-enable NUMA when any memory devices are possible David Hildenbrand
2020-07-03 10:40 ` [PATCH v1] virtio-mem: fix cross-compilation due to VIRTIO_MEM_USABLE_EXTENT David Hildenbrand
2020-07-03 11:57 ` Michael S. Tsirkin
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=20200702190804.GG14863@work-vm \
--to=dgilbert@redhat.com \
--cc=david@redhat.com \
--cc=ehabkost@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=rth@twiddle.net \
/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 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).