| /* SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) */ |
| /* |
| * Copyright(c) 2018 Intel Corporation. |
| * |
| */ |
| #if !defined(__HFI1_TRACE_IOWAIT_H) || defined(TRACE_HEADER_MULTI_READ) |
| #define __HFI1_TRACE_IOWAIT_H |
| |
| #include <linux/tracepoint.h> |
| #include "iowait.h" |
| #include "verbs.h" |
| |
| #undef TRACE_SYSTEM |
| #define TRACE_SYSTEM hfi1_iowait |
| |
| DECLARE_EVENT_CLASS(hfi1_iowait_template, |
| TP_PROTO(struct iowait *wait, u32 flag), |
| TP_ARGS(wait, flag), |
| TP_STRUCT__entry(/* entry */ |
| __field(unsigned long, addr) |
| __field(unsigned long, flags) |
| __field(u32, flag) |
| __field(u32, qpn) |
| ), |
| TP_fast_assign(/* assign */ |
| __entry->addr = (unsigned long)wait; |
| __entry->flags = wait->flags; |
| __entry->flag = (1 << flag); |
| __entry->qpn = iowait_to_qp(wait)->ibqp.qp_num; |
| ), |
| TP_printk(/* print */ |
| "iowait 0x%lx qp %u flags 0x%lx flag 0x%x", |
| __entry->addr, |
| __entry->qpn, |
| __entry->flags, |
| __entry->flag |
| ) |
| ); |
| |
| DEFINE_EVENT(hfi1_iowait_template, hfi1_iowait_set, |
| TP_PROTO(struct iowait *wait, u32 flag), |
| TP_ARGS(wait, flag)); |
| |
| DEFINE_EVENT(hfi1_iowait_template, hfi1_iowait_clear, |
| TP_PROTO(struct iowait *wait, u32 flag), |
| TP_ARGS(wait, flag)); |
| |
| #endif /* __HFI1_TRACE_IOWAIT_H */ |
| |
| #undef TRACE_INCLUDE_PATH |
| #undef TRACE_INCLUDE_FILE |
| #define TRACE_INCLUDE_PATH . |
| #define TRACE_INCLUDE_FILE trace_iowait |
| #include <trace/define_trace.h> |