| /* SPDX-License-Identifier: GPL-2.0 */ |
| /* Tracepoints for vfio_ccw driver |
| * |
| * Copyright IBM Corp. 2018 |
| * |
| * Author(s): Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> |
| * Halil Pasic <pasic@linux.vnet.ibm.com> |
| */ |
| |
| #include "cio.h" |
| |
| #undef TRACE_SYSTEM |
| #define TRACE_SYSTEM vfio_ccw |
| |
| #if !defined(_VFIO_CCW_TRACE_) || defined(TRACE_HEADER_MULTI_READ) |
| #define _VFIO_CCW_TRACE_ |
| |
| #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, |
| 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=0x%x 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), |
| |
| 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_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(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->errno = errno; |
| __entry->errstr = errstr; |
| ), |
| |
| 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) |
| ); |
| |
| #endif /* _VFIO_CCW_TRACE_ */ |
| |
| /* This part must be outside protection */ |
| |
| #undef TRACE_INCLUDE_PATH |
| #define TRACE_INCLUDE_PATH . |
| #undef TRACE_INCLUDE_FILE |
| #define TRACE_INCLUDE_FILE vfio_ccw_trace |
| |
| #include <trace/define_trace.h> |