1 /* SPDX-License-Identifier: GPL-2.0 */ 2 3 #undef TRACE_SYSTEM 4 #define TRACE_SYSTEM smc 5 6 #if !defined(_TRACE_SMC_H) || defined(TRACE_HEADER_MULTI_READ) 7 #define _TRACE_SMC_H 8 9 #include <linux/ipv6.h> 10 #include <linux/tcp.h> 11 #include <linux/tracepoint.h> 12 #include <net/ipv6.h> 13 #include "smc.h" 14 #include "smc_core.h" 15 16 TRACE_EVENT(smc_switch_to_fallback, 17 18 TP_PROTO(const struct smc_sock *smc, int fallback_rsn), 19 20 TP_ARGS(smc, fallback_rsn), 21 22 TP_STRUCT__entry( 23 __field(const void *, sk) 24 __field(const void *, clcsk) 25 __field(u64, net_cookie) 26 __field(int, fallback_rsn) 27 ), 28 29 TP_fast_assign( 30 const struct sock *sk = &smc->sk; 31 const struct sock *clcsk = smc->clcsock->sk; 32 33 __entry->sk = sk; 34 __entry->clcsk = clcsk; 35 __entry->net_cookie = sock_net(sk)->net_cookie; 36 __entry->fallback_rsn = fallback_rsn; 37 ), 38 39 TP_printk("sk=%p clcsk=%p net=%llu fallback_rsn=%d", 40 __entry->sk, __entry->clcsk, 41 __entry->net_cookie, __entry->fallback_rsn) 42 ); 43 44 DECLARE_EVENT_CLASS(smc_msg_event, 45 46 TP_PROTO(const struct smc_sock *smc, size_t len), 47 48 TP_ARGS(smc, len), 49 50 TP_STRUCT__entry( 51 __field(const void *, smc) 52 __field(u64, net_cookie) 53 __field(size_t, len) 54 __string(name, smc->conn.lnk->ibname) 55 ), 56 57 TP_fast_assign( 58 const struct sock *sk = &smc->sk; 59 60 __entry->smc = smc; 61 __entry->net_cookie = sock_net(sk)->net_cookie; 62 __entry->len = len; 63 __assign_str(name, smc->conn.lnk->ibname); 64 ), 65 66 TP_printk("smc=%p net=%llu len=%zu dev=%s", 67 __entry->smc, __entry->net_cookie, 68 __entry->len, __get_str(name)) 69 ); 70 71 DEFINE_EVENT(smc_msg_event, smc_tx_sendmsg, 72 73 TP_PROTO(const struct smc_sock *smc, size_t len), 74 75 TP_ARGS(smc, len) 76 ); 77 78 DEFINE_EVENT(smc_msg_event, smc_rx_recvmsg, 79 80 TP_PROTO(const struct smc_sock *smc, size_t len), 81 82 TP_ARGS(smc, len) 83 ); 84 85 TRACE_EVENT(smcr_link_down, 86 87 TP_PROTO(const struct smc_link *lnk, void *location), 88 89 TP_ARGS(lnk, location), 90 91 TP_STRUCT__entry( 92 __field(const void *, lnk) 93 __field(const void *, lgr) 94 __field(u64, net_cookie) 95 __field(int, state) 96 __string(name, lnk->ibname) 97 __field(void *, location) 98 ), 99 100 TP_fast_assign( 101 const struct smc_link_group *lgr = lnk->lgr; 102 103 __entry->lnk = lnk; 104 __entry->lgr = lgr; 105 __entry->net_cookie = lgr->net->net_cookie; 106 __entry->state = lnk->state; 107 __assign_str(name, lnk->ibname); 108 __entry->location = location; 109 ), 110 111 TP_printk("lnk=%p lgr=%p net=%llu state=%d dev=%s location=%pS", 112 __entry->lnk, __entry->lgr, __entry->net_cookie, 113 __entry->state, __get_str(name), 114 __entry->location) 115 ); 116 117 #endif /* _TRACE_SMC_H */ 118 119 #undef TRACE_INCLUDE_PATH 120 #define TRACE_INCLUDE_PATH . 121 122 #undef TRACE_INCLUDE_FILE 123 #define TRACE_INCLUDE_FILE smc_tracepoint 124 125 #include <trace/define_trace.h> 126