[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH for-1.6] memory: add tracepoints for MMIO reads/
From: |
Andreas Färber |
Subject: |
Re: [Qemu-devel] [PATCH for-1.6] memory: add tracepoints for MMIO reads/writes |
Date: |
Sun, 28 Jul 2013 14:45:22 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130620 Thunderbird/17.0.7 |
Am 28.07.2013 14:35, schrieb Paolo Bonzini:
> This is quite handy to debug softmmu targets.
>
> Signed-off-by: Paolo Bonzini <address@hidden>
> ---
> memory.c | 5 +++++
> trace-events | 4 ++++
> 2 files changed, 9 insertions(+)
>
> diff --git a/memory.c b/memory.c
> index 1494e95..ac6f3c6 100644
> --- a/memory.c
> +++ b/memory.c
> @@ -19,6 +19,7 @@
> #include "qemu/bitops.h"
> #include "qom/object.h"
> #include "sysemu/kvm.h"
> +#include "trace.h"
> #include <assert.h>
>
> #include "exec/memory-internal.h"
> @@ -388,6 +389,7 @@ static void
> memory_region_oldmmio_read_accessor(MemoryRegion *mr,
> uint64_t tmp;
>
> tmp = mr->ops->old_mmio.read[ctz32(size)](mr->opaque, addr);
> + trace_memory_region_ops_read(mr, addr, tmp, size);
> *value |= (tmp & mask) << shift;
> }
>
> @@ -404,6 +406,7 @@ static void memory_region_read_accessor(MemoryRegion *mr,
> qemu_flush_coalesced_mmio_buffer();
> }
> tmp = mr->ops->read(mr->opaque, addr, size);
> + trace_memory_region_ops_read(mr, addr, tmp, size);
> *value |= (tmp & mask) << shift;
> }
>
> @@ -417,6 +420,7 @@ static void
> memory_region_oldmmio_write_accessor(MemoryRegion *mr,
> uint64_t tmp;
>
> tmp = (*value >> shift) & mask;
> + trace_memory_region_ops_write(mr, addr, tmp, size);
> mr->ops->old_mmio.write[ctz32(size)](mr->opaque, addr, tmp);
> }
>
> @@ -433,6 +437,7 @@ static void memory_region_write_accessor(MemoryRegion *mr,
> qemu_flush_coalesced_mmio_buffer();
> }
> tmp = (*value >> shift) & mask;
> + trace_memory_region_ops_write(mr, addr, tmp, size);
> mr->ops->write(mr->opaque, addr, tmp, size);
> }
>
> diff --git a/trace-events b/trace-events
> index 002df83..3e0dd74 100644
> --- a/trace-events
> +++ b/trace-events
> @@ -1165,6 +1165,10 @@ kvm_vm_ioctl(int type, void *arg) "type %d, arg %p"
> kvm_vcpu_ioctl(int cpu_index, int type, void *arg) "cpu_index %d, type %d,
> arg %p"
> kvm_run_exit(int cpu_index, uint32_t reason) "cpu_index %d, reason %d"
>
> +# memory.c
> +memory_region_ops_read(void *mr, uint64_t addr, uint64_t value, unsigned
> size) "mr %p addr %#"PRIx64" value %#"PRIx64" size %d"
> +memory_region_ops_write(void *mr, uint64_t addr, uint64_t value, unsigned
> size) "mr %p addr %#"PRIx64" value %#"PRIx64" size %d"
%u would seem more correct for unsigned - if you fix that, Reviewed-by:
Andreas Färber <address@hidden> and ACK that's it's good for 1.6.
Andreas
> +
> # qom/object.c
> object_dynamic_cast_assert(const char *type, const char *target, const char
> *file, int line, const char *func) "%s->%s (%s:%d:%s)"
> object_class_dynamic_cast_assert(const char *type, const char *target, const
> char *file, int line, const char *func) "%s->%s (%s:%d:%s)"
>
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg