1ddae5d62SMichael J. Ruhl /* SPDX-License-Identifier: GPL-2.0 or Linux-OpenIB */ 2ddae5d62SMichael J. Ruhl /* Copyright (c) 2019 - 2021 Intel Corporation */ 3ddae5d62SMichael J. Ruhl #if !defined(__TRACE_CM_H) || defined(TRACE_HEADER_MULTI_READ) 4ddae5d62SMichael J. Ruhl #define __TRACE_CM_H 5ddae5d62SMichael J. Ruhl 6ddae5d62SMichael J. Ruhl #include <linux/tracepoint.h> 7ddae5d62SMichael J. Ruhl #include <linux/trace_seq.h> 8ddae5d62SMichael J. Ruhl 9ddae5d62SMichael J. Ruhl #include "main.h" 10ddae5d62SMichael J. Ruhl 11ddae5d62SMichael J. Ruhl const char *print_ip_addr(struct trace_seq *p, u32 *addr, u16 port, bool ivp4); 12ddae5d62SMichael J. Ruhl const char *parse_iw_event_type(enum iw_cm_event_type iw_type); 13ddae5d62SMichael J. Ruhl const char *parse_cm_event_type(enum irdma_cm_event_type cm_type); 14ddae5d62SMichael J. Ruhl const char *parse_cm_state(enum irdma_cm_node_state); 15ddae5d62SMichael J. Ruhl #define __print_ip_addr(addr, port, ipv4) print_ip_addr(p, addr, port, ipv4) 16ddae5d62SMichael J. Ruhl 17ddae5d62SMichael J. Ruhl #undef TRACE_SYSTEM 18ddae5d62SMichael J. Ruhl #define TRACE_SYSTEM irdma_cm 19ddae5d62SMichael J. Ruhl 20ddae5d62SMichael J. Ruhl TRACE_EVENT(irdma_create_listen, 21ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_device *iwdev, struct irdma_cm_info *cm_info), 22ddae5d62SMichael J. Ruhl TP_ARGS(iwdev, cm_info), 23ddae5d62SMichael J. Ruhl TP_STRUCT__entry(__field(struct irdma_device *, iwdev) 24ddae5d62SMichael J. Ruhl __dynamic_array(u32, laddr, 4) 25ddae5d62SMichael J. Ruhl __field(u16, lport) 26ddae5d62SMichael J. Ruhl __field(bool, ipv4) 27ddae5d62SMichael J. Ruhl ), 28ddae5d62SMichael J. Ruhl TP_fast_assign(__entry->iwdev = iwdev; 29ddae5d62SMichael J. Ruhl __entry->lport = cm_info->loc_port; 30ddae5d62SMichael J. Ruhl __entry->ipv4 = cm_info->ipv4; 31ddae5d62SMichael J. Ruhl memcpy(__get_dynamic_array(laddr), 32ddae5d62SMichael J. Ruhl cm_info->loc_addr, 4); 33ddae5d62SMichael J. Ruhl ), 34ddae5d62SMichael J. Ruhl TP_printk("iwdev=%p loc: %s", 35ddae5d62SMichael J. Ruhl __entry->iwdev, 36ddae5d62SMichael J. Ruhl __print_ip_addr(__get_dynamic_array(laddr), 37ddae5d62SMichael J. Ruhl __entry->lport, __entry->ipv4) 38ddae5d62SMichael J. Ruhl ) 39ddae5d62SMichael J. Ruhl ); 40ddae5d62SMichael J. Ruhl 41ddae5d62SMichael J. Ruhl TRACE_EVENT(irdma_dec_refcnt_listen, 42ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_cm_listener *listener, void *caller), 43ddae5d62SMichael J. Ruhl TP_ARGS(listener, caller), 44ddae5d62SMichael J. Ruhl TP_STRUCT__entry(__field(struct irdma_device *, iwdev) 45ddae5d62SMichael J. Ruhl __field(u32, refcnt) 46ddae5d62SMichael J. Ruhl __dynamic_array(u32, laddr, 4) 47ddae5d62SMichael J. Ruhl __field(u16, lport) 48ddae5d62SMichael J. Ruhl __field(bool, ipv4) 49ddae5d62SMichael J. Ruhl __field(void *, caller) 50ddae5d62SMichael J. Ruhl ), 51ddae5d62SMichael J. Ruhl TP_fast_assign(__entry->iwdev = listener->iwdev; 52ddae5d62SMichael J. Ruhl __entry->lport = listener->loc_port; 53ddae5d62SMichael J. Ruhl __entry->ipv4 = listener->ipv4; 54ddae5d62SMichael J. Ruhl memcpy(__get_dynamic_array(laddr), 55ddae5d62SMichael J. Ruhl listener->loc_addr, 4); 56ddae5d62SMichael J. Ruhl ), 57ddae5d62SMichael J. Ruhl TP_printk("iwdev=%p caller=%pS loc: %s", 58ddae5d62SMichael J. Ruhl __entry->iwdev, 59ddae5d62SMichael J. Ruhl __entry->caller, 60ddae5d62SMichael J. Ruhl __print_ip_addr(__get_dynamic_array(laddr), 61ddae5d62SMichael J. Ruhl __entry->lport, __entry->ipv4) 62ddae5d62SMichael J. Ruhl ) 63ddae5d62SMichael J. Ruhl ); 64ddae5d62SMichael J. Ruhl 65ddae5d62SMichael J. Ruhl DECLARE_EVENT_CLASS(listener_template, 66ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_cm_listener *listener), 67ddae5d62SMichael J. Ruhl TP_ARGS(listener), 68ddae5d62SMichael J. Ruhl TP_STRUCT__entry(__field(struct irdma_device *, iwdev) 69ddae5d62SMichael J. Ruhl __field(u16, lport) 70ddae5d62SMichael J. Ruhl __field(u16, vlan_id) 71ddae5d62SMichael J. Ruhl __field(bool, ipv4) 72ddae5d62SMichael J. Ruhl __field(enum irdma_cm_listener_state, 73ddae5d62SMichael J. Ruhl state) 74ddae5d62SMichael J. Ruhl __dynamic_array(u32, laddr, 4) 75ddae5d62SMichael J. Ruhl ), 76ddae5d62SMichael J. Ruhl TP_fast_assign(__entry->iwdev = listener->iwdev; 77ddae5d62SMichael J. Ruhl __entry->lport = listener->loc_port; 78ddae5d62SMichael J. Ruhl __entry->vlan_id = listener->vlan_id; 79ddae5d62SMichael J. Ruhl __entry->ipv4 = listener->ipv4; 80ddae5d62SMichael J. Ruhl __entry->state = listener->listener_state; 81ddae5d62SMichael J. Ruhl memcpy(__get_dynamic_array(laddr), 82ddae5d62SMichael J. Ruhl listener->loc_addr, 4); 83ddae5d62SMichael J. Ruhl ), 84ddae5d62SMichael J. Ruhl TP_printk("iwdev=%p vlan=%d loc: %s", 85ddae5d62SMichael J. Ruhl __entry->iwdev, 86ddae5d62SMichael J. Ruhl __entry->vlan_id, 87ddae5d62SMichael J. Ruhl __print_ip_addr(__get_dynamic_array(laddr), 88ddae5d62SMichael J. Ruhl __entry->lport, __entry->ipv4) 89ddae5d62SMichael J. Ruhl ) 90ddae5d62SMichael J. Ruhl ); 91ddae5d62SMichael J. Ruhl 92ddae5d62SMichael J. Ruhl DEFINE_EVENT(listener_template, irdma_find_listener, 93ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_cm_listener *listener), 94ddae5d62SMichael J. Ruhl TP_ARGS(listener)); 95ddae5d62SMichael J. Ruhl 96ddae5d62SMichael J. Ruhl DEFINE_EVENT(listener_template, irdma_del_multiple_qhash, 97ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_cm_listener *listener), 98ddae5d62SMichael J. Ruhl TP_ARGS(listener)); 99ddae5d62SMichael J. Ruhl 100ddae5d62SMichael J. Ruhl TRACE_EVENT(irdma_negotiate_mpa_v2, 101ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_cm_node *cm_node), 102ddae5d62SMichael J. Ruhl TP_ARGS(cm_node), 103ddae5d62SMichael J. Ruhl TP_STRUCT__entry(__field(struct irdma_cm_node *, cm_node) 104ddae5d62SMichael J. Ruhl __field(u16, ord_size) 105ddae5d62SMichael J. Ruhl __field(u16, ird_size) 106ddae5d62SMichael J. Ruhl ), 107ddae5d62SMichael J. Ruhl TP_fast_assign(__entry->cm_node = cm_node; 108ddae5d62SMichael J. Ruhl __entry->ord_size = cm_node->ord_size; 109ddae5d62SMichael J. Ruhl __entry->ird_size = cm_node->ird_size; 110ddae5d62SMichael J. Ruhl ), 111ddae5d62SMichael J. Ruhl TP_printk("MPVA2 Negotiated cm_node=%p ORD:[%d], IRD:[%d]", 112ddae5d62SMichael J. Ruhl __entry->cm_node, 113ddae5d62SMichael J. Ruhl __entry->ord_size, 114ddae5d62SMichael J. Ruhl __entry->ird_size 115ddae5d62SMichael J. Ruhl ) 116ddae5d62SMichael J. Ruhl ); 117ddae5d62SMichael J. Ruhl 118ddae5d62SMichael J. Ruhl DECLARE_EVENT_CLASS(tos_template, 119ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_device *iwdev, u8 tos, u8 user_pri), 120ddae5d62SMichael J. Ruhl TP_ARGS(iwdev, tos, user_pri), 121ddae5d62SMichael J. Ruhl TP_STRUCT__entry(__field(struct irdma_device *, iwdev) 122ddae5d62SMichael J. Ruhl __field(u8, tos) 123ddae5d62SMichael J. Ruhl __field(u8, user_pri) 124ddae5d62SMichael J. Ruhl ), 125ddae5d62SMichael J. Ruhl TP_fast_assign(__entry->iwdev = iwdev; 126ddae5d62SMichael J. Ruhl __entry->tos = tos; 127ddae5d62SMichael J. Ruhl __entry->user_pri = user_pri; 128ddae5d62SMichael J. Ruhl ), 129ddae5d62SMichael J. Ruhl TP_printk("iwdev=%p TOS:[%d] UP:[%d]", 130ddae5d62SMichael J. Ruhl __entry->iwdev, 131ddae5d62SMichael J. Ruhl __entry->tos, 132ddae5d62SMichael J. Ruhl __entry->user_pri 133ddae5d62SMichael J. Ruhl ) 134ddae5d62SMichael J. Ruhl ); 135ddae5d62SMichael J. Ruhl 136ddae5d62SMichael J. Ruhl DEFINE_EVENT(tos_template, irdma_listener_tos, 137ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_device *iwdev, u8 tos, u8 user_pri), 138ddae5d62SMichael J. Ruhl TP_ARGS(iwdev, tos, user_pri)); 139ddae5d62SMichael J. Ruhl 140ddae5d62SMichael J. Ruhl DEFINE_EVENT(tos_template, irdma_dcb_tos, 141ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_device *iwdev, u8 tos, u8 user_pri), 142ddae5d62SMichael J. Ruhl TP_ARGS(iwdev, tos, user_pri)); 143ddae5d62SMichael J. Ruhl 144ddae5d62SMichael J. Ruhl DECLARE_EVENT_CLASS(qhash_template, 145ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_device *iwdev, 146ddae5d62SMichael J. Ruhl struct irdma_cm_listener *listener, 147*fd92213eSJakub Kicinski const char *dev_addr), 148ddae5d62SMichael J. Ruhl TP_ARGS(iwdev, listener, dev_addr), 149ddae5d62SMichael J. Ruhl TP_STRUCT__entry(__field(struct irdma_device *, iwdev) 150ddae5d62SMichael J. Ruhl __field(u16, lport) 151ddae5d62SMichael J. Ruhl __field(u16, vlan_id) 152ddae5d62SMichael J. Ruhl __field(bool, ipv4) 153ddae5d62SMichael J. Ruhl __dynamic_array(u32, laddr, 4) 154ddae5d62SMichael J. Ruhl __dynamic_array(u32, mac, ETH_ALEN) 155ddae5d62SMichael J. Ruhl ), 156ddae5d62SMichael J. Ruhl TP_fast_assign(__entry->iwdev = iwdev; 157ddae5d62SMichael J. Ruhl __entry->lport = listener->loc_port; 158ddae5d62SMichael J. Ruhl __entry->vlan_id = listener->vlan_id; 159ddae5d62SMichael J. Ruhl __entry->ipv4 = listener->ipv4; 160ddae5d62SMichael J. Ruhl memcpy(__get_dynamic_array(laddr), 161ddae5d62SMichael J. Ruhl listener->loc_addr, 4); 162ddae5d62SMichael J. Ruhl ether_addr_copy(__get_dynamic_array(mac), 163ddae5d62SMichael J. Ruhl dev_addr); 164ddae5d62SMichael J. Ruhl ), 165ddae5d62SMichael J. Ruhl TP_printk("iwdev=%p vlan=%d MAC=%6phC loc: %s", 166ddae5d62SMichael J. Ruhl __entry->iwdev, 167ddae5d62SMichael J. Ruhl __entry->vlan_id, 168ddae5d62SMichael J. Ruhl __get_dynamic_array(mac), 169ddae5d62SMichael J. Ruhl __print_ip_addr(__get_dynamic_array(laddr), 170ddae5d62SMichael J. Ruhl __entry->lport, __entry->ipv4) 171ddae5d62SMichael J. Ruhl ) 172ddae5d62SMichael J. Ruhl ); 173ddae5d62SMichael J. Ruhl 174ddae5d62SMichael J. Ruhl DEFINE_EVENT(qhash_template, irdma_add_mqh_6, 175ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_device *iwdev, 176*fd92213eSJakub Kicinski struct irdma_cm_listener *listener, 177*fd92213eSJakub Kicinski const char *dev_addr), 178ddae5d62SMichael J. Ruhl TP_ARGS(iwdev, listener, dev_addr)); 179ddae5d62SMichael J. Ruhl 180ddae5d62SMichael J. Ruhl DEFINE_EVENT(qhash_template, irdma_add_mqh_4, 181ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_device *iwdev, 182*fd92213eSJakub Kicinski struct irdma_cm_listener *listener, 183*fd92213eSJakub Kicinski const char *dev_addr), 184ddae5d62SMichael J. Ruhl TP_ARGS(iwdev, listener, dev_addr)); 185ddae5d62SMichael J. Ruhl 186ddae5d62SMichael J. Ruhl TRACE_EVENT(irdma_addr_resolve, 187ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_device *iwdev, char *dev_addr), 188ddae5d62SMichael J. Ruhl TP_ARGS(iwdev, dev_addr), 189ddae5d62SMichael J. Ruhl TP_STRUCT__entry(__field(struct irdma_device *, iwdev) 190ddae5d62SMichael J. Ruhl __dynamic_array(u8, mac, ETH_ALEN) 191ddae5d62SMichael J. Ruhl ), 192ddae5d62SMichael J. Ruhl TP_fast_assign(__entry->iwdev = iwdev; 193ddae5d62SMichael J. Ruhl ether_addr_copy(__get_dynamic_array(mac), dev_addr); 194ddae5d62SMichael J. Ruhl ), 195ddae5d62SMichael J. Ruhl TP_printk("iwdev=%p MAC=%6phC", __entry->iwdev, 196ddae5d62SMichael J. Ruhl __get_dynamic_array(mac) 197ddae5d62SMichael J. Ruhl ) 198ddae5d62SMichael J. Ruhl ); 199ddae5d62SMichael J. Ruhl 200ddae5d62SMichael J. Ruhl TRACE_EVENT(irdma_send_cm_event, 201ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_cm_node *cm_node, struct iw_cm_id *cm_id, 202ddae5d62SMichael J. Ruhl enum iw_cm_event_type type, int status, void *caller), 203ddae5d62SMichael J. Ruhl TP_ARGS(cm_node, cm_id, type, status, caller), 204ddae5d62SMichael J. Ruhl TP_STRUCT__entry(__field(struct irdma_device *, iwdev) 205ddae5d62SMichael J. Ruhl __field(struct irdma_cm_node *, cm_node) 206ddae5d62SMichael J. Ruhl __field(struct iw_cm_id *, cm_id) 207ddae5d62SMichael J. Ruhl __field(u32, refcount) 208ddae5d62SMichael J. Ruhl __field(u16, lport) 209ddae5d62SMichael J. Ruhl __field(u16, rport) 210ddae5d62SMichael J. Ruhl __field(enum irdma_cm_node_state, state) 211ddae5d62SMichael J. Ruhl __field(bool, ipv4) 212ddae5d62SMichael J. Ruhl __field(u16, vlan_id) 213ddae5d62SMichael J. Ruhl __field(int, accel) 214ddae5d62SMichael J. Ruhl __field(enum iw_cm_event_type, type) 215ddae5d62SMichael J. Ruhl __field(int, status) 216ddae5d62SMichael J. Ruhl __field(void *, caller) 217ddae5d62SMichael J. Ruhl __dynamic_array(u32, laddr, 4) 218ddae5d62SMichael J. Ruhl __dynamic_array(u32, raddr, 4) 219ddae5d62SMichael J. Ruhl ), 220ddae5d62SMichael J. Ruhl TP_fast_assign(__entry->iwdev = cm_node->iwdev; 221ddae5d62SMichael J. Ruhl __entry->cm_node = cm_node; 222ddae5d62SMichael J. Ruhl __entry->cm_id = cm_id; 223ddae5d62SMichael J. Ruhl __entry->refcount = refcount_read(&cm_node->refcnt); 224ddae5d62SMichael J. Ruhl __entry->state = cm_node->state; 225ddae5d62SMichael J. Ruhl __entry->lport = cm_node->loc_port; 226ddae5d62SMichael J. Ruhl __entry->rport = cm_node->rem_port; 227ddae5d62SMichael J. Ruhl __entry->ipv4 = cm_node->ipv4; 228ddae5d62SMichael J. Ruhl __entry->vlan_id = cm_node->vlan_id; 229ddae5d62SMichael J. Ruhl __entry->accel = cm_node->accelerated; 230ddae5d62SMichael J. Ruhl __entry->type = type; 231ddae5d62SMichael J. Ruhl __entry->status = status; 232ddae5d62SMichael J. Ruhl __entry->caller = caller; 233ddae5d62SMichael J. Ruhl memcpy(__get_dynamic_array(laddr), 234ddae5d62SMichael J. Ruhl cm_node->loc_addr, 4); 235ddae5d62SMichael J. Ruhl memcpy(__get_dynamic_array(raddr), 236ddae5d62SMichael J. Ruhl cm_node->rem_addr, 4); 237ddae5d62SMichael J. Ruhl ), 238ddae5d62SMichael J. Ruhl TP_printk("iwdev=%p caller=%pS cm_id=%p node=%p refcnt=%d vlan_id=%d accel=%d state=%s event_type=%s status=%d loc: %s rem: %s", 239ddae5d62SMichael J. Ruhl __entry->iwdev, 240ddae5d62SMichael J. Ruhl __entry->caller, 241ddae5d62SMichael J. Ruhl __entry->cm_id, 242ddae5d62SMichael J. Ruhl __entry->cm_node, 243ddae5d62SMichael J. Ruhl __entry->refcount, 244ddae5d62SMichael J. Ruhl __entry->vlan_id, 245ddae5d62SMichael J. Ruhl __entry->accel, 246ddae5d62SMichael J. Ruhl parse_cm_state(__entry->state), 247ddae5d62SMichael J. Ruhl parse_iw_event_type(__entry->type), 248ddae5d62SMichael J. Ruhl __entry->status, 249ddae5d62SMichael J. Ruhl __print_ip_addr(__get_dynamic_array(laddr), 250ddae5d62SMichael J. Ruhl __entry->lport, __entry->ipv4), 251ddae5d62SMichael J. Ruhl __print_ip_addr(__get_dynamic_array(raddr), 252ddae5d62SMichael J. Ruhl __entry->rport, __entry->ipv4) 253ddae5d62SMichael J. Ruhl ) 254ddae5d62SMichael J. Ruhl ); 255ddae5d62SMichael J. Ruhl 256ddae5d62SMichael J. Ruhl TRACE_EVENT(irdma_send_cm_event_no_node, 257ddae5d62SMichael J. Ruhl TP_PROTO(struct iw_cm_id *cm_id, enum iw_cm_event_type type, 258ddae5d62SMichael J. Ruhl int status, void *caller), 259ddae5d62SMichael J. Ruhl TP_ARGS(cm_id, type, status, caller), 260ddae5d62SMichael J. Ruhl TP_STRUCT__entry(__field(struct iw_cm_id *, cm_id) 261ddae5d62SMichael J. Ruhl __field(enum iw_cm_event_type, type) 262ddae5d62SMichael J. Ruhl __field(int, status) 263ddae5d62SMichael J. Ruhl __field(void *, caller) 264ddae5d62SMichael J. Ruhl ), 265ddae5d62SMichael J. Ruhl TP_fast_assign(__entry->cm_id = cm_id; 266ddae5d62SMichael J. Ruhl __entry->type = type; 267ddae5d62SMichael J. Ruhl __entry->status = status; 268ddae5d62SMichael J. Ruhl __entry->caller = caller; 269ddae5d62SMichael J. Ruhl ), 270ddae5d62SMichael J. Ruhl TP_printk("cm_id=%p caller=%pS event_type=%s status=%d", 271ddae5d62SMichael J. Ruhl __entry->cm_id, 272ddae5d62SMichael J. Ruhl __entry->caller, 273ddae5d62SMichael J. Ruhl parse_iw_event_type(__entry->type), 274ddae5d62SMichael J. Ruhl __entry->status 275ddae5d62SMichael J. Ruhl ) 276ddae5d62SMichael J. Ruhl ); 277ddae5d62SMichael J. Ruhl 278ddae5d62SMichael J. Ruhl DECLARE_EVENT_CLASS(cm_node_template, 279ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_cm_node *cm_node, 280ddae5d62SMichael J. Ruhl enum irdma_cm_event_type type, void *caller), 281ddae5d62SMichael J. Ruhl TP_ARGS(cm_node, type, caller), 282ddae5d62SMichael J. Ruhl TP_STRUCT__entry(__field(struct irdma_device *, iwdev) 283ddae5d62SMichael J. Ruhl __field(struct irdma_cm_node *, cm_node) 284ddae5d62SMichael J. Ruhl __field(u32, refcount) 285ddae5d62SMichael J. Ruhl __field(u16, lport) 286ddae5d62SMichael J. Ruhl __field(u16, rport) 287ddae5d62SMichael J. Ruhl __field(enum irdma_cm_node_state, state) 288ddae5d62SMichael J. Ruhl __field(bool, ipv4) 289ddae5d62SMichael J. Ruhl __field(u16, vlan_id) 290ddae5d62SMichael J. Ruhl __field(int, accel) 291ddae5d62SMichael J. Ruhl __field(enum irdma_cm_event_type, type) 292ddae5d62SMichael J. Ruhl __field(void *, caller) 293ddae5d62SMichael J. Ruhl __dynamic_array(u32, laddr, 4) 294ddae5d62SMichael J. Ruhl __dynamic_array(u32, raddr, 4) 295ddae5d62SMichael J. Ruhl ), 296ddae5d62SMichael J. Ruhl TP_fast_assign(__entry->iwdev = cm_node->iwdev; 297ddae5d62SMichael J. Ruhl __entry->cm_node = cm_node; 298ddae5d62SMichael J. Ruhl __entry->refcount = refcount_read(&cm_node->refcnt); 299ddae5d62SMichael J. Ruhl __entry->state = cm_node->state; 300ddae5d62SMichael J. Ruhl __entry->lport = cm_node->loc_port; 301ddae5d62SMichael J. Ruhl __entry->rport = cm_node->rem_port; 302ddae5d62SMichael J. Ruhl __entry->ipv4 = cm_node->ipv4; 303ddae5d62SMichael J. Ruhl __entry->vlan_id = cm_node->vlan_id; 304ddae5d62SMichael J. Ruhl __entry->accel = cm_node->accelerated; 305ddae5d62SMichael J. Ruhl __entry->type = type; 306ddae5d62SMichael J. Ruhl __entry->caller = caller; 307ddae5d62SMichael J. Ruhl memcpy(__get_dynamic_array(laddr), 308ddae5d62SMichael J. Ruhl cm_node->loc_addr, 4); 309ddae5d62SMichael J. Ruhl memcpy(__get_dynamic_array(raddr), 310ddae5d62SMichael J. Ruhl cm_node->rem_addr, 4); 311ddae5d62SMichael J. Ruhl ), 312ddae5d62SMichael J. Ruhl TP_printk("iwdev=%p caller=%pS node=%p refcnt=%d vlan_id=%d accel=%d state=%s event_type=%s loc: %s rem: %s", 313ddae5d62SMichael J. Ruhl __entry->iwdev, 314ddae5d62SMichael J. Ruhl __entry->caller, 315ddae5d62SMichael J. Ruhl __entry->cm_node, 316ddae5d62SMichael J. Ruhl __entry->refcount, 317ddae5d62SMichael J. Ruhl __entry->vlan_id, 318ddae5d62SMichael J. Ruhl __entry->accel, 319ddae5d62SMichael J. Ruhl parse_cm_state(__entry->state), 320ddae5d62SMichael J. Ruhl parse_cm_event_type(__entry->type), 321ddae5d62SMichael J. Ruhl __print_ip_addr(__get_dynamic_array(laddr), 322ddae5d62SMichael J. Ruhl __entry->lport, __entry->ipv4), 323ddae5d62SMichael J. Ruhl __print_ip_addr(__get_dynamic_array(raddr), 324ddae5d62SMichael J. Ruhl __entry->rport, __entry->ipv4) 325ddae5d62SMichael J. Ruhl ) 326ddae5d62SMichael J. Ruhl ); 327ddae5d62SMichael J. Ruhl 328ddae5d62SMichael J. Ruhl DEFINE_EVENT(cm_node_template, irdma_create_event, 329ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_cm_node *cm_node, 330ddae5d62SMichael J. Ruhl enum irdma_cm_event_type type, void *caller), 331ddae5d62SMichael J. Ruhl TP_ARGS(cm_node, type, caller)); 332ddae5d62SMichael J. Ruhl 333ddae5d62SMichael J. Ruhl DEFINE_EVENT(cm_node_template, irdma_accept, 334ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_cm_node *cm_node, 335ddae5d62SMichael J. Ruhl enum irdma_cm_event_type type, void *caller), 336ddae5d62SMichael J. Ruhl TP_ARGS(cm_node, type, caller)); 337ddae5d62SMichael J. Ruhl 338ddae5d62SMichael J. Ruhl DEFINE_EVENT(cm_node_template, irdma_connect, 339ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_cm_node *cm_node, 340ddae5d62SMichael J. Ruhl enum irdma_cm_event_type type, void *caller), 341ddae5d62SMichael J. Ruhl TP_ARGS(cm_node, type, caller)); 342ddae5d62SMichael J. Ruhl 343ddae5d62SMichael J. Ruhl DEFINE_EVENT(cm_node_template, irdma_reject, 344ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_cm_node *cm_node, 345ddae5d62SMichael J. Ruhl enum irdma_cm_event_type type, void *caller), 346ddae5d62SMichael J. Ruhl TP_ARGS(cm_node, type, caller)); 347ddae5d62SMichael J. Ruhl 348ddae5d62SMichael J. Ruhl DEFINE_EVENT(cm_node_template, irdma_find_node, 349ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_cm_node *cm_node, 350ddae5d62SMichael J. Ruhl enum irdma_cm_event_type type, void *caller), 351ddae5d62SMichael J. Ruhl TP_ARGS(cm_node, type, caller)); 352ddae5d62SMichael J. Ruhl 353ddae5d62SMichael J. Ruhl DEFINE_EVENT(cm_node_template, irdma_send_reset, 354ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_cm_node *cm_node, 355ddae5d62SMichael J. Ruhl enum irdma_cm_event_type type, void *caller), 356ddae5d62SMichael J. Ruhl TP_ARGS(cm_node, type, caller)); 357ddae5d62SMichael J. Ruhl 358ddae5d62SMichael J. Ruhl DEFINE_EVENT(cm_node_template, irdma_rem_ref_cm_node, 359ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_cm_node *cm_node, 360ddae5d62SMichael J. Ruhl enum irdma_cm_event_type type, void *caller), 361ddae5d62SMichael J. Ruhl TP_ARGS(cm_node, type, caller)); 362ddae5d62SMichael J. Ruhl 363ddae5d62SMichael J. Ruhl DEFINE_EVENT(cm_node_template, irdma_cm_event_handler, 364ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_cm_node *cm_node, 365ddae5d62SMichael J. Ruhl enum irdma_cm_event_type type, void *caller), 366ddae5d62SMichael J. Ruhl TP_ARGS(cm_node, type, caller)); 367ddae5d62SMichael J. Ruhl 368ddae5d62SMichael J. Ruhl TRACE_EVENT(open_err_template, 369ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_cm_node *cm_node, bool reset, void *caller), 370ddae5d62SMichael J. Ruhl TP_ARGS(cm_node, reset, caller), 371ddae5d62SMichael J. Ruhl TP_STRUCT__entry(__field(struct irdma_device *, iwdev) 372ddae5d62SMichael J. Ruhl __field(struct irdma_cm_node *, cm_node) 373ddae5d62SMichael J. Ruhl __field(enum irdma_cm_node_state, state) 374ddae5d62SMichael J. Ruhl __field(bool, reset) 375ddae5d62SMichael J. Ruhl __field(void *, caller) 376ddae5d62SMichael J. Ruhl ), 377ddae5d62SMichael J. Ruhl TP_fast_assign(__entry->iwdev = cm_node->iwdev; 378ddae5d62SMichael J. Ruhl __entry->cm_node = cm_node; 379ddae5d62SMichael J. Ruhl __entry->state = cm_node->state; 380ddae5d62SMichael J. Ruhl __entry->reset = reset; 381ddae5d62SMichael J. Ruhl __entry->caller = caller; 382ddae5d62SMichael J. Ruhl ), 383ddae5d62SMichael J. Ruhl TP_printk("iwdev=%p caller=%pS node%p reset=%d state=%s", 384ddae5d62SMichael J. Ruhl __entry->iwdev, 385ddae5d62SMichael J. Ruhl __entry->caller, 386ddae5d62SMichael J. Ruhl __entry->cm_node, 387ddae5d62SMichael J. Ruhl __entry->reset, 388ddae5d62SMichael J. Ruhl parse_cm_state(__entry->state) 389ddae5d62SMichael J. Ruhl ) 390ddae5d62SMichael J. Ruhl ); 391ddae5d62SMichael J. Ruhl 392ddae5d62SMichael J. Ruhl DEFINE_EVENT(open_err_template, irdma_active_open_err, 393ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_cm_node *cm_node, bool reset, void *caller), 394ddae5d62SMichael J. Ruhl TP_ARGS(cm_node, reset, caller)); 395ddae5d62SMichael J. Ruhl 396ddae5d62SMichael J. Ruhl DEFINE_EVENT(open_err_template, irdma_passive_open_err, 397ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_cm_node *cm_node, bool reset, void *caller), 398ddae5d62SMichael J. Ruhl TP_ARGS(cm_node, reset, caller)); 399ddae5d62SMichael J. Ruhl 400ddae5d62SMichael J. Ruhl DECLARE_EVENT_CLASS(cm_node_ah_template, 401ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_cm_node *cm_node), 402ddae5d62SMichael J. Ruhl TP_ARGS(cm_node), 403ddae5d62SMichael J. Ruhl TP_STRUCT__entry(__field(struct irdma_device *, iwdev) 404ddae5d62SMichael J. Ruhl __field(struct irdma_cm_node *, cm_node) 405ddae5d62SMichael J. Ruhl __field(struct irdma_sc_ah *, ah) 406ddae5d62SMichael J. Ruhl __field(u32, refcount) 407ddae5d62SMichael J. Ruhl __field(u16, lport) 408ddae5d62SMichael J. Ruhl __field(u16, rport) 409ddae5d62SMichael J. Ruhl __field(enum irdma_cm_node_state, state) 410ddae5d62SMichael J. Ruhl __field(bool, ipv4) 411ddae5d62SMichael J. Ruhl __field(u16, vlan_id) 412ddae5d62SMichael J. Ruhl __field(int, accel) 413ddae5d62SMichael J. Ruhl __dynamic_array(u32, laddr, 4) 414ddae5d62SMichael J. Ruhl __dynamic_array(u32, raddr, 4) 415ddae5d62SMichael J. Ruhl ), 416ddae5d62SMichael J. Ruhl TP_fast_assign(__entry->iwdev = cm_node->iwdev; 417ddae5d62SMichael J. Ruhl __entry->cm_node = cm_node; 418ddae5d62SMichael J. Ruhl __entry->ah = cm_node->ah; 419ddae5d62SMichael J. Ruhl __entry->refcount = refcount_read(&cm_node->refcnt); 420ddae5d62SMichael J. Ruhl __entry->lport = cm_node->loc_port; 421ddae5d62SMichael J. Ruhl __entry->rport = cm_node->rem_port; 422ddae5d62SMichael J. Ruhl __entry->state = cm_node->state; 423ddae5d62SMichael J. Ruhl __entry->ipv4 = cm_node->ipv4; 424ddae5d62SMichael J. Ruhl __entry->vlan_id = cm_node->vlan_id; 425ddae5d62SMichael J. Ruhl __entry->accel = cm_node->accelerated; 426ddae5d62SMichael J. Ruhl memcpy(__get_dynamic_array(laddr), 427ddae5d62SMichael J. Ruhl cm_node->loc_addr, 4); 428ddae5d62SMichael J. Ruhl memcpy(__get_dynamic_array(raddr), 429ddae5d62SMichael J. Ruhl cm_node->rem_addr, 4); 430ddae5d62SMichael J. Ruhl ), 431ddae5d62SMichael J. Ruhl TP_printk("iwdev=%p node=%p ah=%p refcnt=%d vlan_id=%d accel=%d state=%s loc: %s rem: %s", 432ddae5d62SMichael J. Ruhl __entry->iwdev, 433ddae5d62SMichael J. Ruhl __entry->cm_node, 434ddae5d62SMichael J. Ruhl __entry->ah, 435ddae5d62SMichael J. Ruhl __entry->refcount, 436ddae5d62SMichael J. Ruhl __entry->vlan_id, 437ddae5d62SMichael J. Ruhl __entry->accel, 438ddae5d62SMichael J. Ruhl parse_cm_state(__entry->state), 439ddae5d62SMichael J. Ruhl __print_ip_addr(__get_dynamic_array(laddr), 440ddae5d62SMichael J. Ruhl __entry->lport, __entry->ipv4), 441ddae5d62SMichael J. Ruhl __print_ip_addr(__get_dynamic_array(raddr), 442ddae5d62SMichael J. Ruhl __entry->rport, __entry->ipv4) 443ddae5d62SMichael J. Ruhl ) 444ddae5d62SMichael J. Ruhl ); 445ddae5d62SMichael J. Ruhl 446ddae5d62SMichael J. Ruhl DEFINE_EVENT(cm_node_ah_template, irdma_cm_free_ah, 447ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_cm_node *cm_node), 448ddae5d62SMichael J. Ruhl TP_ARGS(cm_node)); 449ddae5d62SMichael J. Ruhl 450ddae5d62SMichael J. Ruhl DEFINE_EVENT(cm_node_ah_template, irdma_create_ah, 451ddae5d62SMichael J. Ruhl TP_PROTO(struct irdma_cm_node *cm_node), 452ddae5d62SMichael J. Ruhl TP_ARGS(cm_node)); 453ddae5d62SMichael J. Ruhl 454ddae5d62SMichael J. Ruhl #endif /* __TRACE_CM_H */ 455ddae5d62SMichael J. Ruhl 456ddae5d62SMichael J. Ruhl #undef TRACE_INCLUDE_PATH 457ddae5d62SMichael J. Ruhl #undef TRACE_INCLUDE_FILE 458ddae5d62SMichael J. Ruhl #define TRACE_INCLUDE_PATH . 459ddae5d62SMichael J. Ruhl #define TRACE_INCLUDE_FILE trace_cm 460ddae5d62SMichael J. Ruhl #include <trace/define_trace.h> 461