Message ID | 1410505616-11768-1-git-send-email-zhang.zhanghailiang@huawei.com |
---|---|
State | New |
Headers | show |
Hi, Ping... Is this acceptable? Thanks, zhanghailiang On 2014/9/12 15:06, zhanghailiang wrote: > Add some trace events for easier debugging > > Signed-off-by: zhanghailiang<zhang.zhanghailiang@huawei.com> > --- > hw/virtio/virtio-balloon.c | 6 ++++++ > trace-events | 4 ++++ > 2 files changed, 10 insertions(+) > > diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c > index 2c30b3d..112f97c 100644 > --- a/hw/virtio/virtio-balloon.c > +++ b/hw/virtio/virtio-balloon.c > @@ -25,6 +25,7 @@ > #include "exec/address-spaces.h" > #include "qapi/visitor.h" > #include "qapi-event.h" > +#include "trace.h" > > #if defined(__linux__) > #include<sys/mman.h> > @@ -217,6 +218,8 @@ static void virtio_balloon_handle_output(VirtIODevice *vdev, VirtQueue *vq) > if (!int128_nz(section.size) || !memory_region_is_ram(section.mr)) > continue; > > + trace_virtio_balloon_handle_output(memory_region_name(section.mr), > + pa); > /* Using memory_region_get_ram_ptr is bending the rules a bit, but > should be OK because we only want a single page. */ > addr = section.offset_within_region; > @@ -280,6 +283,7 @@ static void virtio_balloon_get_config(VirtIODevice *vdev, uint8_t *config_data) > config.num_pages = cpu_to_le32(dev->num_pages); > config.actual = cpu_to_le32(dev->actual); > > + trace_virtio_balloon_get_config(config.num_pages, config.actual); > memcpy(config_data,&config, sizeof(struct virtio_balloon_config)); > } > > @@ -296,6 +300,7 @@ static void virtio_balloon_set_config(VirtIODevice *vdev, > ((ram_addr_t) dev->actual<< VIRTIO_BALLOON_PFN_SHIFT), > &error_abort); > } > + trace_virtio_balloon_set_config(dev->actual, oldactual); > } > > static uint32_t virtio_balloon_get_features(VirtIODevice *vdev, uint32_t f) > @@ -323,6 +328,7 @@ static void virtio_balloon_to_target(void *opaque, ram_addr_t target) > dev->num_pages = (ram_size - target)>> VIRTIO_BALLOON_PFN_SHIFT; > virtio_notify_config(vdev); > } > + trace_virtio_balloon_to_target(target, dev->num_pages); > } > > static void virtio_balloon_save(QEMUFile *f, void *opaque) > diff --git a/trace-events b/trace-events > index fb58963..fedd7e7 100644 > --- a/trace-events > +++ b/trace-events > @@ -143,6 +143,10 @@ cpu_out(unsigned int addr, unsigned int val) "addr %#x value %u" > # balloon.c > # Since requests are raised via monitor, not many tracepoints are needed. > balloon_event(void *opaque, unsigned long addr) "opaque %p addr %lu" > +virtio_balloon_handle_output(const char *name, uint64_t gpa) "setion name: %s gpa: %"PRIx64"" > +virtio_balloon_get_config(uint32_t num_pages, uint32_t acutal) "num_pages: %d acutal: %d" > +virtio_balloon_set_config(uint32_t acutal, uint32_t oldacutal) "acutal: %d oldacutal: %d" > +virtio_balloon_to_target(uint64_t target, uint32_t num_pages) "balloon target: %"PRIx64" num_pages: %d" > > # hw/intc/apic_common.c > cpu_set_apic_base(uint64_t val) "%016"PRIx64
diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c index 2c30b3d..112f97c 100644 --- a/hw/virtio/virtio-balloon.c +++ b/hw/virtio/virtio-balloon.c @@ -25,6 +25,7 @@ #include "exec/address-spaces.h" #include "qapi/visitor.h" #include "qapi-event.h" +#include "trace.h" #if defined(__linux__) #include <sys/mman.h> @@ -217,6 +218,8 @@ static void virtio_balloon_handle_output(VirtIODevice *vdev, VirtQueue *vq) if (!int128_nz(section.size) || !memory_region_is_ram(section.mr)) continue; + trace_virtio_balloon_handle_output(memory_region_name(section.mr), + pa); /* Using memory_region_get_ram_ptr is bending the rules a bit, but should be OK because we only want a single page. */ addr = section.offset_within_region; @@ -280,6 +283,7 @@ static void virtio_balloon_get_config(VirtIODevice *vdev, uint8_t *config_data) config.num_pages = cpu_to_le32(dev->num_pages); config.actual = cpu_to_le32(dev->actual); + trace_virtio_balloon_get_config(config.num_pages, config.actual); memcpy(config_data, &config, sizeof(struct virtio_balloon_config)); } @@ -296,6 +300,7 @@ static void virtio_balloon_set_config(VirtIODevice *vdev, ((ram_addr_t) dev->actual << VIRTIO_BALLOON_PFN_SHIFT), &error_abort); } + trace_virtio_balloon_set_config(dev->actual, oldactual); } static uint32_t virtio_balloon_get_features(VirtIODevice *vdev, uint32_t f) @@ -323,6 +328,7 @@ static void virtio_balloon_to_target(void *opaque, ram_addr_t target) dev->num_pages = (ram_size - target) >> VIRTIO_BALLOON_PFN_SHIFT; virtio_notify_config(vdev); } + trace_virtio_balloon_to_target(target, dev->num_pages); } static void virtio_balloon_save(QEMUFile *f, void *opaque) diff --git a/trace-events b/trace-events index fb58963..fedd7e7 100644 --- a/trace-events +++ b/trace-events @@ -143,6 +143,10 @@ cpu_out(unsigned int addr, unsigned int val) "addr %#x value %u" # balloon.c # Since requests are raised via monitor, not many tracepoints are needed. balloon_event(void *opaque, unsigned long addr) "opaque %p addr %lu" +virtio_balloon_handle_output(const char *name, uint64_t gpa) "setion name: %s gpa: %"PRIx64"" +virtio_balloon_get_config(uint32_t num_pages, uint32_t acutal) "num_pages: %d acutal: %d" +virtio_balloon_set_config(uint32_t acutal, uint32_t oldacutal) "acutal: %d oldacutal: %d" +virtio_balloon_to_target(uint64_t target, uint32_t num_pages) "balloon target: %"PRIx64" num_pages: %d" # hw/intc/apic_common.c cpu_set_apic_base(uint64_t val) "%016"PRIx64
Add some trace events for easier debugging Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com> --- hw/virtio/virtio-balloon.c | 6 ++++++ trace-events | 4 ++++ 2 files changed, 10 insertions(+)