Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

rdma/ib: Add trace point macros to display human-readable values

These can be shared with all kernel ULPs, and more can easily be
added as needed.

Note: checkpatch.pl has some heartburn with the TRACE_DEFINE_ENUM
macros and the LIST macros. These follow the same style as other
header files under include/tracing/events , thus should be
considered acceptable exceptions.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Acked-by: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>

authored by

Chuck Lever and committed by
Anna Schumaker
6b3a60ae ec12e479

+129
+129
include/trace/events/rdma.h
··· 1 + /* SPDX-License-Identifier: GPL-2.0 */ 2 + /* 3 + * Copyright (c) 2017 Oracle. All rights reserved. 4 + */ 5 + 6 + /* 7 + * enum ib_event_type, from include/rdma/ib_verbs.h 8 + */ 9 + 10 + #define IB_EVENT_LIST \ 11 + ib_event(CQ_ERR) \ 12 + ib_event(QP_FATAL) \ 13 + ib_event(QP_REQ_ERR) \ 14 + ib_event(QP_ACCESS_ERR) \ 15 + ib_event(COMM_EST) \ 16 + ib_event(SQ_DRAINED) \ 17 + ib_event(PATH_MIG) \ 18 + ib_event(PATH_MIG_ERR) \ 19 + ib_event(DEVICE_FATAL) \ 20 + ib_event(PORT_ACTIVE) \ 21 + ib_event(PORT_ERR) \ 22 + ib_event(LID_CHANGE) \ 23 + ib_event(PKEY_CHANGE) \ 24 + ib_event(SM_CHANGE) \ 25 + ib_event(SRQ_ERR) \ 26 + ib_event(SRQ_LIMIT_REACHED) \ 27 + ib_event(QP_LAST_WQE_REACHED) \ 28 + ib_event(CLIENT_REREGISTER) \ 29 + ib_event(GID_CHANGE) \ 30 + ib_event_end(WQ_FATAL) 31 + 32 + #undef ib_event 33 + #undef ib_event_end 34 + 35 + #define ib_event(x) TRACE_DEFINE_ENUM(IB_EVENT_##x); 36 + #define ib_event_end(x) TRACE_DEFINE_ENUM(IB_EVENT_##x); 37 + 38 + IB_EVENT_LIST 39 + 40 + #undef ib_event 41 + #undef ib_event_end 42 + 43 + #define ib_event(x) { IB_EVENT_##x, #x }, 44 + #define ib_event_end(x) { IB_EVENT_##x, #x } 45 + 46 + #define rdma_show_ib_event(x) \ 47 + __print_symbolic(x, IB_EVENT_LIST) 48 + 49 + /* 50 + * enum ib_wc_status type, from include/rdma/ib_verbs.h 51 + */ 52 + #define IB_WC_STATUS_LIST \ 53 + ib_wc_status(SUCCESS) \ 54 + ib_wc_status(LOC_LEN_ERR) \ 55 + ib_wc_status(LOC_QP_OP_ERR) \ 56 + ib_wc_status(LOC_EEC_OP_ERR) \ 57 + ib_wc_status(LOC_PROT_ERR) \ 58 + ib_wc_status(WR_FLUSH_ERR) \ 59 + ib_wc_status(MW_BIND_ERR) \ 60 + ib_wc_status(BAD_RESP_ERR) \ 61 + ib_wc_status(LOC_ACCESS_ERR) \ 62 + ib_wc_status(REM_INV_REQ_ERR) \ 63 + ib_wc_status(REM_ACCESS_ERR) \ 64 + ib_wc_status(REM_OP_ERR) \ 65 + ib_wc_status(RETRY_EXC_ERR) \ 66 + ib_wc_status(RNR_RETRY_EXC_ERR) \ 67 + ib_wc_status(LOC_RDD_VIOL_ERR) \ 68 + ib_wc_status(REM_INV_RD_REQ_ERR) \ 69 + ib_wc_status(REM_ABORT_ERR) \ 70 + ib_wc_status(INV_EECN_ERR) \ 71 + ib_wc_status(INV_EEC_STATE_ERR) \ 72 + ib_wc_status(FATAL_ERR) \ 73 + ib_wc_status(RESP_TIMEOUT_ERR) \ 74 + ib_wc_status_end(GENERAL_ERR) 75 + 76 + #undef ib_wc_status 77 + #undef ib_wc_status_end 78 + 79 + #define ib_wc_status(x) TRACE_DEFINE_ENUM(IB_WC_##x); 80 + #define ib_wc_status_end(x) TRACE_DEFINE_ENUM(IB_WC_##x); 81 + 82 + IB_WC_STATUS_LIST 83 + 84 + #undef ib_wc_status 85 + #undef ib_wc_status_end 86 + 87 + #define ib_wc_status(x) { IB_WC_##x, #x }, 88 + #define ib_wc_status_end(x) { IB_WC_##x, #x } 89 + 90 + #define rdma_show_wc_status(x) \ 91 + __print_symbolic(x, IB_WC_STATUS_LIST) 92 + 93 + /* 94 + * enum rdma_cm_event_type, from include/rdma/rdma_cm.h 95 + */ 96 + #define RDMA_CM_EVENT_LIST \ 97 + rdma_cm_event(ADDR_RESOLVED) \ 98 + rdma_cm_event(ADDR_ERROR) \ 99 + rdma_cm_event(ROUTE_RESOLVED) \ 100 + rdma_cm_event(ROUTE_ERROR) \ 101 + rdma_cm_event(CONNECT_REQUEST) \ 102 + rdma_cm_event(CONNECT_RESPONSE) \ 103 + rdma_cm_event(CONNECT_ERROR) \ 104 + rdma_cm_event(UNREACHABLE) \ 105 + rdma_cm_event(REJECTED) \ 106 + rdma_cm_event(ESTABLISHED) \ 107 + rdma_cm_event(DISCONNECTED) \ 108 + rdma_cm_event(DEVICE_REMOVAL) \ 109 + rdma_cm_event(MULTICAST_JOIN) \ 110 + rdma_cm_event(MULTICAST_ERROR) \ 111 + rdma_cm_event(ADDR_CHANGE) \ 112 + rdma_cm_event_end(TIMEWAIT_EXIT) 113 + 114 + #undef rdma_cm_event 115 + #undef rdma_cm_event_end 116 + 117 + #define rdma_cm_event(x) TRACE_DEFINE_ENUM(RDMA_CM_EVENT_##x); 118 + #define rdma_cm_event_end(x) TRACE_DEFINE_ENUM(RDMA_CM_EVENT_##x); 119 + 120 + RDMA_CM_EVENT_LIST 121 + 122 + #undef rdma_cm_event 123 + #undef rdma_cm_event_end 124 + 125 + #define rdma_cm_event(x) { RDMA_CM_EVENT_##x, #x }, 126 + #define rdma_cm_event_end(x) { RDMA_CM_EVENT_##x, #x } 127 + 128 + #define rdma_show_cm_event(x) \ 129 + __print_symbolic(x, RDMA_CM_EVENT_LIST)