More Trace events
This patch adds few more trace events for tracking IO and also to trace balloon event flagged via the monitor.
--- balloon.c | 2 ++ ioport.c | 7 +++++++ trace-events | 8 ++++++++ 3 files changed, 17 insertions(+), 0 deletions(-)
balloon.c +2 -0
@@ -29,6 +29,7 @@#include "cpu-common.h" #include "kvm.h" #include "balloon.h" +#include "trace.h" static QEMUBalloonEvent *qemu_balloon_event;
@@ -43,6 +44,7 @@ void qemu_add_balloon_handler(QEMUBalloonEvent *func, void *opaque)int qemu_balloon (ram_addr_t target,MonitorCompletion cb,void *opaque) {if (qemu_balloon_event) { +trace_balloon_event (qemu_balloon_event_opaque, target);qemu_balloon_event (qemu_balloon_event_opaque, target, cb, opaque);return 1 ; }else {
ioport.c +7 -0
@@ -26,6 +26,7 @@*/ #include "ioport.h" +#include "trace.h" /***********************************************************/ /* IO Port */
@@ -195,18 +196,21 @@ void isa_unassign_ioport(pio_addr_t start, int length)void cpu_outb (pio_addr_t addr,uint8_t val) {LOG_IOPORT ("outb: %04" FMT_pioaddr" %02" PRIx8"\n" , addr, val); +trace_cpu_out (addr, val);ioport_write (0 , addr, val); }void cpu_outw (pio_addr_t addr,uint16_t val) {LOG_IOPORT ("outw: %04" FMT_pioaddr" %04" PRIx16"\n" , addr, val); +trace_cpu_out (addr, val);ioport_write (1 , addr, val); }void cpu_outl (pio_addr_t addr,uint32_t val) {LOG_IOPORT ("outl: %04" FMT_pioaddr" %08" PRIx32"\n" , addr, val); +trace_cpu_out (addr, val);ioport_write (2 , addr, val); }
@@ -214,6 +218,7 @@ uint8_t cpu_inb(pio_addr_t addr) {uint8_t val; val =ioport_read (0 , addr); +trace_cpu_in (addr, val);LOG_IOPORT ("inb : %04" FMT_pioaddr" %02" PRIx8"\n" , addr, val);return val; }
@@ -222,6 +227,7 @@ uint16_t cpu_inw(pio_addr_t addr) {uint16_t val; val =ioport_read (1 , addr); +trace_cpu_in (addr, val);LOG_IOPORT ("inw : %04" FMT_pioaddr" %04" PRIx16"\n" , addr, val);return val; }
@@ -230,6 +236,7 @@ uint32_t cpu_inl(pio_addr_t addr) {uint32_t val; val =ioport_read (2 , addr); +trace_cpu_in (addr, val);LOG_IOPORT ("inl : %04" FMT_pioaddr" %08" PRIx32"\n" , addr, val);return val; }
trace-events +8 -0
@@ -59,3 +59,11 @@ virtio_blk_handle_write(void *req, unsigned long sector, unsigned long nsectors) # posix-aio-compat.c paio_submit(void *acb, void *opaque, unsigned long sector_num, unsigned long nb_sectors, unsigned long type) "acb %p opaque %p sector_num %lu nb_sectors %lu type %lu" + +# ioport.c +cpu_in(unsigned int addr, unsigned int val) "Addr %u Value %u" +cpu_out(unsigned int addr, unsigned int val) "Addr %u 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"
Signature · 10 lines
1.6.2.5 -- Prerna Saxena Linux Technology Centre, IBM Systems and Technology Lab, Bangalore, India
Quoted 5 lines · Prerna Saxena
This patch adds few more trace events for tracking IO and also to trace balloon event flagged via the monitor.
Signed-off-by Prerna Saxena <[email protected]>---
Thanks for adding these trace events. Two minor requests:
1. Please split the patch into one patch that adds ioport tracing and one that adds virtio-balloon tracing. If there is discussion related to one of these subsystems any follow up will be cleaner and only affect that commit.
Quoted 6 lines
trace-events +0
-0@@ -59,3 +59,11 @@ virtio_blk_handle_write(void *req, unsigned long sector, unsigned long nsectors)
trace-events virtio_blk_handle_write(void *req, unsigned long sector, unsigned long nsectors) · line 69
Quoted 10 lines
trace-events +8
-0# posix-aio-compat.c paio_submit(void *acb, void *opaque, unsigned long sector_num, unsigned long nb_sectors, unsigned long type) "acb %p opaque %p sector_num %lu nb_sectors %lu type %lu" + +# ioport.c +cpu_in(unsigned int addr, unsigned int val) "Addr %u Value %u" +cpu_out(unsigned int addr, unsigned int val) "Addr %u 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"
2. Please follow the lowercase format string convention. All other trace events use lowercase "like %p this %u".
Thanks,
Stefan
cover More Trace events
Set of patches to add trace-events for tracking IO and balloon events flagged via the monitor.
Signature · 5 lines
Prerna Saxena Linux Technology Centre, IBM Systems and Technology Lab, Bangalore, India
Stefan Hajnoczi
AppliedQuoted 2 lines · Prerna Saxena
Set of patches to add trace-events for tracking IO and balloon events flagged via the monitor.
http://repo.or.cz/w/qemu/stefanha.git/commitdiff/939e5dc31ec374036628986686e9d49e6cbbc33c
http://repo.or.cz/w/qemu/stefanha.git/commitdiff/ed80239f2dfe5369f18480ef1b034367c949932c
Applied, thanks!
Stefan
PATCH 1/2 More Trace events
In reply to Stefan Hajnoczi[PATCH 1/2] Trace events for tracking port IO
--- ioport.c | 7 +++++++ trace-events | 4 ++++ 2 files changed, 11 insertions(+), 0 deletions(-)
ioport.c +7 -0
@@ -26,6 +26,7 @@*/ #include "ioport.h" +#include "trace.h" /***********************************************************/ /* IO Port */
@@ -195,18 +196,21 @@ void isa_unassign_ioport(pio_addr_t start, int length)void cpu_outb (pio_addr_t addr,uint8_t val) {LOG_IOPORT ("outb: %04" FMT_pioaddr" %02" PRIx8"\n" , addr, val); +trace_cpu_out (addr, val);ioport_write (0 , addr, val); }void cpu_outw (pio_addr_t addr,uint16_t val) {LOG_IOPORT ("outw: %04" FMT_pioaddr" %04" PRIx16"\n" , addr, val); +trace_cpu_out (addr, val);ioport_write (1 , addr, val); }void cpu_outl (pio_addr_t addr,uint32_t val) {LOG_IOPORT ("outl: %04" FMT_pioaddr" %08" PRIx32"\n" , addr, val); +trace_cpu_out (addr, val);ioport_write (2 , addr, val); }
@@ -214,6 +218,7 @@ uint8_t cpu_inb(pio_addr_t addr) {uint8_t val; val =ioport_read (0 , addr); +trace_cpu_in (addr, val);LOG_IOPORT ("inb : %04" FMT_pioaddr" %02" PRIx8"\n" , addr, val);return val; }
@@ -222,6 +227,7 @@ uint16_t cpu_inw(pio_addr_t addr) {uint16_t val; val =ioport_read (1 , addr); +trace_cpu_in (addr, val);LOG_IOPORT ("inw : %04" FMT_pioaddr" %04" PRIx16"\n" , addr, val);return val; }
@@ -230,6 +236,7 @@ uint32_t cpu_inl(pio_addr_t addr) {uint32_t val; val =ioport_read (2 , addr); +trace_cpu_in (addr, val);LOG_IOPORT ("inl : %04" FMT_pioaddr" %08" PRIx32"\n" , addr, val);return val; }
trace-events +4 -0
@@ -59,3 +59,7 @@ virtio_blk_handle_write(void *req, unsigned long sector, unsigned long nsectors) # posix-aio-compat.c paio_submit(void *acb, void *opaque, unsigned long sector_num, unsigned long nb_sectors, unsigned long type) "acb %p opaque %p sector_num %lu nb_sectors %lu type %lu" + +# ioport.c +cpu_in(unsigned int addr, unsigned int val) "addr %u value %u" +cpu_out(unsigned int addr, unsigned int val) "addr %u value %u"
Signature · 10 lines
1.6.2.5 -- Prerna Saxena Linux Technology Centre, IBM Systems and Technology Lab, Bangalore, India
PATCH 2/2 More Trace events
In reply to Stefan Hajnoczi[PATCH 2/2] Trace event for tracking entry point of balloon request handler.
--- balloon.c | 2 ++ trace-events | 4 ++++ 2 files changed, 6 insertions(+), 0 deletions(-)
balloon.c +2 -0
@@ -29,6 +29,7 @@#include "cpu-common.h" #include "kvm.h" #include "balloon.h" +#include "trace.h" static QEMUBalloonEvent *qemu_balloon_event;
@@ -43,6 +44,7 @@ void qemu_add_balloon_handler(QEMUBalloonEvent *func, void *opaque)int qemu_balloon (ram_addr_t target,MonitorCompletion cb,void *opaque) {if (qemu_balloon_event) { +trace_balloon_event (qemu_balloon_event_opaque, target);qemu_balloon_event (qemu_balloon_event_opaque, target, cb, opaque);return 1 ; }else {
trace-events +4 -0
@@ -63,3 +63,7 @@ paio_submit(void *acb, void *opaque, unsigned long sector_num, unsigned long nb_ # ioport.c cpu_in(unsigned int addr, unsigned int val) "addr %u value %u" cpu_out(unsigned int addr, unsigned int val) "addr %u 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"
Signature · 10 lines
1.6.2.5 -- Prerna Saxena Linux Technology Centre, IBM Systems and Technology Lab, Bangalore, India