1 /* SPDX-License-Identifier: GPL-2.0 2 * Tracepoints for vfio_ccw driver 3 * 4 * Copyright IBM Corp. 2018 5 * 6 * Author(s): Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> 7 * Halil Pasic <pasic@linux.vnet.ibm.com> 8 */ 9 10 #include "cio.h" 11 12 #undef TRACE_SYSTEM 13 #define TRACE_SYSTEM vfio_ccw 14 15 #if !defined(_VFIO_CCW_TRACE_) || defined(TRACE_HEADER_MULTI_READ) 16 #define _VFIO_CCW_TRACE_ 17 18 #include <linux/tracepoint.h> 19 20 TRACE_EVENT(vfio_ccw_fsm_async_request, 21 TP_PROTO(struct subchannel_id schid, 22 int command, 23 int errno), 24 TP_ARGS(schid, command, errno), 25 26 TP_STRUCT__entry( 27 __field(u8, cssid) 28 __field(u8, ssid) 29 __field(u16, sch_no) 30 __field(int, command) 31 __field(int, errno) 32 ), 33 34 TP_fast_assign( 35 __entry->cssid = schid.cssid; 36 __entry->ssid = schid.ssid; 37 __entry->sch_no = schid.sch_no; 38 __entry->command = command; 39 __entry->errno = errno; 40 ), 41 42 TP_printk("schid=%x.%x.%04x command=0x%x errno=%d", 43 __entry->cssid, 44 __entry->ssid, 45 __entry->sch_no, 46 __entry->command, 47 __entry->errno) 48 ); 49 50 TRACE_EVENT(vfio_ccw_fsm_event, 51 TP_PROTO(struct subchannel_id schid, int state, int event), 52 TP_ARGS(schid, state, event), 53 54 TP_STRUCT__entry( 55 __field(u8, cssid) 56 __field(u8, ssid) 57 __field(u16, schno) 58 __field(int, state) 59 __field(int, event) 60 ), 61 62 TP_fast_assign( 63 __entry->cssid = schid.cssid; 64 __entry->ssid = schid.ssid; 65 __entry->schno = schid.sch_no; 66 __entry->state = state; 67 __entry->event = event; 68 ), 69 70 TP_printk("schid=%x.%x.%04x state=%d event=%d", 71 __entry->cssid, __entry->ssid, __entry->schno, 72 __entry->state, 73 __entry->event) 74 ); 75 76 TRACE_EVENT(vfio_ccw_fsm_io_request, 77 TP_PROTO(int fctl, struct subchannel_id schid, int errno, char *errstr), 78 TP_ARGS(fctl, schid, errno, errstr), 79 80 TP_STRUCT__entry( 81 __field(u8, cssid) 82 __field(u8, ssid) 83 __field(u16, sch_no) 84 __field(int, fctl) 85 __field(int, errno) 86 __field(char*, errstr) 87 ), 88 89 TP_fast_assign( 90 __entry->cssid = schid.cssid; 91 __entry->ssid = schid.ssid; 92 __entry->sch_no = schid.sch_no; 93 __entry->fctl = fctl; 94 __entry->errno = errno; 95 __entry->errstr = errstr; 96 ), 97 98 TP_printk("schid=%x.%x.%04x fctl=0x%x errno=%d info=%s", 99 __entry->cssid, 100 __entry->ssid, 101 __entry->sch_no, 102 __entry->fctl, 103 __entry->errno, 104 __entry->errstr) 105 ); 106 107 #endif /* _VFIO_CCW_TRACE_ */ 108 109 /* This part must be outside protection */ 110 111 #undef TRACE_INCLUDE_PATH 112 #define TRACE_INCLUDE_PATH . 113 #undef TRACE_INCLUDE_FILE 114 #define TRACE_INCLUDE_FILE vfio_ccw_trace 115 116 #include <trace/define_trace.h> 117