1dbaf1002SNishad Kamdar /* SPDX-License-Identifier: GPL-2.0 */ 2dbaf1002SNishad Kamdar /* Tracepoints for vfio_ccw driver 33cd90214SHalil Pasic * 43cd90214SHalil Pasic * Copyright IBM Corp. 2018 53cd90214SHalil Pasic * 63cd90214SHalil Pasic * Author(s): Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> 73cd90214SHalil Pasic * Halil Pasic <pasic@linux.vnet.ibm.com> 83cd90214SHalil Pasic */ 93cd90214SHalil Pasic 107af52ccaSEric Farman #include "cio.h" 117af52ccaSEric Farman 123cd90214SHalil Pasic #undef TRACE_SYSTEM 133cd90214SHalil Pasic #define TRACE_SYSTEM vfio_ccw 143cd90214SHalil Pasic 153cd90214SHalil Pasic #if !defined(_VFIO_CCW_TRACE_) || defined(TRACE_HEADER_MULTI_READ) 163cd90214SHalil Pasic #define _VFIO_CCW_TRACE_ 173cd90214SHalil Pasic 183cd90214SHalil Pasic #include <linux/tracepoint.h> 193cd90214SHalil Pasic 20b2dd9a44SEric Farman TRACE_EVENT(vfio_ccw_chp_event, 21b2dd9a44SEric Farman TP_PROTO(struct subchannel_id schid, 22b2dd9a44SEric Farman int mask, 23b2dd9a44SEric Farman int event), 24b2dd9a44SEric Farman TP_ARGS(schid, mask, event), 25b2dd9a44SEric Farman 26b2dd9a44SEric Farman TP_STRUCT__entry( 27b2dd9a44SEric Farman __field(u8, cssid) 28b2dd9a44SEric Farman __field(u8, ssid) 29b2dd9a44SEric Farman __field(u16, sch_no) 30b2dd9a44SEric Farman __field(int, mask) 31b2dd9a44SEric Farman __field(int, event) 32b2dd9a44SEric Farman ), 33b2dd9a44SEric Farman 34b2dd9a44SEric Farman TP_fast_assign( 35b2dd9a44SEric Farman __entry->cssid = schid.cssid; 36b2dd9a44SEric Farman __entry->ssid = schid.ssid; 37b2dd9a44SEric Farman __entry->sch_no = schid.sch_no; 38b2dd9a44SEric Farman __entry->mask = mask; 39b2dd9a44SEric Farman __entry->event = event; 40b2dd9a44SEric Farman ), 41b2dd9a44SEric Farman 42b2dd9a44SEric Farman TP_printk("schid=%x.%x.%04x mask=0x%x event=%d", 43b2dd9a44SEric Farman __entry->cssid, 44b2dd9a44SEric Farman __entry->ssid, 45b2dd9a44SEric Farman __entry->sch_no, 46b2dd9a44SEric Farman __entry->mask, 47b2dd9a44SEric Farman __entry->event) 48b2dd9a44SEric Farman ); 49b2dd9a44SEric Farman 50d5950b02SEric Farman TRACE_EVENT(vfio_ccw_fsm_async_request, 51d5950b02SEric Farman TP_PROTO(struct subchannel_id schid, 52d5950b02SEric Farman int command, 53d5950b02SEric Farman int errno), 54d5950b02SEric Farman TP_ARGS(schid, command, errno), 55d5950b02SEric Farman 56d5950b02SEric Farman TP_STRUCT__entry( 57d5950b02SEric Farman __field(u8, cssid) 58d5950b02SEric Farman __field(u8, ssid) 59d5950b02SEric Farman __field(u16, sch_no) 60d5950b02SEric Farman __field(int, command) 61d5950b02SEric Farman __field(int, errno) 62d5950b02SEric Farman ), 63d5950b02SEric Farman 64d5950b02SEric Farman TP_fast_assign( 65d5950b02SEric Farman __entry->cssid = schid.cssid; 66d5950b02SEric Farman __entry->ssid = schid.ssid; 67d5950b02SEric Farman __entry->sch_no = schid.sch_no; 68d5950b02SEric Farman __entry->command = command; 69d5950b02SEric Farman __entry->errno = errno; 70d5950b02SEric Farman ), 71d5950b02SEric Farman 72d5950b02SEric Farman TP_printk("schid=%x.%x.%04x command=0x%x errno=%d", 73d5950b02SEric Farman __entry->cssid, 74d5950b02SEric Farman __entry->ssid, 75d5950b02SEric Farman __entry->sch_no, 76d5950b02SEric Farman __entry->command, 77d5950b02SEric Farman __entry->errno) 78d5950b02SEric Farman ); 79d5950b02SEric Farman 80970ebeb8SEric Farman TRACE_EVENT(vfio_ccw_fsm_event, 81970ebeb8SEric Farman TP_PROTO(struct subchannel_id schid, int state, int event), 82970ebeb8SEric Farman TP_ARGS(schid, state, event), 83970ebeb8SEric Farman 84970ebeb8SEric Farman TP_STRUCT__entry( 85970ebeb8SEric Farman __field(u8, cssid) 86970ebeb8SEric Farman __field(u8, ssid) 87970ebeb8SEric Farman __field(u16, schno) 88970ebeb8SEric Farman __field(int, state) 89970ebeb8SEric Farman __field(int, event) 90970ebeb8SEric Farman ), 91970ebeb8SEric Farman 92970ebeb8SEric Farman TP_fast_assign( 93970ebeb8SEric Farman __entry->cssid = schid.cssid; 94970ebeb8SEric Farman __entry->ssid = schid.ssid; 95970ebeb8SEric Farman __entry->schno = schid.sch_no; 96970ebeb8SEric Farman __entry->state = state; 97970ebeb8SEric Farman __entry->event = event; 98970ebeb8SEric Farman ), 99970ebeb8SEric Farman 100970ebeb8SEric Farman TP_printk("schid=%x.%x.%04x state=%d event=%d", 101970ebeb8SEric Farman __entry->cssid, __entry->ssid, __entry->schno, 102970ebeb8SEric Farman __entry->state, 103970ebeb8SEric Farman __entry->event) 104970ebeb8SEric Farman ); 105970ebeb8SEric Farman 10685298880SEric Farman TRACE_EVENT(vfio_ccw_fsm_io_request, 1073cd90214SHalil Pasic TP_PROTO(int fctl, struct subchannel_id schid, int errno, char *errstr), 1083cd90214SHalil Pasic TP_ARGS(fctl, schid, errno, errstr), 1093cd90214SHalil Pasic 1103cd90214SHalil Pasic TP_STRUCT__entry( 11185298880SEric Farman __field(u8, cssid) 11285298880SEric Farman __field(u8, ssid) 11385298880SEric Farman __field(u16, sch_no) 1143cd90214SHalil Pasic __field(int, fctl) 1153cd90214SHalil Pasic __field(int, errno) 1163cd90214SHalil Pasic __field(char*, errstr) 1173cd90214SHalil Pasic ), 1183cd90214SHalil Pasic 1193cd90214SHalil Pasic TP_fast_assign( 12085298880SEric Farman __entry->cssid = schid.cssid; 12185298880SEric Farman __entry->ssid = schid.ssid; 12285298880SEric Farman __entry->sch_no = schid.sch_no; 1233cd90214SHalil Pasic __entry->fctl = fctl; 1243cd90214SHalil Pasic __entry->errno = errno; 1253cd90214SHalil Pasic __entry->errstr = errstr; 1263cd90214SHalil Pasic ), 1273cd90214SHalil Pasic 12885298880SEric Farman TP_printk("schid=%x.%x.%04x fctl=0x%x errno=%d info=%s", 12985298880SEric Farman __entry->cssid, 13085298880SEric Farman __entry->ssid, 13185298880SEric Farman __entry->sch_no, 1323cd90214SHalil Pasic __entry->fctl, 1333cd90214SHalil Pasic __entry->errno, 1343cd90214SHalil Pasic __entry->errstr) 1353cd90214SHalil Pasic ); 1363cd90214SHalil Pasic 1373cd90214SHalil Pasic #endif /* _VFIO_CCW_TRACE_ */ 1383cd90214SHalil Pasic 1393cd90214SHalil Pasic /* This part must be outside protection */ 1403cd90214SHalil Pasic 1413cd90214SHalil Pasic #undef TRACE_INCLUDE_PATH 1423cd90214SHalil Pasic #define TRACE_INCLUDE_PATH . 1433cd90214SHalil Pasic #undef TRACE_INCLUDE_FILE 1443cd90214SHalil Pasic #define TRACE_INCLUDE_FILE vfio_ccw_trace 1453cd90214SHalil Pasic 1463cd90214SHalil Pasic #include <trace/define_trace.h> 147