aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/cio/vfio_ccw_trace.h
diff options
context:
space:
mode:
authorEric Farman <farman@linux.ibm.com>2019-10-16 16:20:38 +0200
committerCornelia Huck <cohuck@redhat.com>2019-10-17 11:36:29 +0200
commit970ebeb84880906b396e53539b95fdbbf3e786a2 (patch)
tree6e87139dca24afefff99ed75563c0c0cc382c4c8 /drivers/s390/cio/vfio_ccw_trace.h
parentvfio-ccw: Refactor how the traces are built (diff)
downloadlinux-dev-970ebeb84880906b396e53539b95fdbbf3e786a2.tar.xz
linux-dev-970ebeb84880906b396e53539b95fdbbf3e786a2.zip
vfio-ccw: Trace the FSM jumptable
It would be nice if we could track the sequence of events within vfio-ccw, based on the state of the device/FSM and our calling sequence within it. So let's add a simple trace here so we can watch the states change as things go, and allow it to be folded into the rest of the other cio traces. Signed-off-by: Eric Farman <farman@linux.ibm.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Message-Id: <20191016142040.14132-3-farman@linux.ibm.com> Acked-by: Halil Pasic <pasic@linux.ibm.com> Signed-off-by: Cornelia Huck <cohuck@redhat.com>
Diffstat (limited to '')
-rw-r--r--drivers/s390/cio/vfio_ccw_trace.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/s390/cio/vfio_ccw_trace.h b/drivers/s390/cio/vfio_ccw_trace.h
index 2a2937a40124..5005d57901b4 100644
--- a/drivers/s390/cio/vfio_ccw_trace.h
+++ b/drivers/s390/cio/vfio_ccw_trace.h
@@ -17,6 +17,32 @@
#include <linux/tracepoint.h>
+TRACE_EVENT(vfio_ccw_fsm_event,
+ TP_PROTO(struct subchannel_id schid, int state, int event),
+ TP_ARGS(schid, state, event),
+
+ TP_STRUCT__entry(
+ __field(u8, cssid)
+ __field(u8, ssid)
+ __field(u16, schno)
+ __field(int, state)
+ __field(int, event)
+ ),
+
+ TP_fast_assign(
+ __entry->cssid = schid.cssid;
+ __entry->ssid = schid.ssid;
+ __entry->schno = schid.sch_no;
+ __entry->state = state;
+ __entry->event = event;
+ ),
+
+ TP_printk("schid=%x.%x.%04x state=%d event=%d",
+ __entry->cssid, __entry->ssid, __entry->schno,
+ __entry->state,
+ __entry->event)
+);
+
TRACE_EVENT(vfio_ccw_io_fctl,
TP_PROTO(int fctl, struct subchannel_id schid, int errno, char *errstr),
TP_ARGS(fctl, schid, errno, errstr),