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_chp_event, |
21 | TP_PROTO(struct subchannel_id schid, |
22 | int mask, |
23 | int event), |
24 | TP_ARGS(schid, mask, event), |
25 | |
26 | TP_STRUCT__entry( |
27 | __field(u8, cssid) |
28 | __field(u8, ssid) |
29 | __field(u16, sch_no) |
30 | __field(int, mask) |
31 | __field(int, event) |
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->mask = mask; |
39 | __entry->event = event; |
40 | ), |
41 | |
42 | TP_printk("schid=%x.%x.%04x mask=0x%x event=%d" , |
43 | __entry->cssid, |
44 | __entry->ssid, |
45 | __entry->sch_no, |
46 | __entry->mask, |
47 | __entry->event) |
48 | ); |
49 | |
50 | TRACE_EVENT(vfio_ccw_fsm_async_request, |
51 | TP_PROTO(struct subchannel_id schid, |
52 | int command, |
53 | int errno), |
54 | TP_ARGS(schid, command, errno), |
55 | |
56 | TP_STRUCT__entry( |
57 | __field(u8, cssid) |
58 | __field(u8, ssid) |
59 | __field(u16, sch_no) |
60 | __field(int, command) |
61 | __field(int, errno) |
62 | ), |
63 | |
64 | TP_fast_assign( |
65 | __entry->cssid = schid.cssid; |
66 | __entry->ssid = schid.ssid; |
67 | __entry->sch_no = schid.sch_no; |
68 | __entry->command = command; |
69 | __entry->errno = errno; |
70 | ), |
71 | |
72 | TP_printk("schid=%x.%x.%04x command=0x%x errno=%d" , |
73 | __entry->cssid, |
74 | __entry->ssid, |
75 | __entry->sch_no, |
76 | __entry->command, |
77 | __entry->errno) |
78 | ); |
79 | |
80 | TRACE_EVENT(vfio_ccw_fsm_event, |
81 | TP_PROTO(struct subchannel_id schid, int state, int event), |
82 | TP_ARGS(schid, state, event), |
83 | |
84 | TP_STRUCT__entry( |
85 | __field(u8, cssid) |
86 | __field(u8, ssid) |
87 | __field(u16, schno) |
88 | __field(int, state) |
89 | __field(int, event) |
90 | ), |
91 | |
92 | TP_fast_assign( |
93 | __entry->cssid = schid.cssid; |
94 | __entry->ssid = schid.ssid; |
95 | __entry->schno = schid.sch_no; |
96 | __entry->state = state; |
97 | __entry->event = event; |
98 | ), |
99 | |
100 | TP_printk("schid=%x.%x.%04x state=%d event=%d" , |
101 | __entry->cssid, __entry->ssid, __entry->schno, |
102 | __entry->state, |
103 | __entry->event) |
104 | ); |
105 | |
106 | TRACE_EVENT(vfio_ccw_fsm_io_request, |
107 | TP_PROTO(int fctl, struct subchannel_id schid, int errno, char *errstr), |
108 | TP_ARGS(fctl, schid, errno, errstr), |
109 | |
110 | TP_STRUCT__entry( |
111 | __field(u8, cssid) |
112 | __field(u8, ssid) |
113 | __field(u16, sch_no) |
114 | __field(int, fctl) |
115 | __field(int, errno) |
116 | __field(char*, errstr) |
117 | ), |
118 | |
119 | TP_fast_assign( |
120 | __entry->cssid = schid.cssid; |
121 | __entry->ssid = schid.ssid; |
122 | __entry->sch_no = schid.sch_no; |
123 | __entry->fctl = fctl; |
124 | __entry->errno = errno; |
125 | __entry->errstr = errstr; |
126 | ), |
127 | |
128 | TP_printk("schid=%x.%x.%04x fctl=0x%x errno=%d info=%s" , |
129 | __entry->cssid, |
130 | __entry->ssid, |
131 | __entry->sch_no, |
132 | __entry->fctl, |
133 | __entry->errno, |
134 | __entry->errstr) |
135 | ); |
136 | |
137 | #endif /* _VFIO_CCW_TRACE_ */ |
138 | |
139 | /* This part must be outside protection */ |
140 | |
141 | #undef TRACE_INCLUDE_PATH |
142 | #define TRACE_INCLUDE_PATH . |
143 | #undef TRACE_INCLUDE_FILE |
144 | #define TRACE_INCLUDE_FILE vfio_ccw_trace |
145 | |
146 | #include <trace/define_trace.h> |
147 | |