Commit 85298880 authored by Eric Farman's avatar Eric Farman Committed by Cornelia Huck
Browse files

vfio-ccw: Rework the io_fctl trace



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: default avatarEric Farman <farman@linux.ibm.com>
Reviewed-by: default avatarCornelia Huck <cohuck@redhat.com>
Message-Id: <20191016142040.14132-5-farman@linux.ibm.com>
Acked-by: default avatarHalil Pasic <pasic@linux.ibm.com>
Signed-off-by: default avatarCornelia Huck <cohuck@redhat.com>
parent d5950b02
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -318,7 +318,7 @@ static void fsm_io_request(struct vfio_ccw_private *private,
	}

err_out:
	trace_vfio_ccw_io_fctl(scsw->cmd.fctl, schid,
	trace_vfio_ccw_fsm_io_request(scsw->cmd.fctl, schid,
				      io_region->ret_code, errstr);
}

+1 −1
Original line number Diff line number Diff line
@@ -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);
+11 −7
Original line number Diff line number Diff line
@@ -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)