1f1d3b8f9SAlexander Aring /* SPDX-License-Identifier: GPL-2.0 */ 2f1d3b8f9SAlexander Aring #undef TRACE_SYSTEM 3f1d3b8f9SAlexander Aring #define TRACE_SYSTEM dlm 4f1d3b8f9SAlexander Aring 5f1d3b8f9SAlexander Aring #if !defined(_TRACE_DLM_H) || defined(TRACE_HEADER_MULTI_READ) 6f1d3b8f9SAlexander Aring #define _TRACE_DLM_H 7f1d3b8f9SAlexander Aring 8f1d3b8f9SAlexander Aring #include <linux/dlm.h> 9f1d3b8f9SAlexander Aring #include <linux/dlmconstants.h> 10*8c95006dSAlexander Aring #include <uapi/linux/dlm_plock.h> 11f1d3b8f9SAlexander Aring #include <linux/tracepoint.h> 12f1d3b8f9SAlexander Aring 13f1d3b8f9SAlexander Aring #include "../../../fs/dlm/dlm_internal.h" 14f1d3b8f9SAlexander Aring 15f1d3b8f9SAlexander Aring #define show_lock_flags(flags) __print_flags(flags, "|", \ 16f1d3b8f9SAlexander Aring { DLM_LKF_NOQUEUE, "NOQUEUE" }, \ 17f1d3b8f9SAlexander Aring { DLM_LKF_CANCEL, "CANCEL" }, \ 18f1d3b8f9SAlexander Aring { DLM_LKF_CONVERT, "CONVERT" }, \ 19f1d3b8f9SAlexander Aring { DLM_LKF_VALBLK, "VALBLK" }, \ 20f1d3b8f9SAlexander Aring { DLM_LKF_QUECVT, "QUECVT" }, \ 21f1d3b8f9SAlexander Aring { DLM_LKF_IVVALBLK, "IVVALBLK" }, \ 22f1d3b8f9SAlexander Aring { DLM_LKF_CONVDEADLK, "CONVDEADLK" }, \ 23f1d3b8f9SAlexander Aring { DLM_LKF_PERSISTENT, "PERSISTENT" }, \ 24f1d3b8f9SAlexander Aring { DLM_LKF_NODLCKWT, "NODLCKWT" }, \ 25f1d3b8f9SAlexander Aring { DLM_LKF_NODLCKBLK, "NODLCKBLK" }, \ 26f1d3b8f9SAlexander Aring { DLM_LKF_EXPEDITE, "EXPEDITE" }, \ 27f1d3b8f9SAlexander Aring { DLM_LKF_NOQUEUEBAST, "NOQUEUEBAST" }, \ 28f1d3b8f9SAlexander Aring { DLM_LKF_HEADQUE, "HEADQUE" }, \ 29f1d3b8f9SAlexander Aring { DLM_LKF_NOORDER, "NOORDER" }, \ 30f1d3b8f9SAlexander Aring { DLM_LKF_ORPHAN, "ORPHAN" }, \ 31f1d3b8f9SAlexander Aring { DLM_LKF_ALTPR, "ALTPR" }, \ 32f1d3b8f9SAlexander Aring { DLM_LKF_ALTCW, "ALTCW" }, \ 33f1d3b8f9SAlexander Aring { DLM_LKF_FORCEUNLOCK, "FORCEUNLOCK" }, \ 34f1d3b8f9SAlexander Aring { DLM_LKF_TIMEOUT, "TIMEOUT" }) 35f1d3b8f9SAlexander Aring 36f1d3b8f9SAlexander Aring #define show_lock_mode(mode) __print_symbolic(mode, \ 37f1d3b8f9SAlexander Aring { DLM_LOCK_IV, "IV"}, \ 38f1d3b8f9SAlexander Aring { DLM_LOCK_NL, "NL"}, \ 39f1d3b8f9SAlexander Aring { DLM_LOCK_CR, "CR"}, \ 40f1d3b8f9SAlexander Aring { DLM_LOCK_CW, "CW"}, \ 41f1d3b8f9SAlexander Aring { DLM_LOCK_PR, "PR"}, \ 42f1d3b8f9SAlexander Aring { DLM_LOCK_PW, "PW"}, \ 43f1d3b8f9SAlexander Aring { DLM_LOCK_EX, "EX"}) 44f1d3b8f9SAlexander Aring 45f1d3b8f9SAlexander Aring #define show_dlm_sb_flags(flags) __print_flags(flags, "|", \ 46f1d3b8f9SAlexander Aring { DLM_SBF_DEMOTED, "DEMOTED" }, \ 47f1d3b8f9SAlexander Aring { DLM_SBF_VALNOTVALID, "VALNOTVALID" }, \ 48f1d3b8f9SAlexander Aring { DLM_SBF_ALTMODE, "ALTMODE" }) 49f1d3b8f9SAlexander Aring 50e01c4b7bSAlexander Aring #define show_lkb_flags(flags) __print_flags(flags, "|", \ 518a39dcd9SAlexander Aring { BIT(DLM_DFL_USER_BIT), "USER" }, \ 528a39dcd9SAlexander Aring { BIT(DLM_DFL_ORPHAN_BIT), "ORPHAN" }) 53e01c4b7bSAlexander Aring 54e01c4b7bSAlexander Aring #define show_header_cmd(cmd) __print_symbolic(cmd, \ 55e01c4b7bSAlexander Aring { DLM_MSG, "MSG"}, \ 56e01c4b7bSAlexander Aring { DLM_RCOM, "RCOM"}, \ 57e01c4b7bSAlexander Aring { DLM_OPTS, "OPTS"}, \ 58e01c4b7bSAlexander Aring { DLM_ACK, "ACK"}, \ 59e01c4b7bSAlexander Aring { DLM_FIN, "FIN"}) 60e01c4b7bSAlexander Aring 61e01c4b7bSAlexander Aring #define show_message_version(version) __print_symbolic(version, \ 62e01c4b7bSAlexander Aring { DLM_VERSION_3_1, "3.1"}, \ 63e01c4b7bSAlexander Aring { DLM_VERSION_3_2, "3.2"}) 64e01c4b7bSAlexander Aring 65e01c4b7bSAlexander Aring #define show_message_type(type) __print_symbolic(type, \ 66e01c4b7bSAlexander Aring { DLM_MSG_REQUEST, "REQUEST"}, \ 67e01c4b7bSAlexander Aring { DLM_MSG_CONVERT, "CONVERT"}, \ 68e01c4b7bSAlexander Aring { DLM_MSG_UNLOCK, "UNLOCK"}, \ 69e01c4b7bSAlexander Aring { DLM_MSG_CANCEL, "CANCEL"}, \ 70e01c4b7bSAlexander Aring { DLM_MSG_REQUEST_REPLY, "REQUEST_REPLY"}, \ 71e01c4b7bSAlexander Aring { DLM_MSG_CONVERT_REPLY, "CONVERT_REPLY"}, \ 72e01c4b7bSAlexander Aring { DLM_MSG_UNLOCK_REPLY, "UNLOCK_REPLY"}, \ 73e01c4b7bSAlexander Aring { DLM_MSG_CANCEL_REPLY, "CANCEL_REPLY"}, \ 74e01c4b7bSAlexander Aring { DLM_MSG_GRANT, "GRANT"}, \ 75e01c4b7bSAlexander Aring { DLM_MSG_BAST, "BAST"}, \ 76e01c4b7bSAlexander Aring { DLM_MSG_LOOKUP, "LOOKUP"}, \ 77e01c4b7bSAlexander Aring { DLM_MSG_REMOVE, "REMOVE"}, \ 78e01c4b7bSAlexander Aring { DLM_MSG_LOOKUP_REPLY, "LOOKUP_REPLY"}, \ 79e01c4b7bSAlexander Aring { DLM_MSG_PURGE, "PURGE"}) 80e01c4b7bSAlexander Aring 81e01c4b7bSAlexander Aring #define show_rcom_type(type) __print_symbolic(type, \ 82e01c4b7bSAlexander Aring { DLM_RCOM_STATUS, "STATUS"}, \ 83e01c4b7bSAlexander Aring { DLM_RCOM_NAMES, "NAMES"}, \ 84e01c4b7bSAlexander Aring { DLM_RCOM_LOOKUP, "LOOKUP"}, \ 85e01c4b7bSAlexander Aring { DLM_RCOM_LOCK, "LOCK"}, \ 86e01c4b7bSAlexander Aring { DLM_RCOM_STATUS_REPLY, "STATUS_REPLY"}, \ 87e01c4b7bSAlexander Aring { DLM_RCOM_NAMES_REPLY, "NAMES_REPLY"}, \ 88e01c4b7bSAlexander Aring { DLM_RCOM_LOOKUP_REPLY, "LOOKUP_REPLY"}, \ 89e01c4b7bSAlexander Aring { DLM_RCOM_LOCK_REPLY, "LOCK_REPLY"}) 90e01c4b7bSAlexander Aring 91e01c4b7bSAlexander Aring 92f1d3b8f9SAlexander Aring /* note: we begin tracing dlm_lock_start() only if ls and lkb are found */ 93f1d3b8f9SAlexander Aring TRACE_EVENT(dlm_lock_start, 94f1d3b8f9SAlexander Aring 9556171e0dSAlexander Aring TP_PROTO(struct dlm_ls *ls, struct dlm_lkb *lkb, const void *name, 965d92a30eSAlexander Aring unsigned int namelen, int mode, __u32 flags), 97f1d3b8f9SAlexander Aring 985d92a30eSAlexander Aring TP_ARGS(ls, lkb, name, namelen, mode, flags), 99f1d3b8f9SAlexander Aring 100f1d3b8f9SAlexander Aring TP_STRUCT__entry( 101f1d3b8f9SAlexander Aring __field(__u32, ls_id) 102f1d3b8f9SAlexander Aring __field(__u32, lkb_id) 103f1d3b8f9SAlexander Aring __field(int, mode) 104f1d3b8f9SAlexander Aring __field(__u32, flags) 1055d92a30eSAlexander Aring __dynamic_array(unsigned char, res_name, 1065d92a30eSAlexander Aring lkb->lkb_resource ? lkb->lkb_resource->res_length : namelen) 107f1d3b8f9SAlexander Aring ), 108f1d3b8f9SAlexander Aring 109f1d3b8f9SAlexander Aring TP_fast_assign( 1105d92a30eSAlexander Aring struct dlm_rsb *r; 1115d92a30eSAlexander Aring 112f1d3b8f9SAlexander Aring __entry->ls_id = ls->ls_global_id; 113f1d3b8f9SAlexander Aring __entry->lkb_id = lkb->lkb_id; 114f1d3b8f9SAlexander Aring __entry->mode = mode; 115f1d3b8f9SAlexander Aring __entry->flags = flags; 1165d92a30eSAlexander Aring 1175d92a30eSAlexander Aring r = lkb->lkb_resource; 1185d92a30eSAlexander Aring if (r) 1195d92a30eSAlexander Aring memcpy(__get_dynamic_array(res_name), r->res_name, 1205d92a30eSAlexander Aring __get_dynamic_array_len(res_name)); 1215d92a30eSAlexander Aring else if (name) 1225d92a30eSAlexander Aring memcpy(__get_dynamic_array(res_name), name, 1235d92a30eSAlexander Aring __get_dynamic_array_len(res_name)); 124f1d3b8f9SAlexander Aring ), 125f1d3b8f9SAlexander Aring 1265d92a30eSAlexander Aring TP_printk("ls_id=%u lkb_id=%x mode=%s flags=%s res_name=%s", 127f1d3b8f9SAlexander Aring __entry->ls_id, __entry->lkb_id, 128f1d3b8f9SAlexander Aring show_lock_mode(__entry->mode), 1295d92a30eSAlexander Aring show_lock_flags(__entry->flags), 1305d92a30eSAlexander Aring __print_hex_str(__get_dynamic_array(res_name), 1315d92a30eSAlexander Aring __get_dynamic_array_len(res_name))) 132f1d3b8f9SAlexander Aring 133f1d3b8f9SAlexander Aring ); 134f1d3b8f9SAlexander Aring 135f1d3b8f9SAlexander Aring TRACE_EVENT(dlm_lock_end, 136f1d3b8f9SAlexander Aring 13756171e0dSAlexander Aring TP_PROTO(struct dlm_ls *ls, struct dlm_lkb *lkb, const void *name, 1387a3de732SAlexander Aring unsigned int namelen, int mode, __u32 flags, int error, 1397a3de732SAlexander Aring bool kernel_lock), 140f1d3b8f9SAlexander Aring 1417a3de732SAlexander Aring TP_ARGS(ls, lkb, name, namelen, mode, flags, error, kernel_lock), 142f1d3b8f9SAlexander Aring 143f1d3b8f9SAlexander Aring TP_STRUCT__entry( 144f1d3b8f9SAlexander Aring __field(__u32, ls_id) 145f1d3b8f9SAlexander Aring __field(__u32, lkb_id) 146f1d3b8f9SAlexander Aring __field(int, mode) 147f1d3b8f9SAlexander Aring __field(__u32, flags) 148f1d3b8f9SAlexander Aring __field(int, error) 1495d92a30eSAlexander Aring __dynamic_array(unsigned char, res_name, 1505d92a30eSAlexander Aring lkb->lkb_resource ? lkb->lkb_resource->res_length : namelen) 151f1d3b8f9SAlexander Aring ), 152f1d3b8f9SAlexander Aring 153f1d3b8f9SAlexander Aring TP_fast_assign( 1545d92a30eSAlexander Aring struct dlm_rsb *r; 1555d92a30eSAlexander Aring 156f1d3b8f9SAlexander Aring __entry->ls_id = ls->ls_global_id; 157f1d3b8f9SAlexander Aring __entry->lkb_id = lkb->lkb_id; 158f1d3b8f9SAlexander Aring __entry->mode = mode; 159f1d3b8f9SAlexander Aring __entry->flags = flags; 1607a3de732SAlexander Aring __entry->error = error; 161f1d3b8f9SAlexander Aring 1625d92a30eSAlexander Aring r = lkb->lkb_resource; 1635d92a30eSAlexander Aring if (r) 1645d92a30eSAlexander Aring memcpy(__get_dynamic_array(res_name), r->res_name, 1655d92a30eSAlexander Aring __get_dynamic_array_len(res_name)); 1665d92a30eSAlexander Aring else if (name) 1675d92a30eSAlexander Aring memcpy(__get_dynamic_array(res_name), name, 1685d92a30eSAlexander Aring __get_dynamic_array_len(res_name)); 1695d92a30eSAlexander Aring 1707a3de732SAlexander Aring if (kernel_lock) { 171f1d3b8f9SAlexander Aring /* return value will be zeroed in those cases by dlm_lock() 172f1d3b8f9SAlexander Aring * we do it here again to not introduce more overhead if 173f1d3b8f9SAlexander Aring * trace isn't running and error reflects the return value. 174f1d3b8f9SAlexander Aring */ 175f1d3b8f9SAlexander Aring if (error == -EAGAIN || error == -EDEADLK) 176f1d3b8f9SAlexander Aring __entry->error = 0; 1777a3de732SAlexander Aring } 1785d92a30eSAlexander Aring 179f1d3b8f9SAlexander Aring ), 180f1d3b8f9SAlexander Aring 1815d92a30eSAlexander Aring TP_printk("ls_id=%u lkb_id=%x mode=%s flags=%s error=%d res_name=%s", 182f1d3b8f9SAlexander Aring __entry->ls_id, __entry->lkb_id, 183f1d3b8f9SAlexander Aring show_lock_mode(__entry->mode), 1845d92a30eSAlexander Aring show_lock_flags(__entry->flags), __entry->error, 1855d92a30eSAlexander Aring __print_hex_str(__get_dynamic_array(res_name), 1865d92a30eSAlexander Aring __get_dynamic_array_len(res_name))) 187f1d3b8f9SAlexander Aring 188f1d3b8f9SAlexander Aring ); 189f1d3b8f9SAlexander Aring 190f1d3b8f9SAlexander Aring TRACE_EVENT(dlm_bast, 191f1d3b8f9SAlexander Aring 192f1d3b8f9SAlexander Aring TP_PROTO(struct dlm_ls *ls, struct dlm_lkb *lkb, int mode), 193f1d3b8f9SAlexander Aring 194f1d3b8f9SAlexander Aring TP_ARGS(ls, lkb, mode), 195f1d3b8f9SAlexander Aring 196f1d3b8f9SAlexander Aring TP_STRUCT__entry( 197f1d3b8f9SAlexander Aring __field(__u32, ls_id) 198f1d3b8f9SAlexander Aring __field(__u32, lkb_id) 199f1d3b8f9SAlexander Aring __field(int, mode) 2005d92a30eSAlexander Aring __dynamic_array(unsigned char, res_name, 2015d92a30eSAlexander Aring lkb->lkb_resource ? lkb->lkb_resource->res_length : 0) 202f1d3b8f9SAlexander Aring ), 203f1d3b8f9SAlexander Aring 204f1d3b8f9SAlexander Aring TP_fast_assign( 2055d92a30eSAlexander Aring struct dlm_rsb *r; 2065d92a30eSAlexander Aring 207f1d3b8f9SAlexander Aring __entry->ls_id = ls->ls_global_id; 208f1d3b8f9SAlexander Aring __entry->lkb_id = lkb->lkb_id; 209f1d3b8f9SAlexander Aring __entry->mode = mode; 2105d92a30eSAlexander Aring 2115d92a30eSAlexander Aring r = lkb->lkb_resource; 2125d92a30eSAlexander Aring if (r) 2135d92a30eSAlexander Aring memcpy(__get_dynamic_array(res_name), r->res_name, 2145d92a30eSAlexander Aring __get_dynamic_array_len(res_name)); 215f1d3b8f9SAlexander Aring ), 216f1d3b8f9SAlexander Aring 2175d92a30eSAlexander Aring TP_printk("ls_id=%u lkb_id=%x mode=%s res_name=%s", 2185d92a30eSAlexander Aring __entry->ls_id, __entry->lkb_id, 2195d92a30eSAlexander Aring show_lock_mode(__entry->mode), 2205d92a30eSAlexander Aring __print_hex_str(__get_dynamic_array(res_name), 2215d92a30eSAlexander Aring __get_dynamic_array_len(res_name))) 222f1d3b8f9SAlexander Aring 223f1d3b8f9SAlexander Aring ); 224f1d3b8f9SAlexander Aring 225f1d3b8f9SAlexander Aring TRACE_EVENT(dlm_ast, 226f1d3b8f9SAlexander Aring 2270c4c516fSAlexander Aring TP_PROTO(struct dlm_ls *ls, struct dlm_lkb *lkb), 228f1d3b8f9SAlexander Aring 2290c4c516fSAlexander Aring TP_ARGS(ls, lkb), 230f1d3b8f9SAlexander Aring 231f1d3b8f9SAlexander Aring TP_STRUCT__entry( 232f1d3b8f9SAlexander Aring __field(__u32, ls_id) 233f1d3b8f9SAlexander Aring __field(__u32, lkb_id) 234f1d3b8f9SAlexander Aring __field(u8, sb_flags) 235f1d3b8f9SAlexander Aring __field(int, sb_status) 2365d92a30eSAlexander Aring __dynamic_array(unsigned char, res_name, 2375d92a30eSAlexander Aring lkb->lkb_resource ? lkb->lkb_resource->res_length : 0) 238f1d3b8f9SAlexander Aring ), 239f1d3b8f9SAlexander Aring 240f1d3b8f9SAlexander Aring TP_fast_assign( 2415d92a30eSAlexander Aring struct dlm_rsb *r; 2425d92a30eSAlexander Aring 243f1d3b8f9SAlexander Aring __entry->ls_id = ls->ls_global_id; 244f1d3b8f9SAlexander Aring __entry->lkb_id = lkb->lkb_id; 2450c4c516fSAlexander Aring __entry->sb_flags = lkb->lkb_lksb->sb_flags; 2460c4c516fSAlexander Aring __entry->sb_status = lkb->lkb_lksb->sb_status; 2475d92a30eSAlexander Aring 2485d92a30eSAlexander Aring r = lkb->lkb_resource; 2495d92a30eSAlexander Aring if (r) 2505d92a30eSAlexander Aring memcpy(__get_dynamic_array(res_name), r->res_name, 2515d92a30eSAlexander Aring __get_dynamic_array_len(res_name)); 252f1d3b8f9SAlexander Aring ), 253f1d3b8f9SAlexander Aring 2545d92a30eSAlexander Aring TP_printk("ls_id=%u lkb_id=%x sb_flags=%s sb_status=%d res_name=%s", 255f1d3b8f9SAlexander Aring __entry->ls_id, __entry->lkb_id, 2565d92a30eSAlexander Aring show_dlm_sb_flags(__entry->sb_flags), __entry->sb_status, 2575d92a30eSAlexander Aring __print_hex_str(__get_dynamic_array(res_name), 2585d92a30eSAlexander Aring __get_dynamic_array_len(res_name))) 259f1d3b8f9SAlexander Aring 260f1d3b8f9SAlexander Aring ); 261f1d3b8f9SAlexander Aring 262f1d3b8f9SAlexander Aring /* note: we begin tracing dlm_unlock_start() only if ls and lkb are found */ 263f1d3b8f9SAlexander Aring TRACE_EVENT(dlm_unlock_start, 264f1d3b8f9SAlexander Aring 265f1d3b8f9SAlexander Aring TP_PROTO(struct dlm_ls *ls, struct dlm_lkb *lkb, __u32 flags), 266f1d3b8f9SAlexander Aring 267f1d3b8f9SAlexander Aring TP_ARGS(ls, lkb, flags), 268f1d3b8f9SAlexander Aring 269f1d3b8f9SAlexander Aring TP_STRUCT__entry( 270f1d3b8f9SAlexander Aring __field(__u32, ls_id) 271f1d3b8f9SAlexander Aring __field(__u32, lkb_id) 272f1d3b8f9SAlexander Aring __field(__u32, flags) 2735d92a30eSAlexander Aring __dynamic_array(unsigned char, res_name, 2745d92a30eSAlexander Aring lkb->lkb_resource ? lkb->lkb_resource->res_length : 0) 275f1d3b8f9SAlexander Aring ), 276f1d3b8f9SAlexander Aring 277f1d3b8f9SAlexander Aring TP_fast_assign( 2785d92a30eSAlexander Aring struct dlm_rsb *r; 2795d92a30eSAlexander Aring 280f1d3b8f9SAlexander Aring __entry->ls_id = ls->ls_global_id; 281f1d3b8f9SAlexander Aring __entry->lkb_id = lkb->lkb_id; 282f1d3b8f9SAlexander Aring __entry->flags = flags; 2835d92a30eSAlexander Aring 2845d92a30eSAlexander Aring r = lkb->lkb_resource; 2855d92a30eSAlexander Aring if (r) 2865d92a30eSAlexander Aring memcpy(__get_dynamic_array(res_name), r->res_name, 2875d92a30eSAlexander Aring __get_dynamic_array_len(res_name)); 288f1d3b8f9SAlexander Aring ), 289f1d3b8f9SAlexander Aring 2905d92a30eSAlexander Aring TP_printk("ls_id=%u lkb_id=%x flags=%s res_name=%s", 291f1d3b8f9SAlexander Aring __entry->ls_id, __entry->lkb_id, 2925d92a30eSAlexander Aring show_lock_flags(__entry->flags), 2935d92a30eSAlexander Aring __print_hex_str(__get_dynamic_array(res_name), 2945d92a30eSAlexander Aring __get_dynamic_array_len(res_name))) 295f1d3b8f9SAlexander Aring 296f1d3b8f9SAlexander Aring ); 297f1d3b8f9SAlexander Aring 298f1d3b8f9SAlexander Aring TRACE_EVENT(dlm_unlock_end, 299f1d3b8f9SAlexander Aring 300f1d3b8f9SAlexander Aring TP_PROTO(struct dlm_ls *ls, struct dlm_lkb *lkb, __u32 flags, 301f1d3b8f9SAlexander Aring int error), 302f1d3b8f9SAlexander Aring 303f1d3b8f9SAlexander Aring TP_ARGS(ls, lkb, flags, error), 304f1d3b8f9SAlexander Aring 305f1d3b8f9SAlexander Aring TP_STRUCT__entry( 306f1d3b8f9SAlexander Aring __field(__u32, ls_id) 307f1d3b8f9SAlexander Aring __field(__u32, lkb_id) 308f1d3b8f9SAlexander Aring __field(__u32, flags) 309f1d3b8f9SAlexander Aring __field(int, error) 3105d92a30eSAlexander Aring __dynamic_array(unsigned char, res_name, 3115d92a30eSAlexander Aring lkb->lkb_resource ? lkb->lkb_resource->res_length : 0) 312f1d3b8f9SAlexander Aring ), 313f1d3b8f9SAlexander Aring 314f1d3b8f9SAlexander Aring TP_fast_assign( 3155d92a30eSAlexander Aring struct dlm_rsb *r; 3165d92a30eSAlexander Aring 317f1d3b8f9SAlexander Aring __entry->ls_id = ls->ls_global_id; 318f1d3b8f9SAlexander Aring __entry->lkb_id = lkb->lkb_id; 319f1d3b8f9SAlexander Aring __entry->flags = flags; 320f1d3b8f9SAlexander Aring __entry->error = error; 3215d92a30eSAlexander Aring 3225d92a30eSAlexander Aring r = lkb->lkb_resource; 3235d92a30eSAlexander Aring if (r) 3245d92a30eSAlexander Aring memcpy(__get_dynamic_array(res_name), r->res_name, 3255d92a30eSAlexander Aring __get_dynamic_array_len(res_name)); 326f1d3b8f9SAlexander Aring ), 327f1d3b8f9SAlexander Aring 3285d92a30eSAlexander Aring TP_printk("ls_id=%u lkb_id=%x flags=%s error=%d res_name=%s", 329f1d3b8f9SAlexander Aring __entry->ls_id, __entry->lkb_id, 3305d92a30eSAlexander Aring show_lock_flags(__entry->flags), __entry->error, 3315d92a30eSAlexander Aring __print_hex_str(__get_dynamic_array(res_name), 3325d92a30eSAlexander Aring __get_dynamic_array_len(res_name))) 333f1d3b8f9SAlexander Aring 334f1d3b8f9SAlexander Aring ); 335f1d3b8f9SAlexander Aring 336e01c4b7bSAlexander Aring DECLARE_EVENT_CLASS(dlm_rcom_template, 337e01c4b7bSAlexander Aring 33817827754SAlexander Aring TP_PROTO(uint32_t dst, uint32_t h_seq, const struct dlm_rcom *rc), 339e01c4b7bSAlexander Aring 34017827754SAlexander Aring TP_ARGS(dst, h_seq, rc), 341e01c4b7bSAlexander Aring 342e01c4b7bSAlexander Aring TP_STRUCT__entry( 34317827754SAlexander Aring __field(uint32_t, dst) 34481889255SAlexander Aring __field(uint32_t, h_seq) 345e01c4b7bSAlexander Aring __field(uint32_t, h_version) 346e01c4b7bSAlexander Aring __field(uint32_t, h_lockspace) 347e01c4b7bSAlexander Aring __field(uint32_t, h_nodeid) 348e01c4b7bSAlexander Aring __field(uint16_t, h_length) 349e01c4b7bSAlexander Aring __field(uint8_t, h_cmd) 350e01c4b7bSAlexander Aring __field(uint32_t, rc_type) 351e01c4b7bSAlexander Aring __field(int32_t, rc_result) 352e01c4b7bSAlexander Aring __field(uint64_t, rc_id) 353e01c4b7bSAlexander Aring __field(uint64_t, rc_seq) 354e01c4b7bSAlexander Aring __field(uint64_t, rc_seq_reply) 355e01c4b7bSAlexander Aring __dynamic_array(unsigned char, rc_buf, 356e01c4b7bSAlexander Aring le16_to_cpu(rc->rc_header.h_length) - sizeof(*rc)) 357e01c4b7bSAlexander Aring ), 358e01c4b7bSAlexander Aring 359e01c4b7bSAlexander Aring TP_fast_assign( 36017827754SAlexander Aring __entry->dst = dst; 36181889255SAlexander Aring __entry->h_seq = h_seq; 362e01c4b7bSAlexander Aring __entry->h_version = le32_to_cpu(rc->rc_header.h_version); 363e01c4b7bSAlexander Aring __entry->h_lockspace = le32_to_cpu(rc->rc_header.u.h_lockspace); 364e01c4b7bSAlexander Aring __entry->h_nodeid = le32_to_cpu(rc->rc_header.h_nodeid); 365e01c4b7bSAlexander Aring __entry->h_length = le16_to_cpu(rc->rc_header.h_length); 366e01c4b7bSAlexander Aring __entry->h_cmd = rc->rc_header.h_cmd; 367e01c4b7bSAlexander Aring __entry->rc_type = le32_to_cpu(rc->rc_type); 368e01c4b7bSAlexander Aring __entry->rc_result = le32_to_cpu(rc->rc_result); 369e01c4b7bSAlexander Aring __entry->rc_id = le64_to_cpu(rc->rc_id); 370e01c4b7bSAlexander Aring __entry->rc_seq = le64_to_cpu(rc->rc_seq); 371e01c4b7bSAlexander Aring __entry->rc_seq_reply = le64_to_cpu(rc->rc_seq_reply); 372e01c4b7bSAlexander Aring memcpy(__get_dynamic_array(rc_buf), rc->rc_buf, 373e01c4b7bSAlexander Aring __get_dynamic_array_len(rc_buf)); 374e01c4b7bSAlexander Aring ), 375e01c4b7bSAlexander Aring 37617827754SAlexander Aring TP_printk("dst=%u h_seq=%u h_version=%s h_lockspace=%u h_nodeid=%u " 377e01c4b7bSAlexander Aring "h_length=%u h_cmd=%s rc_type=%s rc_result=%d " 378e01c4b7bSAlexander Aring "rc_id=%llu rc_seq=%llu rc_seq_reply=%llu " 37917827754SAlexander Aring "rc_buf=0x%s", __entry->dst, __entry->h_seq, 380e01c4b7bSAlexander Aring show_message_version(__entry->h_version), 381e01c4b7bSAlexander Aring __entry->h_lockspace, __entry->h_nodeid, __entry->h_length, 382e01c4b7bSAlexander Aring show_header_cmd(__entry->h_cmd), 383e01c4b7bSAlexander Aring show_rcom_type(__entry->rc_type), 384e01c4b7bSAlexander Aring __entry->rc_result, __entry->rc_id, __entry->rc_seq, 385e01c4b7bSAlexander Aring __entry->rc_seq_reply, 386e01c4b7bSAlexander Aring __print_hex_str(__get_dynamic_array(rc_buf), 387e01c4b7bSAlexander Aring __get_dynamic_array_len(rc_buf))) 388e01c4b7bSAlexander Aring 389e01c4b7bSAlexander Aring ); 390e01c4b7bSAlexander Aring 391e01c4b7bSAlexander Aring DEFINE_EVENT(dlm_rcom_template, dlm_send_rcom, 39217827754SAlexander Aring TP_PROTO(uint32_t dst, uint32_t h_seq, const struct dlm_rcom *rc), 39317827754SAlexander Aring TP_ARGS(dst, h_seq, rc)); 394e01c4b7bSAlexander Aring 395e01c4b7bSAlexander Aring DEFINE_EVENT(dlm_rcom_template, dlm_recv_rcom, 39617827754SAlexander Aring TP_PROTO(uint32_t dst, uint32_t h_seq, const struct dlm_rcom *rc), 39717827754SAlexander Aring TP_ARGS(dst, h_seq, rc)); 398e01c4b7bSAlexander Aring 399e01c4b7bSAlexander Aring TRACE_EVENT(dlm_send_message, 400e01c4b7bSAlexander Aring 40117827754SAlexander Aring TP_PROTO(uint32_t dst, uint32_t h_seq, const struct dlm_message *ms, 402e01c4b7bSAlexander Aring const void *name, int namelen), 403e01c4b7bSAlexander Aring 40417827754SAlexander Aring TP_ARGS(dst, h_seq, ms, name, namelen), 405e01c4b7bSAlexander Aring 406e01c4b7bSAlexander Aring TP_STRUCT__entry( 40717827754SAlexander Aring __field(uint32_t, dst) 40881889255SAlexander Aring __field(uint32_t, h_seq) 409e01c4b7bSAlexander Aring __field(uint32_t, h_version) 410e01c4b7bSAlexander Aring __field(uint32_t, h_lockspace) 411e01c4b7bSAlexander Aring __field(uint32_t, h_nodeid) 412e01c4b7bSAlexander Aring __field(uint16_t, h_length) 413e01c4b7bSAlexander Aring __field(uint8_t, h_cmd) 414e01c4b7bSAlexander Aring __field(uint32_t, m_type) 415e01c4b7bSAlexander Aring __field(uint32_t, m_nodeid) 416e01c4b7bSAlexander Aring __field(uint32_t, m_pid) 417e01c4b7bSAlexander Aring __field(uint32_t, m_lkid) 418e01c4b7bSAlexander Aring __field(uint32_t, m_remid) 419e01c4b7bSAlexander Aring __field(uint32_t, m_parent_lkid) 420e01c4b7bSAlexander Aring __field(uint32_t, m_parent_remid) 421e01c4b7bSAlexander Aring __field(uint32_t, m_exflags) 422e01c4b7bSAlexander Aring __field(uint32_t, m_sbflags) 423e01c4b7bSAlexander Aring __field(uint32_t, m_flags) 424e01c4b7bSAlexander Aring __field(uint32_t, m_lvbseq) 425e01c4b7bSAlexander Aring __field(uint32_t, m_hash) 426e01c4b7bSAlexander Aring __field(int32_t, m_status) 427e01c4b7bSAlexander Aring __field(int32_t, m_grmode) 428e01c4b7bSAlexander Aring __field(int32_t, m_rqmode) 429e01c4b7bSAlexander Aring __field(int32_t, m_bastmode) 430e01c4b7bSAlexander Aring __field(int32_t, m_asts) 431e01c4b7bSAlexander Aring __field(int32_t, m_result) 432e01c4b7bSAlexander Aring __dynamic_array(unsigned char, m_extra, 433e01c4b7bSAlexander Aring le16_to_cpu(ms->m_header.h_length) - sizeof(*ms)) 434e01c4b7bSAlexander Aring __dynamic_array(unsigned char, res_name, namelen) 435e01c4b7bSAlexander Aring ), 436e01c4b7bSAlexander Aring 437e01c4b7bSAlexander Aring TP_fast_assign( 43817827754SAlexander Aring __entry->dst = dst; 43981889255SAlexander Aring __entry->h_seq = h_seq; 440e01c4b7bSAlexander Aring __entry->h_version = le32_to_cpu(ms->m_header.h_version); 441e01c4b7bSAlexander Aring __entry->h_lockspace = le32_to_cpu(ms->m_header.u.h_lockspace); 442e01c4b7bSAlexander Aring __entry->h_nodeid = le32_to_cpu(ms->m_header.h_nodeid); 443e01c4b7bSAlexander Aring __entry->h_length = le16_to_cpu(ms->m_header.h_length); 444e01c4b7bSAlexander Aring __entry->h_cmd = ms->m_header.h_cmd; 445e01c4b7bSAlexander Aring __entry->m_type = le32_to_cpu(ms->m_type); 446e01c4b7bSAlexander Aring __entry->m_nodeid = le32_to_cpu(ms->m_nodeid); 447e01c4b7bSAlexander Aring __entry->m_pid = le32_to_cpu(ms->m_pid); 448e01c4b7bSAlexander Aring __entry->m_lkid = le32_to_cpu(ms->m_lkid); 449e01c4b7bSAlexander Aring __entry->m_remid = le32_to_cpu(ms->m_remid); 450e01c4b7bSAlexander Aring __entry->m_parent_lkid = le32_to_cpu(ms->m_parent_lkid); 451e01c4b7bSAlexander Aring __entry->m_parent_remid = le32_to_cpu(ms->m_parent_remid); 452e01c4b7bSAlexander Aring __entry->m_exflags = le32_to_cpu(ms->m_exflags); 453e01c4b7bSAlexander Aring __entry->m_sbflags = le32_to_cpu(ms->m_sbflags); 454e01c4b7bSAlexander Aring __entry->m_flags = le32_to_cpu(ms->m_flags); 455e01c4b7bSAlexander Aring __entry->m_lvbseq = le32_to_cpu(ms->m_lvbseq); 456e01c4b7bSAlexander Aring __entry->m_hash = le32_to_cpu(ms->m_hash); 457e01c4b7bSAlexander Aring __entry->m_status = le32_to_cpu(ms->m_status); 458e01c4b7bSAlexander Aring __entry->m_grmode = le32_to_cpu(ms->m_grmode); 459e01c4b7bSAlexander Aring __entry->m_rqmode = le32_to_cpu(ms->m_rqmode); 460e01c4b7bSAlexander Aring __entry->m_bastmode = le32_to_cpu(ms->m_bastmode); 461e01c4b7bSAlexander Aring __entry->m_asts = le32_to_cpu(ms->m_asts); 462e01c4b7bSAlexander Aring __entry->m_result = le32_to_cpu(ms->m_result); 463e01c4b7bSAlexander Aring memcpy(__get_dynamic_array(m_extra), ms->m_extra, 464e01c4b7bSAlexander Aring __get_dynamic_array_len(m_extra)); 465e01c4b7bSAlexander Aring memcpy(__get_dynamic_array(res_name), name, 466e01c4b7bSAlexander Aring __get_dynamic_array_len(res_name)); 467e01c4b7bSAlexander Aring ), 468e01c4b7bSAlexander Aring 46917827754SAlexander Aring TP_printk("dst=%u h_seq=%u h_version=%s h_lockspace=%u h_nodeid=%u " 470e01c4b7bSAlexander Aring "h_length=%u h_cmd=%s m_type=%s m_nodeid=%u " 471e01c4b7bSAlexander Aring "m_pid=%u m_lkid=%u m_remid=%u m_parent_lkid=%u " 472e01c4b7bSAlexander Aring "m_parent_remid=%u m_exflags=%s m_sbflags=%s m_flags=%s " 473e01c4b7bSAlexander Aring "m_lvbseq=%u m_hash=%u m_status=%d m_grmode=%s " 474e01c4b7bSAlexander Aring "m_rqmode=%s m_bastmode=%s m_asts=%d m_result=%d " 47517827754SAlexander Aring "m_extra=0x%s res_name=0x%s", __entry->dst, 47681889255SAlexander Aring __entry->h_seq, show_message_version(__entry->h_version), 477e01c4b7bSAlexander Aring __entry->h_lockspace, __entry->h_nodeid, __entry->h_length, 478e01c4b7bSAlexander Aring show_header_cmd(__entry->h_cmd), 479e01c4b7bSAlexander Aring show_message_type(__entry->m_type), 480e01c4b7bSAlexander Aring __entry->m_nodeid, __entry->m_pid, __entry->m_lkid, 481e01c4b7bSAlexander Aring __entry->m_remid, __entry->m_parent_lkid, 482e01c4b7bSAlexander Aring __entry->m_parent_remid, show_lock_flags(__entry->m_exflags), 483e01c4b7bSAlexander Aring show_dlm_sb_flags(__entry->m_sbflags), 484e01c4b7bSAlexander Aring show_lkb_flags(__entry->m_flags), __entry->m_lvbseq, 485e01c4b7bSAlexander Aring __entry->m_hash, __entry->m_status, 486e01c4b7bSAlexander Aring show_lock_mode(__entry->m_grmode), 487e01c4b7bSAlexander Aring show_lock_mode(__entry->m_rqmode), 488e01c4b7bSAlexander Aring show_lock_mode(__entry->m_bastmode), 489e01c4b7bSAlexander Aring __entry->m_asts, __entry->m_result, 490e01c4b7bSAlexander Aring __print_hex_str(__get_dynamic_array(m_extra), 491e01c4b7bSAlexander Aring __get_dynamic_array_len(m_extra)), 492e01c4b7bSAlexander Aring __print_hex_str(__get_dynamic_array(res_name), 493e01c4b7bSAlexander Aring __get_dynamic_array_len(res_name))) 494e01c4b7bSAlexander Aring 495e01c4b7bSAlexander Aring ); 496e01c4b7bSAlexander Aring 497e01c4b7bSAlexander Aring TRACE_EVENT(dlm_recv_message, 498e01c4b7bSAlexander Aring 49917827754SAlexander Aring TP_PROTO(uint32_t dst, uint32_t h_seq, const struct dlm_message *ms), 500e01c4b7bSAlexander Aring 50117827754SAlexander Aring TP_ARGS(dst, h_seq, ms), 502e01c4b7bSAlexander Aring 503e01c4b7bSAlexander Aring TP_STRUCT__entry( 50417827754SAlexander Aring __field(uint32_t, dst) 50581889255SAlexander Aring __field(uint32_t, h_seq) 506e01c4b7bSAlexander Aring __field(uint32_t, h_version) 507e01c4b7bSAlexander Aring __field(uint32_t, h_lockspace) 508e01c4b7bSAlexander Aring __field(uint32_t, h_nodeid) 509e01c4b7bSAlexander Aring __field(uint16_t, h_length) 510e01c4b7bSAlexander Aring __field(uint8_t, h_cmd) 511e01c4b7bSAlexander Aring __field(uint32_t, m_type) 512e01c4b7bSAlexander Aring __field(uint32_t, m_nodeid) 513e01c4b7bSAlexander Aring __field(uint32_t, m_pid) 514e01c4b7bSAlexander Aring __field(uint32_t, m_lkid) 515e01c4b7bSAlexander Aring __field(uint32_t, m_remid) 516e01c4b7bSAlexander Aring __field(uint32_t, m_parent_lkid) 517e01c4b7bSAlexander Aring __field(uint32_t, m_parent_remid) 518e01c4b7bSAlexander Aring __field(uint32_t, m_exflags) 519e01c4b7bSAlexander Aring __field(uint32_t, m_sbflags) 520e01c4b7bSAlexander Aring __field(uint32_t, m_flags) 521e01c4b7bSAlexander Aring __field(uint32_t, m_lvbseq) 522e01c4b7bSAlexander Aring __field(uint32_t, m_hash) 523e01c4b7bSAlexander Aring __field(int32_t, m_status) 524e01c4b7bSAlexander Aring __field(int32_t, m_grmode) 525e01c4b7bSAlexander Aring __field(int32_t, m_rqmode) 526e01c4b7bSAlexander Aring __field(int32_t, m_bastmode) 527e01c4b7bSAlexander Aring __field(int32_t, m_asts) 528e01c4b7bSAlexander Aring __field(int32_t, m_result) 529e01c4b7bSAlexander Aring __dynamic_array(unsigned char, m_extra, 530e01c4b7bSAlexander Aring le16_to_cpu(ms->m_header.h_length) - sizeof(*ms)) 531e01c4b7bSAlexander Aring ), 532e01c4b7bSAlexander Aring 533e01c4b7bSAlexander Aring TP_fast_assign( 53417827754SAlexander Aring __entry->dst = dst; 53581889255SAlexander Aring __entry->h_seq = h_seq; 536e01c4b7bSAlexander Aring __entry->h_version = le32_to_cpu(ms->m_header.h_version); 537e01c4b7bSAlexander Aring __entry->h_lockspace = le32_to_cpu(ms->m_header.u.h_lockspace); 538e01c4b7bSAlexander Aring __entry->h_nodeid = le32_to_cpu(ms->m_header.h_nodeid); 539e01c4b7bSAlexander Aring __entry->h_length = le16_to_cpu(ms->m_header.h_length); 540e01c4b7bSAlexander Aring __entry->h_cmd = ms->m_header.h_cmd; 541e01c4b7bSAlexander Aring __entry->m_type = le32_to_cpu(ms->m_type); 542e01c4b7bSAlexander Aring __entry->m_nodeid = le32_to_cpu(ms->m_nodeid); 543e01c4b7bSAlexander Aring __entry->m_pid = le32_to_cpu(ms->m_pid); 544e01c4b7bSAlexander Aring __entry->m_lkid = le32_to_cpu(ms->m_lkid); 545e01c4b7bSAlexander Aring __entry->m_remid = le32_to_cpu(ms->m_remid); 546e01c4b7bSAlexander Aring __entry->m_parent_lkid = le32_to_cpu(ms->m_parent_lkid); 547e01c4b7bSAlexander Aring __entry->m_parent_remid = le32_to_cpu(ms->m_parent_remid); 548e01c4b7bSAlexander Aring __entry->m_exflags = le32_to_cpu(ms->m_exflags); 549e01c4b7bSAlexander Aring __entry->m_sbflags = le32_to_cpu(ms->m_sbflags); 550e01c4b7bSAlexander Aring __entry->m_flags = le32_to_cpu(ms->m_flags); 551e01c4b7bSAlexander Aring __entry->m_lvbseq = le32_to_cpu(ms->m_lvbseq); 552e01c4b7bSAlexander Aring __entry->m_hash = le32_to_cpu(ms->m_hash); 553e01c4b7bSAlexander Aring __entry->m_status = le32_to_cpu(ms->m_status); 554e01c4b7bSAlexander Aring __entry->m_grmode = le32_to_cpu(ms->m_grmode); 555e01c4b7bSAlexander Aring __entry->m_rqmode = le32_to_cpu(ms->m_rqmode); 556e01c4b7bSAlexander Aring __entry->m_bastmode = le32_to_cpu(ms->m_bastmode); 557e01c4b7bSAlexander Aring __entry->m_asts = le32_to_cpu(ms->m_asts); 558e01c4b7bSAlexander Aring __entry->m_result = le32_to_cpu(ms->m_result); 559e01c4b7bSAlexander Aring memcpy(__get_dynamic_array(m_extra), ms->m_extra, 560e01c4b7bSAlexander Aring __get_dynamic_array_len(m_extra)); 561e01c4b7bSAlexander Aring ), 562e01c4b7bSAlexander Aring 56317827754SAlexander Aring TP_printk("dst=%u h_seq=%u h_version=%s h_lockspace=%u h_nodeid=%u " 564e01c4b7bSAlexander Aring "h_length=%u h_cmd=%s m_type=%s m_nodeid=%u " 565e01c4b7bSAlexander Aring "m_pid=%u m_lkid=%u m_remid=%u m_parent_lkid=%u " 566e01c4b7bSAlexander Aring "m_parent_remid=%u m_exflags=%s m_sbflags=%s m_flags=%s " 567e01c4b7bSAlexander Aring "m_lvbseq=%u m_hash=%u m_status=%d m_grmode=%s " 568e01c4b7bSAlexander Aring "m_rqmode=%s m_bastmode=%s m_asts=%d m_result=%d " 56917827754SAlexander Aring "m_extra=0x%s", __entry->dst, 57081889255SAlexander Aring __entry->h_seq, show_message_version(__entry->h_version), 571e01c4b7bSAlexander Aring __entry->h_lockspace, __entry->h_nodeid, __entry->h_length, 572e01c4b7bSAlexander Aring show_header_cmd(__entry->h_cmd), 573e01c4b7bSAlexander Aring show_message_type(__entry->m_type), 574e01c4b7bSAlexander Aring __entry->m_nodeid, __entry->m_pid, __entry->m_lkid, 575e01c4b7bSAlexander Aring __entry->m_remid, __entry->m_parent_lkid, 576e01c4b7bSAlexander Aring __entry->m_parent_remid, show_lock_flags(__entry->m_exflags), 577e01c4b7bSAlexander Aring show_dlm_sb_flags(__entry->m_sbflags), 578e01c4b7bSAlexander Aring show_lkb_flags(__entry->m_flags), __entry->m_lvbseq, 579e01c4b7bSAlexander Aring __entry->m_hash, __entry->m_status, 580e01c4b7bSAlexander Aring show_lock_mode(__entry->m_grmode), 581e01c4b7bSAlexander Aring show_lock_mode(__entry->m_rqmode), 582e01c4b7bSAlexander Aring show_lock_mode(__entry->m_bastmode), 583e01c4b7bSAlexander Aring __entry->m_asts, __entry->m_result, 584e01c4b7bSAlexander Aring __print_hex_str(__get_dynamic_array(m_extra), 585e01c4b7bSAlexander Aring __get_dynamic_array_len(m_extra))) 586e01c4b7bSAlexander Aring 587e01c4b7bSAlexander Aring ); 588e01c4b7bSAlexander Aring 589*8c95006dSAlexander Aring DECLARE_EVENT_CLASS(dlm_plock_template, 590*8c95006dSAlexander Aring 591*8c95006dSAlexander Aring TP_PROTO(const struct dlm_plock_info *info), 592*8c95006dSAlexander Aring 593*8c95006dSAlexander Aring TP_ARGS(info), 594*8c95006dSAlexander Aring 595*8c95006dSAlexander Aring TP_STRUCT__entry( 596*8c95006dSAlexander Aring __field(uint8_t, optype) 597*8c95006dSAlexander Aring __field(uint8_t, ex) 598*8c95006dSAlexander Aring __field(uint8_t, wait) 599*8c95006dSAlexander Aring __field(uint8_t, flags) 600*8c95006dSAlexander Aring __field(uint32_t, pid) 601*8c95006dSAlexander Aring __field(int32_t, nodeid) 602*8c95006dSAlexander Aring __field(int32_t, rv) 603*8c95006dSAlexander Aring __field(uint32_t, fsid) 604*8c95006dSAlexander Aring __field(uint64_t, number) 605*8c95006dSAlexander Aring __field(uint64_t, start) 606*8c95006dSAlexander Aring __field(uint64_t, end) 607*8c95006dSAlexander Aring __field(uint64_t, owner) 608*8c95006dSAlexander Aring ), 609*8c95006dSAlexander Aring 610*8c95006dSAlexander Aring TP_fast_assign( 611*8c95006dSAlexander Aring __entry->optype = info->optype; 612*8c95006dSAlexander Aring __entry->ex = info->ex; 613*8c95006dSAlexander Aring __entry->wait = info->wait; 614*8c95006dSAlexander Aring __entry->flags = info->flags; 615*8c95006dSAlexander Aring __entry->pid = info->pid; 616*8c95006dSAlexander Aring __entry->nodeid = info->nodeid; 617*8c95006dSAlexander Aring __entry->rv = info->rv; 618*8c95006dSAlexander Aring __entry->fsid = info->fsid; 619*8c95006dSAlexander Aring __entry->number = info->number; 620*8c95006dSAlexander Aring __entry->start = info->start; 621*8c95006dSAlexander Aring __entry->end = info->end; 622*8c95006dSAlexander Aring __entry->owner = info->owner; 623*8c95006dSAlexander Aring ), 624*8c95006dSAlexander Aring 625*8c95006dSAlexander Aring TP_printk("fsid=%u number=%llx owner=%llx optype=%d ex=%d wait=%d flags=%x pid=%u nodeid=%d rv=%d start=%llx end=%llx", 626*8c95006dSAlexander Aring __entry->fsid, __entry->number, __entry->owner, 627*8c95006dSAlexander Aring __entry->optype, __entry->ex, __entry->wait, 628*8c95006dSAlexander Aring __entry->flags, __entry->pid, __entry->nodeid, 629*8c95006dSAlexander Aring __entry->rv, __entry->start, __entry->end) 630*8c95006dSAlexander Aring 631*8c95006dSAlexander Aring ); 632*8c95006dSAlexander Aring 633*8c95006dSAlexander Aring DEFINE_EVENT(dlm_plock_template, dlm_plock_read, 634*8c95006dSAlexander Aring TP_PROTO(const struct dlm_plock_info *info), TP_ARGS(info)); 635*8c95006dSAlexander Aring 636*8c95006dSAlexander Aring DEFINE_EVENT(dlm_plock_template, dlm_plock_write, 637*8c95006dSAlexander Aring TP_PROTO(const struct dlm_plock_info *info), TP_ARGS(info)); 638*8c95006dSAlexander Aring 63992732376SAlexander Aring TRACE_EVENT(dlm_send, 64092732376SAlexander Aring 64192732376SAlexander Aring TP_PROTO(int nodeid, int ret), 64292732376SAlexander Aring 64392732376SAlexander Aring TP_ARGS(nodeid, ret), 64492732376SAlexander Aring 64592732376SAlexander Aring TP_STRUCT__entry( 64692732376SAlexander Aring __field(int, nodeid) 64792732376SAlexander Aring __field(int, ret) 64892732376SAlexander Aring ), 64992732376SAlexander Aring 65092732376SAlexander Aring TP_fast_assign( 65192732376SAlexander Aring __entry->nodeid = nodeid; 65292732376SAlexander Aring __entry->ret = ret; 65392732376SAlexander Aring ), 65492732376SAlexander Aring 65592732376SAlexander Aring TP_printk("nodeid=%d ret=%d", __entry->nodeid, __entry->ret) 65692732376SAlexander Aring 65792732376SAlexander Aring ); 65892732376SAlexander Aring 65992732376SAlexander Aring TRACE_EVENT(dlm_recv, 66092732376SAlexander Aring 66192732376SAlexander Aring TP_PROTO(int nodeid, int ret), 66292732376SAlexander Aring 66392732376SAlexander Aring TP_ARGS(nodeid, ret), 66492732376SAlexander Aring 66592732376SAlexander Aring TP_STRUCT__entry( 66692732376SAlexander Aring __field(int, nodeid) 66792732376SAlexander Aring __field(int, ret) 66892732376SAlexander Aring ), 66992732376SAlexander Aring 67092732376SAlexander Aring TP_fast_assign( 67192732376SAlexander Aring __entry->nodeid = nodeid; 67292732376SAlexander Aring __entry->ret = ret; 67392732376SAlexander Aring ), 67492732376SAlexander Aring 67592732376SAlexander Aring TP_printk("nodeid=%d ret=%d", __entry->nodeid, __entry->ret) 67692732376SAlexander Aring 67792732376SAlexander Aring ); 67892732376SAlexander Aring 679f1d3b8f9SAlexander Aring #endif /* if !defined(_TRACE_DLM_H) || defined(TRACE_HEADER_MULTI_READ) */ 680f1d3b8f9SAlexander Aring 681f1d3b8f9SAlexander Aring /* This part must be outside protection */ 682f1d3b8f9SAlexander Aring #include <trace/define_trace.h> 683