]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
vfio-ccw: Rework the io_fctl trace
authorEric Farman <farman@linux.ibm.com>
Wed, 16 Oct 2019 14:20:40 +0000 (16:20 +0200)
committerCornelia Huck <cohuck@redhat.com>
Thu, 17 Oct 2019 09:37:24 +0000 (11:37 +0200)
Using __field_struct for the schib is convenient, but it doesn't
appear to let us filter based on any of the schib elements.
Specifying the full schid or any element within it results
in various errors by the parser.  So, expand that out to its
component elements, so we can limit the trace to a single device.

While we are at it, rename this trace to the function name, so we
remember what is being traced instead of an abstract reference to the
function control bit of the SCSW.

Signed-off-by: Eric Farman <farman@linux.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Message-Id: <20191016142040.14132-5-farman@linux.ibm.com>
Acked-by: Halil Pasic <pasic@linux.ibm.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
drivers/s390/cio/vfio_ccw_fsm.c
drivers/s390/cio/vfio_ccw_trace.c
drivers/s390/cio/vfio_ccw_trace.h

index 23648a9aa7212e5813eeea55a3ef538e6a8f3d17..23e61aa638e4eb3048ee6fb84584c6591afa7d48 100644 (file)
@@ -318,8 +318,8 @@ static void fsm_io_request(struct vfio_ccw_private *private,
        }
 
 err_out:
-       trace_vfio_ccw_io_fctl(scsw->cmd.fctl, schid,
-                              io_region->ret_code, errstr);
+       trace_vfio_ccw_fsm_io_request(scsw->cmd.fctl, schid,
+                                     io_region->ret_code, errstr);
 }
 
 /*
index 37ecbf8be805934209869ab2badba621b531e287..8c671d2519f635ab7d6838f15cb99c7ec05a9eb9 100644 (file)
@@ -11,4 +11,4 @@
 
 EXPORT_TRACEPOINT_SYMBOL(vfio_ccw_fsm_async_request);
 EXPORT_TRACEPOINT_SYMBOL(vfio_ccw_fsm_event);
-EXPORT_TRACEPOINT_SYMBOL(vfio_ccw_io_fctl);
+EXPORT_TRACEPOINT_SYMBOL(vfio_ccw_fsm_io_request);
index 5f57cefa84dd78214316fcd5fdd89f85f61034b0..30162a318a8a12e4860919e7c6a50b040f265379 100644 (file)
@@ -73,28 +73,32 @@ TRACE_EVENT(vfio_ccw_fsm_event,
                __entry->event)
 );
 
-TRACE_EVENT(vfio_ccw_io_fctl,
+TRACE_EVENT(vfio_ccw_fsm_io_request,
        TP_PROTO(int fctl, struct subchannel_id schid, int errno, char *errstr),
        TP_ARGS(fctl, schid, errno, errstr),
 
        TP_STRUCT__entry(
+               __field(u8, cssid)
+               __field(u8, ssid)
+               __field(u16, sch_no)
                __field(int, fctl)
-               __field_struct(struct subchannel_id, schid)
                __field(int, errno)
                __field(char*, errstr)
        ),
 
        TP_fast_assign(
+               __entry->cssid = schid.cssid;
+               __entry->ssid = schid.ssid;
+               __entry->sch_no = schid.sch_no;
                __entry->fctl = fctl;
-               __entry->schid = schid;
                __entry->errno = errno;
                __entry->errstr = errstr;
        ),
 
-       TP_printk("schid=%x.%x.%04x fctl=%x errno=%d info=%s",
-                 __entry->schid.cssid,
-                 __entry->schid.ssid,
-                 __entry->schid.sch_no,
+       TP_printk("schid=%x.%x.%04x fctl=0x%x errno=%d info=%s",
+                 __entry->cssid,
+                 __entry->ssid,
+                 __entry->sch_no,
                  __entry->fctl,
                  __entry->errno,
                  __entry->errstr)