qemu-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]