Message ID | 20191016015822.72425-4-farman@linux.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | vfio-ccw: A couple trace changes | expand |
On Wed, 16 Oct 2019 03:58:21 +0200 Eric Farman <farman@linux.ibm.com> wrote: > Since the asynchronous requests are typically associated with > error recovery, let's add a simple trace when one of those is > issued to a device. > > Signed-off-by: Eric Farman <farman@linux.ibm.com> > --- > drivers/s390/cio/vfio_ccw_fsm.c | 4 ++++ > drivers/s390/cio/vfio_ccw_trace.c | 1 + > drivers/s390/cio/vfio_ccw_trace.h | 30 ++++++++++++++++++++++++++++++ > 3 files changed, 35 insertions(+) (...) > diff --git a/drivers/s390/cio/vfio_ccw_trace.h b/drivers/s390/cio/vfio_ccw_trace.h > index 5005d57901b4..23b288eb53dc 100644 > --- a/drivers/s390/cio/vfio_ccw_trace.h > +++ b/drivers/s390/cio/vfio_ccw_trace.h > @@ -17,6 +17,36 @@ > > #include <linux/tracepoint.h> > > +TRACE_EVENT(vfio_ccw_fsm_async_request, > + TP_PROTO(struct subchannel_id schid, > + int command, > + int errno), > + TP_ARGS(schid, command, errno), > + > + TP_STRUCT__entry( > + __field(u8, cssid) > + __field(u8, ssid) > + __field(u16, sch_no) > + __field(int, command) > + __field(int, errno) > + ), > + > + TP_fast_assign( > + __entry->cssid = schid.cssid; > + __entry->ssid = schid.ssid; > + __entry->sch_no = schid.sch_no; > + __entry->command = command; > + __entry->errno = errno; > + ), > + > + TP_printk("schid=%x.%x.%04x command=%d errno=%d", I'd probably rather print the command as a hex value. > + __entry->cssid, > + __entry->ssid, > + __entry->sch_no, > + __entry->command, > + __entry->errno) > +); > + > TRACE_EVENT(vfio_ccw_fsm_event, > TP_PROTO(struct subchannel_id schid, int state, int event), > TP_ARGS(schid, state, event),
On 10/16/19 6:15 AM, Cornelia Huck wrote: > On Wed, 16 Oct 2019 03:58:21 +0200 > Eric Farman <farman@linux.ibm.com> wrote: > >> Since the asynchronous requests are typically associated with >> error recovery, let's add a simple trace when one of those is >> issued to a device. >> >> Signed-off-by: Eric Farman <farman@linux.ibm.com> >> --- >> drivers/s390/cio/vfio_ccw_fsm.c | 4 ++++ >> drivers/s390/cio/vfio_ccw_trace.c | 1 + >> drivers/s390/cio/vfio_ccw_trace.h | 30 ++++++++++++++++++++++++++++++ >> 3 files changed, 35 insertions(+) > > (...) > >> diff --git a/drivers/s390/cio/vfio_ccw_trace.h b/drivers/s390/cio/vfio_ccw_trace.h >> index 5005d57901b4..23b288eb53dc 100644 >> --- a/drivers/s390/cio/vfio_ccw_trace.h >> +++ b/drivers/s390/cio/vfio_ccw_trace.h >> @@ -17,6 +17,36 @@ >> >> #include <linux/tracepoint.h> >> >> +TRACE_EVENT(vfio_ccw_fsm_async_request, >> + TP_PROTO(struct subchannel_id schid, >> + int command, >> + int errno), >> + TP_ARGS(schid, command, errno), >> + >> + TP_STRUCT__entry( >> + __field(u8, cssid) >> + __field(u8, ssid) >> + __field(u16, sch_no) >> + __field(int, command) >> + __field(int, errno) >> + ), >> + >> + TP_fast_assign( >> + __entry->cssid = schid.cssid; >> + __entry->ssid = schid.ssid; >> + __entry->sch_no = schid.sch_no; >> + __entry->command = command; >> + __entry->errno = errno; >> + ), >> + >> + TP_printk("schid=%x.%x.%04x command=%d errno=%d", > > I'd probably rather print the command as a hex value. I'm fine with that too. Want me to send an update? > >> + __entry->cssid, >> + __entry->ssid, >> + __entry->sch_no, >> + __entry->command, >> + __entry->errno) >> +); >> + >> TRACE_EVENT(vfio_ccw_fsm_event, >> TP_PROTO(struct subchannel_id schid, int state, int event), >> TP_ARGS(schid, state, event), >
On Wed, 16 Oct 2019 07:36:09 -0400 Eric Farman <farman@linux.ibm.com> wrote: > On 10/16/19 6:15 AM, Cornelia Huck wrote: > > On Wed, 16 Oct 2019 03:58:21 +0200 > > Eric Farman <farman@linux.ibm.com> wrote: > > > >> Since the asynchronous requests are typically associated with > >> error recovery, let's add a simple trace when one of those is > >> issued to a device. > >> > >> Signed-off-by: Eric Farman <farman@linux.ibm.com> > >> --- > >> drivers/s390/cio/vfio_ccw_fsm.c | 4 ++++ > >> drivers/s390/cio/vfio_ccw_trace.c | 1 + > >> drivers/s390/cio/vfio_ccw_trace.h | 30 ++++++++++++++++++++++++++++++ > >> 3 files changed, 35 insertions(+) > > > > (...) > > > >> diff --git a/drivers/s390/cio/vfio_ccw_trace.h b/drivers/s390/cio/vfio_ccw_trace.h > >> index 5005d57901b4..23b288eb53dc 100644 > >> --- a/drivers/s390/cio/vfio_ccw_trace.h > >> +++ b/drivers/s390/cio/vfio_ccw_trace.h > >> @@ -17,6 +17,36 @@ > >> > >> #include <linux/tracepoint.h> > >> > >> +TRACE_EVENT(vfio_ccw_fsm_async_request, > >> + TP_PROTO(struct subchannel_id schid, > >> + int command, > >> + int errno), > >> + TP_ARGS(schid, command, errno), > >> + > >> + TP_STRUCT__entry( > >> + __field(u8, cssid) > >> + __field(u8, ssid) > >> + __field(u16, sch_no) > >> + __field(int, command) > >> + __field(int, errno) > >> + ), > >> + > >> + TP_fast_assign( > >> + __entry->cssid = schid.cssid; > >> + __entry->ssid = schid.ssid; > >> + __entry->sch_no = schid.sch_no; > >> + __entry->command = command; > >> + __entry->errno = errno; > >> + ), > >> + > >> + TP_printk("schid=%x.%x.%04x command=%d errno=%d", > > > > I'd probably rather print the command as a hex value. > > I'm fine with that too. Want me to send an update? I think that would be the easiest way. > > > > >> + __entry->cssid, > >> + __entry->ssid, > >> + __entry->sch_no, > >> + __entry->command, > >> + __entry->errno) > >> +); > >> + > >> TRACE_EVENT(vfio_ccw_fsm_event, > >> TP_PROTO(struct subchannel_id schid, int state, int event), > >> TP_ARGS(schid, state, event), > >
On 10/16/19 7:39 AM, Cornelia Huck wrote: > On Wed, 16 Oct 2019 07:36:09 -0400 > Eric Farman <farman@linux.ibm.com> wrote: > >> On 10/16/19 6:15 AM, Cornelia Huck wrote: >>> On Wed, 16 Oct 2019 03:58:21 +0200 >>> Eric Farman <farman@linux.ibm.com> wrote: >>> >>>> Since the asynchronous requests are typically associated with >>>> error recovery, let's add a simple trace when one of those is >>>> issued to a device. >>>> >>>> Signed-off-by: Eric Farman <farman@linux.ibm.com> >>>> --- >>>> drivers/s390/cio/vfio_ccw_fsm.c | 4 ++++ >>>> drivers/s390/cio/vfio_ccw_trace.c | 1 + >>>> drivers/s390/cio/vfio_ccw_trace.h | 30 ++++++++++++++++++++++++++++++ >>>> 3 files changed, 35 insertions(+) >>> >>> (...) >>> >>>> diff --git a/drivers/s390/cio/vfio_ccw_trace.h b/drivers/s390/cio/vfio_ccw_trace.h >>>> index 5005d57901b4..23b288eb53dc 100644 >>>> --- a/drivers/s390/cio/vfio_ccw_trace.h >>>> +++ b/drivers/s390/cio/vfio_ccw_trace.h >>>> @@ -17,6 +17,36 @@ >>>> >>>> #include <linux/tracepoint.h> >>>> >>>> +TRACE_EVENT(vfio_ccw_fsm_async_request, >>>> + TP_PROTO(struct subchannel_id schid, >>>> + int command, >>>> + int errno), >>>> + TP_ARGS(schid, command, errno), >>>> + >>>> + TP_STRUCT__entry( >>>> + __field(u8, cssid) >>>> + __field(u8, ssid) >>>> + __field(u16, sch_no) >>>> + __field(int, command) >>>> + __field(int, errno) >>>> + ), >>>> + >>>> + TP_fast_assign( >>>> + __entry->cssid = schid.cssid; >>>> + __entry->ssid = schid.ssid; >>>> + __entry->sch_no = schid.sch_no; >>>> + __entry->command = command; >>>> + __entry->errno = errno; >>>> + ), >>>> + >>>> + TP_printk("schid=%x.%x.%04x command=%d errno=%d", >>> >>> I'd probably rather print the command as a hex value. >> >> I'm fine with that too. Want me to send an update? > > I think that would be the easiest way. Will do. Thanks for the reviews on the other ones! - Eric > >> >>> >>>> + __entry->cssid, >>>> + __entry->ssid, >>>> + __entry->sch_no, >>>> + __entry->command, >>>> + __entry->errno) >>>> +); >>>> + >>>> TRACE_EVENT(vfio_ccw_fsm_event, >>>> TP_PROTO(struct subchannel_id schid, int state, int event), >>>> TP_ARGS(schid, state, event), >>> >
diff --git a/drivers/s390/cio/vfio_ccw_fsm.c b/drivers/s390/cio/vfio_ccw_fsm.c index d4119e4c4a8c..23648a9aa721 100644 --- a/drivers/s390/cio/vfio_ccw_fsm.c +++ b/drivers/s390/cio/vfio_ccw_fsm.c @@ -341,6 +341,10 @@ static void fsm_async_request(struct vfio_ccw_private *private, /* should not happen? */ cmd_region->ret_code = -EINVAL; } + + trace_vfio_ccw_fsm_async_request(get_schid(private), + cmd_region->command, + cmd_region->ret_code); } /* diff --git a/drivers/s390/cio/vfio_ccw_trace.c b/drivers/s390/cio/vfio_ccw_trace.c index b37bc68e7f18..37ecbf8be805 100644 --- a/drivers/s390/cio/vfio_ccw_trace.c +++ b/drivers/s390/cio/vfio_ccw_trace.c @@ -9,5 +9,6 @@ #define CREATE_TRACE_POINTS #include "vfio_ccw_trace.h" +EXPORT_TRACEPOINT_SYMBOL(vfio_ccw_fsm_async_request); EXPORT_TRACEPOINT_SYMBOL(vfio_ccw_fsm_event); EXPORT_TRACEPOINT_SYMBOL(vfio_ccw_io_fctl); diff --git a/drivers/s390/cio/vfio_ccw_trace.h b/drivers/s390/cio/vfio_ccw_trace.h index 5005d57901b4..23b288eb53dc 100644 --- a/drivers/s390/cio/vfio_ccw_trace.h +++ b/drivers/s390/cio/vfio_ccw_trace.h @@ -17,6 +17,36 @@ #include <linux/tracepoint.h> +TRACE_EVENT(vfio_ccw_fsm_async_request, + TP_PROTO(struct subchannel_id schid, + int command, + int errno), + TP_ARGS(schid, command, errno), + + TP_STRUCT__entry( + __field(u8, cssid) + __field(u8, ssid) + __field(u16, sch_no) + __field(int, command) + __field(int, errno) + ), + + TP_fast_assign( + __entry->cssid = schid.cssid; + __entry->ssid = schid.ssid; + __entry->sch_no = schid.sch_no; + __entry->command = command; + __entry->errno = errno; + ), + + TP_printk("schid=%x.%x.%04x command=%d errno=%d", + __entry->cssid, + __entry->ssid, + __entry->sch_no, + __entry->command, + __entry->errno) +); + TRACE_EVENT(vfio_ccw_fsm_event, TP_PROTO(struct subchannel_id schid, int state, int event), TP_ARGS(schid, state, event),
Since the asynchronous requests are typically associated with error recovery, let's add a simple trace when one of those is issued to a device. Signed-off-by: Eric Farman <farman@linux.ibm.com> --- drivers/s390/cio/vfio_ccw_fsm.c | 4 ++++ drivers/s390/cio/vfio_ccw_trace.c | 1 + drivers/s390/cio/vfio_ccw_trace.h | 30 ++++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+)