/* SPDX-License-Identifier: GPL-2.0+ */ /* * RDMA Network Block Driver * * Copyright (c) 2022 1&1 IONOS SE. All rights reserved. */ #undef TRACE_SYSTEM #define TRACE_SYSTEM rtrs_clt #if !defined(_TRACE_RTRS_CLT_H) || defined(TRACE_HEADER_MULTI_READ) #define _TRACE_RTRS_CLT_H #include struct rtrs_clt_path; struct rtrs_clt_sess; TRACE_DEFINE_ENUM(RTRS_CLT_CONNECTING); TRACE_DEFINE_ENUM(RTRS_CLT_CONNECTING_ERR); TRACE_DEFINE_ENUM(RTRS_CLT_RECONNECTING); TRACE_DEFINE_ENUM(RTRS_CLT_CONNECTED); TRACE_DEFINE_ENUM(RTRS_CLT_CLOSING); TRACE_DEFINE_ENUM(RTRS_CLT_CLOSED); TRACE_DEFINE_ENUM(RTRS_CLT_DEAD); #define show_rtrs_clt_state(x) \ __print_symbolic(x, \ { RTRS_CLT_CONNECTING, "CONNECTING" }, \ { RTRS_CLT_CONNECTING_ERR, "CONNECTING_ERR" }, \ { RTRS_CLT_RECONNECTING, "RECONNECTING" }, \ { RTRS_CLT_CONNECTED, "CONNECTED" }, \ { RTRS_CLT_CLOSING, "CLOSING" }, \ { RTRS_CLT_CLOSED, "CLOSED" }, \ { RTRS_CLT_DEAD, "DEAD" }) DECLARE_EVENT_CLASS(rtrs_clt_conn_class, TP_PROTO(struct rtrs_clt_path *clt_path), TP_ARGS(clt_path), TP_STRUCT__entry( __field(int, state) __field(int, reconnect_attempts) __field(int, max_reconnect_attempts) __field(int, fail_cnt) __field(int, success_cnt) __array(char, sessname, NAME_MAX) ), TP_fast_assign( struct rtrs_clt_sess *clt = clt_path->clt; __entry->state = clt_path->state; __entry->reconnect_attempts = clt_path->reconnect_attempts; __entry->max_reconnect_attempts = clt->max_reconnect_attempts; __entry->fail_cnt = clt_path->stats->reconnects.fail_cnt; __entry->success_cnt = clt_path->stats->reconnects.successful_cnt; memcpy(__entry->sessname, kobject_name(&clt_path->kobj), NAME_MAX); ), TP_printk("RTRS-CLT: sess='%s' state=%s attempts='%d' max-attempts='%d' fail='%d' success='%d'", __entry->sessname, show_rtrs_clt_state(__entry->state), __entry->reconnect_attempts, __entry->max_reconnect_attempts, __entry->fail_cnt, __entry->success_cnt ) ); #define DEFINE_CLT_CONN_EVENT(name) \ DEFINE_EVENT(rtrs_clt_conn_class, rtrs_##name, \ TP_PROTO(struct rtrs_clt_path *clt_path), \ TP_ARGS(clt_path)) DEFINE_CLT_CONN_EVENT(clt_reconnect_work); DEFINE_CLT_CONN_EVENT(clt_close_conns); DEFINE_CLT_CONN_EVENT(rdma_error_recovery); #endif /* _TRACE_RTRS_CLT_H */ #undef TRACE_INCLUDE_PATH #define TRACE_INCLUDE_PATH . #define TRACE_INCLUDE_FILE rtrs-clt-trace #include