175874b3dSChuck Lever /* SPDX-License-Identifier: GPL-2.0-only */ 275874b3dSChuck Lever /* 375874b3dSChuck Lever * Trace point definitions for the RDMA Connect Manager. 475874b3dSChuck Lever * 575874b3dSChuck Lever * Author: Chuck Lever <chuck.lever@oracle.com> 675874b3dSChuck Lever * 775874b3dSChuck Lever * Copyright (c) 2020 Oracle and/or its affiliates. 875874b3dSChuck Lever */ 975874b3dSChuck Lever 1075874b3dSChuck Lever #undef TRACE_SYSTEM 1175874b3dSChuck Lever #define TRACE_SYSTEM ib_cma 1275874b3dSChuck Lever 1375874b3dSChuck Lever #if !defined(_TRACE_IB_CMA_H) || defined(TRACE_HEADER_MULTI_READ) 1475874b3dSChuck Lever 1575874b3dSChuck Lever #define _TRACE_IB_CMA_H 1675874b3dSChuck Lever 1775874b3dSChuck Lever #include <linux/tracepoint.h> 1875874b3dSChuck Lever #include <rdma/ib_cm.h> 19*247c01ffSChuck Lever #include <trace/misc/rdma.h> 2075874b3dSChuck Lever 2175874b3dSChuck Lever /* 2275874b3dSChuck Lever * enum ib_cm_state, from include/rdma/ib_cm.h 2375874b3dSChuck Lever */ 2475874b3dSChuck Lever #define IB_CM_STATE_LIST \ 2575874b3dSChuck Lever ib_cm_state(IDLE) \ 2675874b3dSChuck Lever ib_cm_state(LISTEN) \ 2775874b3dSChuck Lever ib_cm_state(REQ_SENT) \ 2875874b3dSChuck Lever ib_cm_state(REQ_RCVD) \ 2975874b3dSChuck Lever ib_cm_state(MRA_REQ_SENT) \ 3075874b3dSChuck Lever ib_cm_state(MRA_REQ_RCVD) \ 3175874b3dSChuck Lever ib_cm_state(REP_SENT) \ 3275874b3dSChuck Lever ib_cm_state(REP_RCVD) \ 3375874b3dSChuck Lever ib_cm_state(MRA_REP_SENT) \ 3475874b3dSChuck Lever ib_cm_state(MRA_REP_RCVD) \ 3575874b3dSChuck Lever ib_cm_state(ESTABLISHED) \ 3675874b3dSChuck Lever ib_cm_state(DREQ_SENT) \ 3775874b3dSChuck Lever ib_cm_state(DREQ_RCVD) \ 3875874b3dSChuck Lever ib_cm_state(TIMEWAIT) \ 3975874b3dSChuck Lever ib_cm_state(SIDR_REQ_SENT) \ 4075874b3dSChuck Lever ib_cm_state_end(SIDR_REQ_RCVD) 4175874b3dSChuck Lever 4275874b3dSChuck Lever #undef ib_cm_state 4375874b3dSChuck Lever #undef ib_cm_state_end 4475874b3dSChuck Lever #define ib_cm_state(x) TRACE_DEFINE_ENUM(IB_CM_##x); 4575874b3dSChuck Lever #define ib_cm_state_end(x) TRACE_DEFINE_ENUM(IB_CM_##x); 4675874b3dSChuck Lever 4775874b3dSChuck Lever IB_CM_STATE_LIST 4875874b3dSChuck Lever 4975874b3dSChuck Lever #undef ib_cm_state 5075874b3dSChuck Lever #undef ib_cm_state_end 5175874b3dSChuck Lever #define ib_cm_state(x) { IB_CM_##x, #x }, 5275874b3dSChuck Lever #define ib_cm_state_end(x) { IB_CM_##x, #x } 5375874b3dSChuck Lever 5475874b3dSChuck Lever #define show_ib_cm_state(x) \ 5575874b3dSChuck Lever __print_symbolic(x, IB_CM_STATE_LIST) 5675874b3dSChuck Lever 5775874b3dSChuck Lever /* 5875874b3dSChuck Lever * enum ib_cm_lap_state, from include/rdma/ib_cm.h 5975874b3dSChuck Lever */ 6075874b3dSChuck Lever #define IB_CM_LAP_STATE_LIST \ 6175874b3dSChuck Lever ib_cm_lap_state(LAP_UNINIT) \ 6275874b3dSChuck Lever ib_cm_lap_state(LAP_IDLE) \ 6375874b3dSChuck Lever ib_cm_lap_state(LAP_SENT) \ 6475874b3dSChuck Lever ib_cm_lap_state(LAP_RCVD) \ 6575874b3dSChuck Lever ib_cm_lap_state(MRA_LAP_SENT) \ 6675874b3dSChuck Lever ib_cm_lap_state_end(MRA_LAP_RCVD) 6775874b3dSChuck Lever 6875874b3dSChuck Lever #undef ib_cm_lap_state 6975874b3dSChuck Lever #undef ib_cm_lap_state_end 7075874b3dSChuck Lever #define ib_cm_lap_state(x) TRACE_DEFINE_ENUM(IB_CM_##x); 7175874b3dSChuck Lever #define ib_cm_lap_state_end(x) TRACE_DEFINE_ENUM(IB_CM_##x); 7275874b3dSChuck Lever 7375874b3dSChuck Lever IB_CM_LAP_STATE_LIST 7475874b3dSChuck Lever 7575874b3dSChuck Lever #undef ib_cm_lap_state 7675874b3dSChuck Lever #undef ib_cm_lap_state_end 7775874b3dSChuck Lever #define ib_cm_lap_state(x) { IB_CM_##x, #x }, 7875874b3dSChuck Lever #define ib_cm_lap_state_end(x) { IB_CM_##x, #x } 7975874b3dSChuck Lever 8075874b3dSChuck Lever #define show_ib_cm_lap_state(x) \ 8175874b3dSChuck Lever __print_symbolic(x, IB_CM_LAP_STATE_LIST) 8275874b3dSChuck Lever 838dc105beSChuck Lever /* 848dc105beSChuck Lever * enum ib_cm_rej_reason, from include/rdma/ib_cm.h 858dc105beSChuck Lever */ 868dc105beSChuck Lever #define IB_CM_REJ_REASON_LIST \ 878dc105beSChuck Lever ib_cm_rej_reason(REJ_NO_QP) \ 888dc105beSChuck Lever ib_cm_rej_reason(REJ_NO_EEC) \ 898dc105beSChuck Lever ib_cm_rej_reason(REJ_NO_RESOURCES) \ 908dc105beSChuck Lever ib_cm_rej_reason(REJ_TIMEOUT) \ 918dc105beSChuck Lever ib_cm_rej_reason(REJ_UNSUPPORTED) \ 928dc105beSChuck Lever ib_cm_rej_reason(REJ_INVALID_COMM_ID) \ 938dc105beSChuck Lever ib_cm_rej_reason(REJ_INVALID_COMM_INSTANCE) \ 948dc105beSChuck Lever ib_cm_rej_reason(REJ_INVALID_SERVICE_ID) \ 958dc105beSChuck Lever ib_cm_rej_reason(REJ_INVALID_TRANSPORT_TYPE) \ 968dc105beSChuck Lever ib_cm_rej_reason(REJ_STALE_CONN) \ 978dc105beSChuck Lever ib_cm_rej_reason(REJ_RDC_NOT_EXIST) \ 988dc105beSChuck Lever ib_cm_rej_reason(REJ_INVALID_GID) \ 998dc105beSChuck Lever ib_cm_rej_reason(REJ_INVALID_LID) \ 1008dc105beSChuck Lever ib_cm_rej_reason(REJ_INVALID_SL) \ 1018dc105beSChuck Lever ib_cm_rej_reason(REJ_INVALID_TRAFFIC_CLASS) \ 1028dc105beSChuck Lever ib_cm_rej_reason(REJ_INVALID_HOP_LIMIT) \ 1038dc105beSChuck Lever ib_cm_rej_reason(REJ_INVALID_PACKET_RATE) \ 1048dc105beSChuck Lever ib_cm_rej_reason(REJ_INVALID_ALT_GID) \ 1058dc105beSChuck Lever ib_cm_rej_reason(REJ_INVALID_ALT_LID) \ 1068dc105beSChuck Lever ib_cm_rej_reason(REJ_INVALID_ALT_SL) \ 1078dc105beSChuck Lever ib_cm_rej_reason(REJ_INVALID_ALT_TRAFFIC_CLASS) \ 1088dc105beSChuck Lever ib_cm_rej_reason(REJ_INVALID_ALT_HOP_LIMIT) \ 1098dc105beSChuck Lever ib_cm_rej_reason(REJ_INVALID_ALT_PACKET_RATE) \ 1108dc105beSChuck Lever ib_cm_rej_reason(REJ_PORT_CM_REDIRECT) \ 1118dc105beSChuck Lever ib_cm_rej_reason(REJ_PORT_REDIRECT) \ 1128dc105beSChuck Lever ib_cm_rej_reason(REJ_INVALID_MTU) \ 1138dc105beSChuck Lever ib_cm_rej_reason(REJ_INSUFFICIENT_RESP_RESOURCES) \ 1148dc105beSChuck Lever ib_cm_rej_reason(REJ_CONSUMER_DEFINED) \ 1158dc105beSChuck Lever ib_cm_rej_reason(REJ_INVALID_RNR_RETRY) \ 1168dc105beSChuck Lever ib_cm_rej_reason(REJ_DUPLICATE_LOCAL_COMM_ID) \ 1178dc105beSChuck Lever ib_cm_rej_reason(REJ_INVALID_CLASS_VERSION) \ 1188dc105beSChuck Lever ib_cm_rej_reason(REJ_INVALID_FLOW_LABEL) \ 1198dc105beSChuck Lever ib_cm_rej_reason(REJ_INVALID_ALT_FLOW_LABEL) \ 1208dc105beSChuck Lever ib_cm_rej_reason_end(REJ_VENDOR_OPTION_NOT_SUPPORTED) 1218dc105beSChuck Lever 1228dc105beSChuck Lever #undef ib_cm_rej_reason 1238dc105beSChuck Lever #undef ib_cm_rej_reason_end 1248dc105beSChuck Lever #define ib_cm_rej_reason(x) TRACE_DEFINE_ENUM(IB_CM_##x); 1258dc105beSChuck Lever #define ib_cm_rej_reason_end(x) TRACE_DEFINE_ENUM(IB_CM_##x); 1268dc105beSChuck Lever 1278dc105beSChuck Lever IB_CM_REJ_REASON_LIST 1288dc105beSChuck Lever 1298dc105beSChuck Lever #undef ib_cm_rej_reason 1308dc105beSChuck Lever #undef ib_cm_rej_reason_end 1318dc105beSChuck Lever #define ib_cm_rej_reason(x) { IB_CM_##x, #x }, 1328dc105beSChuck Lever #define ib_cm_rej_reason_end(x) { IB_CM_##x, #x } 1338dc105beSChuck Lever 1348dc105beSChuck Lever #define show_ib_cm_rej_reason(x) \ 1358dc105beSChuck Lever __print_symbolic(x, IB_CM_REJ_REASON_LIST) 13675874b3dSChuck Lever 13775874b3dSChuck Lever DECLARE_EVENT_CLASS(icm_id_class, 13875874b3dSChuck Lever TP_PROTO( 13975874b3dSChuck Lever const struct ib_cm_id *cm_id 14075874b3dSChuck Lever ), 14175874b3dSChuck Lever 14275874b3dSChuck Lever TP_ARGS(cm_id), 14375874b3dSChuck Lever 14475874b3dSChuck Lever TP_STRUCT__entry( 14575874b3dSChuck Lever __field(const void *, cm_id) /* for eBPF scripts */ 14675874b3dSChuck Lever __field(unsigned int, local_id) 14775874b3dSChuck Lever __field(unsigned int, remote_id) 14875874b3dSChuck Lever __field(unsigned long, state) 14975874b3dSChuck Lever __field(unsigned long, lap_state) 15075874b3dSChuck Lever ), 15175874b3dSChuck Lever 15275874b3dSChuck Lever TP_fast_assign( 15375874b3dSChuck Lever __entry->cm_id = cm_id; 15475874b3dSChuck Lever __entry->local_id = be32_to_cpu(cm_id->local_id); 15575874b3dSChuck Lever __entry->remote_id = be32_to_cpu(cm_id->remote_id); 15675874b3dSChuck Lever __entry->state = cm_id->state; 15775874b3dSChuck Lever __entry->lap_state = cm_id->lap_state; 15875874b3dSChuck Lever ), 15975874b3dSChuck Lever 16075874b3dSChuck Lever TP_printk("local_id=%u remote_id=%u state=%s lap_state=%s", 16175874b3dSChuck Lever __entry->local_id, __entry->remote_id, 16275874b3dSChuck Lever show_ib_cm_state(__entry->state), 16375874b3dSChuck Lever show_ib_cm_lap_state(__entry->lap_state) 16475874b3dSChuck Lever ) 16575874b3dSChuck Lever ); 16675874b3dSChuck Lever 1678dc105beSChuck Lever #define DEFINE_CM_SEND_EVENT(name) \ 1688dc105beSChuck Lever DEFINE_EVENT(icm_id_class, \ 1698dc105beSChuck Lever icm_send_##name, \ 1708dc105beSChuck Lever TP_PROTO( \ 1718dc105beSChuck Lever const struct ib_cm_id *cm_id \ 1728dc105beSChuck Lever ), \ 1738dc105beSChuck Lever TP_ARGS(cm_id)) 1748dc105beSChuck Lever 1758dc105beSChuck Lever DEFINE_CM_SEND_EVENT(req); 1768dc105beSChuck Lever DEFINE_CM_SEND_EVENT(rep); 1778dc105beSChuck Lever DEFINE_CM_SEND_EVENT(dup_req); 1788dc105beSChuck Lever DEFINE_CM_SEND_EVENT(dup_rep); 1798dc105beSChuck Lever DEFINE_CM_SEND_EVENT(rtu); 1808dc105beSChuck Lever DEFINE_CM_SEND_EVENT(mra); 1818dc105beSChuck Lever DEFINE_CM_SEND_EVENT(sidr_req); 1828dc105beSChuck Lever DEFINE_CM_SEND_EVENT(sidr_rep); 1838dc105beSChuck Lever DEFINE_CM_SEND_EVENT(dreq); 1848dc105beSChuck Lever DEFINE_CM_SEND_EVENT(drep); 1858dc105beSChuck Lever 1868dc105beSChuck Lever TRACE_EVENT(icm_send_rej, 1878dc105beSChuck Lever TP_PROTO( 1888dc105beSChuck Lever const struct ib_cm_id *cm_id, 1898dc105beSChuck Lever enum ib_cm_rej_reason reason 1908dc105beSChuck Lever ), 1918dc105beSChuck Lever 1928dc105beSChuck Lever TP_ARGS(cm_id, reason), 1938dc105beSChuck Lever 1948dc105beSChuck Lever TP_STRUCT__entry( 1958dc105beSChuck Lever __field(const void *, cm_id) 1968dc105beSChuck Lever __field(u32, local_id) 1978dc105beSChuck Lever __field(u32, remote_id) 1988dc105beSChuck Lever __field(unsigned long, state) 1998dc105beSChuck Lever __field(unsigned long, reason) 2008dc105beSChuck Lever ), 2018dc105beSChuck Lever 2028dc105beSChuck Lever TP_fast_assign( 2038dc105beSChuck Lever __entry->cm_id = cm_id; 2048dc105beSChuck Lever __entry->local_id = be32_to_cpu(cm_id->local_id); 2058dc105beSChuck Lever __entry->remote_id = be32_to_cpu(cm_id->remote_id); 2068dc105beSChuck Lever __entry->state = cm_id->state; 2078dc105beSChuck Lever __entry->reason = reason; 2088dc105beSChuck Lever ), 2098dc105beSChuck Lever 2108dc105beSChuck Lever TP_printk("local_id=%u remote_id=%u state=%s reason=%s", 2118dc105beSChuck Lever __entry->local_id, __entry->remote_id, 2128dc105beSChuck Lever show_ib_cm_state(__entry->state), 2138dc105beSChuck Lever show_ib_cm_rej_reason(__entry->reason) 2148dc105beSChuck Lever ) 2158dc105beSChuck Lever ); 2168dc105beSChuck Lever 21775874b3dSChuck Lever #define DEFINE_CM_ERR_EVENT(name) \ 21875874b3dSChuck Lever DEFINE_EVENT(icm_id_class, \ 21975874b3dSChuck Lever icm_##name##_err, \ 22075874b3dSChuck Lever TP_PROTO( \ 22175874b3dSChuck Lever const struct ib_cm_id *cm_id \ 22275874b3dSChuck Lever ), \ 22375874b3dSChuck Lever TP_ARGS(cm_id)) 22475874b3dSChuck Lever 22575874b3dSChuck Lever DEFINE_CM_ERR_EVENT(send_cm_rtu); 22675874b3dSChuck Lever DEFINE_CM_ERR_EVENT(establish); 22775874b3dSChuck Lever DEFINE_CM_ERR_EVENT(no_listener); 22875874b3dSChuck Lever DEFINE_CM_ERR_EVENT(send_drep); 22975874b3dSChuck Lever DEFINE_CM_ERR_EVENT(dreq_unknown); 23075874b3dSChuck Lever DEFINE_CM_ERR_EVENT(send_unknown_rej); 23175874b3dSChuck Lever DEFINE_CM_ERR_EVENT(rej_unknown); 23275874b3dSChuck Lever DEFINE_CM_ERR_EVENT(send_mra_unknown); 23375874b3dSChuck Lever DEFINE_CM_ERR_EVENT(mra_unknown); 23475874b3dSChuck Lever DEFINE_CM_ERR_EVENT(qp_init); 23575874b3dSChuck Lever DEFINE_CM_ERR_EVENT(qp_rtr); 23675874b3dSChuck Lever DEFINE_CM_ERR_EVENT(qp_rts); 23775874b3dSChuck Lever 23875874b3dSChuck Lever DEFINE_EVENT(icm_id_class, \ 23975874b3dSChuck Lever icm_dreq_skipped, \ 24075874b3dSChuck Lever TP_PROTO( \ 24175874b3dSChuck Lever const struct ib_cm_id *cm_id \ 24275874b3dSChuck Lever ), \ 24375874b3dSChuck Lever TP_ARGS(cm_id) \ 24475874b3dSChuck Lever ); 24575874b3dSChuck Lever 24675874b3dSChuck Lever DECLARE_EVENT_CLASS(icm_local_class, 24775874b3dSChuck Lever TP_PROTO( 24875874b3dSChuck Lever unsigned int local_id, 24975874b3dSChuck Lever unsigned int remote_id 25075874b3dSChuck Lever ), 25175874b3dSChuck Lever 25275874b3dSChuck Lever TP_ARGS(local_id, remote_id), 25375874b3dSChuck Lever 25475874b3dSChuck Lever TP_STRUCT__entry( 25575874b3dSChuck Lever __field(unsigned int, local_id) 25675874b3dSChuck Lever __field(unsigned int, remote_id) 25775874b3dSChuck Lever ), 25875874b3dSChuck Lever 25975874b3dSChuck Lever TP_fast_assign( 26075874b3dSChuck Lever __entry->local_id = local_id; 26175874b3dSChuck Lever __entry->remote_id = remote_id; 26275874b3dSChuck Lever ), 26375874b3dSChuck Lever 26475874b3dSChuck Lever TP_printk("local_id=%u remote_id=%u", 26575874b3dSChuck Lever __entry->local_id, __entry->remote_id 26675874b3dSChuck Lever ) 26775874b3dSChuck Lever ); 26875874b3dSChuck Lever 26975874b3dSChuck Lever #define DEFINE_CM_LOCAL_EVENT(name) \ 27075874b3dSChuck Lever DEFINE_EVENT(icm_local_class, \ 27175874b3dSChuck Lever icm_##name, \ 27275874b3dSChuck Lever TP_PROTO( \ 27375874b3dSChuck Lever unsigned int local_id, \ 27475874b3dSChuck Lever unsigned int remote_id \ 27575874b3dSChuck Lever ), \ 27675874b3dSChuck Lever TP_ARGS(local_id, remote_id)) 27775874b3dSChuck Lever 2788dc105beSChuck Lever DEFINE_CM_LOCAL_EVENT(issue_rej); 2798dc105beSChuck Lever DEFINE_CM_LOCAL_EVENT(issue_drep); 28075874b3dSChuck Lever DEFINE_CM_LOCAL_EVENT(staleconn_err); 28175874b3dSChuck Lever DEFINE_CM_LOCAL_EVENT(no_priv_err); 28275874b3dSChuck Lever 28375874b3dSChuck Lever DECLARE_EVENT_CLASS(icm_remote_class, 28475874b3dSChuck Lever TP_PROTO( 28575874b3dSChuck Lever u32 remote_id 28675874b3dSChuck Lever ), 28775874b3dSChuck Lever 28875874b3dSChuck Lever TP_ARGS(remote_id), 28975874b3dSChuck Lever 29075874b3dSChuck Lever TP_STRUCT__entry( 29175874b3dSChuck Lever __field(u32, remote_id) 29275874b3dSChuck Lever ), 29375874b3dSChuck Lever 29475874b3dSChuck Lever TP_fast_assign( 29575874b3dSChuck Lever __entry->remote_id = remote_id; 29675874b3dSChuck Lever ), 29775874b3dSChuck Lever 29875874b3dSChuck Lever TP_printk("remote_id=%u", 29975874b3dSChuck Lever __entry->remote_id 30075874b3dSChuck Lever ) 30175874b3dSChuck Lever ); 30275874b3dSChuck Lever 30375874b3dSChuck Lever #define DEFINE_CM_REMOTE_EVENT(name) \ 30475874b3dSChuck Lever DEFINE_EVENT(icm_remote_class, \ 30575874b3dSChuck Lever icm_##name, \ 30675874b3dSChuck Lever TP_PROTO( \ 30775874b3dSChuck Lever u32 remote_id \ 30875874b3dSChuck Lever ), \ 30975874b3dSChuck Lever TP_ARGS(remote_id)) 31075874b3dSChuck Lever 31175874b3dSChuck Lever DEFINE_CM_REMOTE_EVENT(remote_no_priv_err); 31275874b3dSChuck Lever DEFINE_CM_REMOTE_EVENT(insert_failed_err); 31375874b3dSChuck Lever 31475874b3dSChuck Lever TRACE_EVENT(icm_send_rep_err, 31575874b3dSChuck Lever TP_PROTO( 31675874b3dSChuck Lever __be32 local_id, 31775874b3dSChuck Lever enum ib_cm_state state 31875874b3dSChuck Lever ), 31975874b3dSChuck Lever 32075874b3dSChuck Lever TP_ARGS(local_id, state), 32175874b3dSChuck Lever 32275874b3dSChuck Lever TP_STRUCT__entry( 32375874b3dSChuck Lever __field(unsigned int, local_id) 32475874b3dSChuck Lever __field(unsigned long, state) 32575874b3dSChuck Lever ), 32675874b3dSChuck Lever 32775874b3dSChuck Lever TP_fast_assign( 32875874b3dSChuck Lever __entry->local_id = be32_to_cpu(local_id); 32975874b3dSChuck Lever __entry->state = state; 33075874b3dSChuck Lever ), 33175874b3dSChuck Lever 33275874b3dSChuck Lever TP_printk("local_id=%u state=%s", 33375874b3dSChuck Lever __entry->local_id, show_ib_cm_state(__entry->state) 33475874b3dSChuck Lever ) 33575874b3dSChuck Lever ); 33675874b3dSChuck Lever 33775874b3dSChuck Lever TRACE_EVENT(icm_rep_unknown_err, 33875874b3dSChuck Lever TP_PROTO( 33975874b3dSChuck Lever unsigned int local_id, 34075874b3dSChuck Lever unsigned int remote_id, 34175874b3dSChuck Lever enum ib_cm_state state 34275874b3dSChuck Lever ), 34375874b3dSChuck Lever 34475874b3dSChuck Lever TP_ARGS(local_id, remote_id, state), 34575874b3dSChuck Lever 34675874b3dSChuck Lever TP_STRUCT__entry( 34775874b3dSChuck Lever __field(unsigned int, local_id) 34875874b3dSChuck Lever __field(unsigned int, remote_id) 34975874b3dSChuck Lever __field(unsigned long, state) 35075874b3dSChuck Lever ), 35175874b3dSChuck Lever 35275874b3dSChuck Lever TP_fast_assign( 35375874b3dSChuck Lever __entry->local_id = local_id; 35475874b3dSChuck Lever __entry->remote_id = remote_id; 35575874b3dSChuck Lever __entry->state = state; 35675874b3dSChuck Lever ), 35775874b3dSChuck Lever 35875874b3dSChuck Lever TP_printk("local_id=%u remote_id=%u state=%s", 35975874b3dSChuck Lever __entry->local_id, __entry->remote_id, 36075874b3dSChuck Lever show_ib_cm_state(__entry->state) 36175874b3dSChuck Lever ) 36275874b3dSChuck Lever ); 36375874b3dSChuck Lever 36475874b3dSChuck Lever TRACE_EVENT(icm_handler_err, 36575874b3dSChuck Lever TP_PROTO( 36675874b3dSChuck Lever enum ib_cm_event_type event 36775874b3dSChuck Lever ), 36875874b3dSChuck Lever 36975874b3dSChuck Lever TP_ARGS(event), 37075874b3dSChuck Lever 37175874b3dSChuck Lever TP_STRUCT__entry( 37275874b3dSChuck Lever __field(unsigned long, event) 37375874b3dSChuck Lever ), 37475874b3dSChuck Lever 37575874b3dSChuck Lever TP_fast_assign( 37675874b3dSChuck Lever __entry->event = event; 37775874b3dSChuck Lever ), 37875874b3dSChuck Lever 37975874b3dSChuck Lever TP_printk("unhandled event=%s", 38075874b3dSChuck Lever rdma_show_ib_cm_event(__entry->event) 38175874b3dSChuck Lever ) 38275874b3dSChuck Lever ); 38375874b3dSChuck Lever 38475874b3dSChuck Lever TRACE_EVENT(icm_mad_send_err, 38575874b3dSChuck Lever TP_PROTO( 38675874b3dSChuck Lever enum ib_cm_state state, 38775874b3dSChuck Lever enum ib_wc_status wc_status 38875874b3dSChuck Lever ), 38975874b3dSChuck Lever 39075874b3dSChuck Lever TP_ARGS(state, wc_status), 39175874b3dSChuck Lever 39275874b3dSChuck Lever TP_STRUCT__entry( 39375874b3dSChuck Lever __field(unsigned long, state) 39475874b3dSChuck Lever __field(unsigned long, wc_status) 39575874b3dSChuck Lever ), 39675874b3dSChuck Lever 39775874b3dSChuck Lever TP_fast_assign( 39875874b3dSChuck Lever __entry->state = state; 39975874b3dSChuck Lever __entry->wc_status = wc_status; 40075874b3dSChuck Lever ), 40175874b3dSChuck Lever 40275874b3dSChuck Lever TP_printk("state=%s completion status=%s", 40375874b3dSChuck Lever show_ib_cm_state(__entry->state), 40475874b3dSChuck Lever rdma_show_wc_status(__entry->wc_status) 40575874b3dSChuck Lever ) 40675874b3dSChuck Lever ); 40775874b3dSChuck Lever 40875874b3dSChuck Lever #endif /* _TRACE_IB_CMA_H */ 40975874b3dSChuck Lever 41075874b3dSChuck Lever #undef TRACE_INCLUDE_PATH 41175874b3dSChuck Lever #define TRACE_INCLUDE_PATH ../../drivers/infiniband/core 41275874b3dSChuck Lever #define TRACE_INCLUDE_FILE cm_trace 41375874b3dSChuck Lever 41475874b3dSChuck Lever #include <trace/define_trace.h> 415