/* 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>