vfio-ccw: Add trace for CRW event
authorEric Farman <farman@linux.ibm.com>
Tue, 5 May 2020 12:27:45 +0000 (14:27 +0200)
committerCornelia Huck <cohuck@redhat.com>
Wed, 3 Jun 2020 09:28:19 +0000 (11:28 +0200)
Since CRW events are (should be) rare, let's put a trace
in that routine too.

Signed-off-by: Eric Farman <farman@linux.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Message-Id: <20200505122745.53208-9-farman@linux.ibm.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
drivers/s390/cio/vfio_ccw_drv.c
drivers/s390/cio/vfio_ccw_trace.c
drivers/s390/cio/vfio_ccw_trace.h

index 9144360851ed4014fea7239ec4880f9c3cea3837..8c625b530035f536248ba2ad0260c82342144630 100644 (file)
@@ -336,6 +336,7 @@ static int vfio_ccw_chp_event(struct subchannel *sch,
        if (!private || !mask)
                return 0;
 
+       trace_vfio_ccw_chp_event(private->sch->schid, mask, event);
        VFIO_CCW_MSG_EVENT(2, "%pUl (%x.%x.%04x): mask=0x%x event=%d\n",
                           mdev_uuid(private->mdev), sch->schid.cssid,
                           sch->schid.ssid, sch->schid.sch_no,
index 8c671d2519f635ab7d6838f15cb99c7ec05a9eb9..4a0205905afc0d02ebe3549bce01d54f66c682a1 100644 (file)
@@ -9,6 +9,7 @@
 #define CREATE_TRACE_POINTS
 #include "vfio_ccw_trace.h"
 
+EXPORT_TRACEPOINT_SYMBOL(vfio_ccw_chp_event);
 EXPORT_TRACEPOINT_SYMBOL(vfio_ccw_fsm_async_request);
 EXPORT_TRACEPOINT_SYMBOL(vfio_ccw_fsm_event);
 EXPORT_TRACEPOINT_SYMBOL(vfio_ccw_fsm_io_request);
index f5d31887d41341a8c99f8d301b9e25afc21ec029..62fb30598d47758b9caed258118b45af2a245e7d 100644 (file)
 
 #include <linux/tracepoint.h>
 
+TRACE_EVENT(vfio_ccw_chp_event,
+       TP_PROTO(struct subchannel_id schid,
+                int mask,
+                int event),
+       TP_ARGS(schid, mask, event),
+
+       TP_STRUCT__entry(
+               __field(u8, cssid)
+               __field(u8, ssid)
+               __field(u16, sch_no)
+               __field(int, mask)
+               __field(int, event)
+       ),
+
+       TP_fast_assign(
+               __entry->cssid = schid.cssid;
+               __entry->ssid = schid.ssid;
+               __entry->sch_no = schid.sch_no;
+               __entry->mask = mask;
+               __entry->event = event;
+       ),
+
+       TP_printk("schid=%x.%x.%04x mask=0x%x event=%d",
+                 __entry->cssid,
+                 __entry->ssid,
+                 __entry->sch_no,
+                 __entry->mask,
+                 __entry->event)
+);
+
 TRACE_EVENT(vfio_ccw_fsm_async_request,
        TP_PROTO(struct subchannel_id schid,
                 int command,