Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) */
0002 /*
0003  * Copyright(c) 2018 Intel Corporation.
0004  *
0005  */
0006 #if !defined(__HFI1_TRACE_IOWAIT_H) || defined(TRACE_HEADER_MULTI_READ)
0007 #define __HFI1_TRACE_IOWAIT_H
0008 
0009 #include <linux/tracepoint.h>
0010 #include "iowait.h"
0011 #include "verbs.h"
0012 
0013 #undef TRACE_SYSTEM
0014 #define TRACE_SYSTEM hfi1_iowait
0015 
0016 DECLARE_EVENT_CLASS(hfi1_iowait_template,
0017             TP_PROTO(struct iowait *wait, u32 flag),
0018             TP_ARGS(wait, flag),
0019             TP_STRUCT__entry(/* entry */
0020                 __field(unsigned long, addr)
0021                 __field(unsigned long, flags)
0022                 __field(u32, flag)
0023                 __field(u32, qpn)
0024                 ),
0025             TP_fast_assign(/* assign */
0026                 __entry->addr = (unsigned long)wait;
0027                 __entry->flags = wait->flags;
0028                 __entry->flag = (1 << flag);
0029                 __entry->qpn = iowait_to_qp(wait)->ibqp.qp_num;
0030                 ),
0031             TP_printk(/* print */
0032                 "iowait 0x%lx qp %u flags 0x%lx flag 0x%x",
0033                 __entry->addr,
0034                 __entry->qpn,
0035                 __entry->flags,
0036                 __entry->flag
0037                 )
0038     );
0039 
0040 DEFINE_EVENT(hfi1_iowait_template, hfi1_iowait_set,
0041          TP_PROTO(struct iowait *wait, u32 flag),
0042          TP_ARGS(wait, flag));
0043 
0044 DEFINE_EVENT(hfi1_iowait_template, hfi1_iowait_clear,
0045          TP_PROTO(struct iowait *wait, u32 flag),
0046          TP_ARGS(wait, flag));
0047 
0048 #endif /* __HFI1_TRACE_IOWAIT_H */
0049 
0050 #undef TRACE_INCLUDE_PATH
0051 #undef TRACE_INCLUDE_FILE
0052 #define TRACE_INCLUDE_PATH .
0053 #define TRACE_INCLUDE_FILE trace_iowait
0054 #include <trace/define_trace.h>