1 | /* SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) */ |
2 | /* |
3 | * Copyright(c) 2018 Intel Corporation. |
4 | * |
5 | */ |
6 | #if !defined(__HFI1_TRACE_IOWAIT_H) || defined(TRACE_HEADER_MULTI_READ) |
7 | #define __HFI1_TRACE_IOWAIT_H |
8 | |
9 | #include <linux/tracepoint.h> |
10 | #include "iowait.h" |
11 | #include "verbs.h" |
12 | |
13 | #undef TRACE_SYSTEM |
14 | #define TRACE_SYSTEM hfi1_iowait |
15 | |
16 | DECLARE_EVENT_CLASS(hfi1_iowait_template, |
17 | TP_PROTO(struct iowait *wait, u32 flag), |
18 | TP_ARGS(wait, flag), |
19 | TP_STRUCT__entry(/* entry */ |
20 | __field(unsigned long, addr) |
21 | __field(unsigned long, flags) |
22 | __field(u32, flag) |
23 | __field(u32, qpn) |
24 | ), |
25 | TP_fast_assign(/* assign */ |
26 | __entry->addr = (unsigned long)wait; |
27 | __entry->flags = wait->flags; |
28 | __entry->flag = (1 << flag); |
29 | __entry->qpn = iowait_to_qp(wait)->ibqp.qp_num; |
30 | ), |
31 | TP_printk(/* print */ |
32 | "iowait 0x%lx qp %u flags 0x%lx flag 0x%x" , |
33 | __entry->addr, |
34 | __entry->qpn, |
35 | __entry->flags, |
36 | __entry->flag |
37 | ) |
38 | ); |
39 | |
40 | DEFINE_EVENT(hfi1_iowait_template, hfi1_iowait_set, |
41 | TP_PROTO(struct iowait *wait, u32 flag), |
42 | TP_ARGS(wait, flag)); |
43 | |
44 | DEFINE_EVENT(hfi1_iowait_template, hfi1_iowait_clear, |
45 | TP_PROTO(struct iowait *wait, u32 flag), |
46 | TP_ARGS(wait, flag)); |
47 | |
48 | #endif /* __HFI1_TRACE_IOWAIT_H */ |
49 | |
50 | #undef TRACE_INCLUDE_PATH |
51 | #undef TRACE_INCLUDE_FILE |
52 | #define TRACE_INCLUDE_PATH . |
53 | #define TRACE_INCLUDE_FILE trace_iowait |
54 | #include <trace/define_trace.h> |
55 | |