smc_tracepoint.h (2999B)
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 16TRACE_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 44DECLARE_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 71DEFINE_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 78DEFINE_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 85TRACE_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>