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> 108c95006dSAlexander 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 192*1131f339SAlexander Aring TP_PROTO(__u32 ls_id, __u32 lkb_id, int mode, 193*1131f339SAlexander Aring const char *res_name, size_t res_length), 194f1d3b8f9SAlexander Aring 195*1131f339SAlexander Aring TP_ARGS(ls_id, lkb_id, mode, res_name, res_length), 196f1d3b8f9SAlexander Aring 197f1d3b8f9SAlexander Aring TP_STRUCT__entry( 198f1d3b8f9SAlexander Aring __field(__u32, ls_id) 199f1d3b8f9SAlexander Aring __field(__u32, lkb_id) 200f1d3b8f9SAlexander Aring __field(int, mode) 201*1131f339SAlexander Aring __dynamic_array(unsigned char, res_name, res_length) 202f1d3b8f9SAlexander Aring ), 203f1d3b8f9SAlexander Aring 204f1d3b8f9SAlexander Aring TP_fast_assign( 205*1131f339SAlexander Aring __entry->ls_id = ls_id; 206*1131f339SAlexander Aring __entry->lkb_id = lkb_id; 207f1d3b8f9SAlexander Aring __entry->mode = mode; 2085d92a30eSAlexander Aring 209*1131f339SAlexander Aring memcpy(__get_dynamic_array(res_name), res_name, 2105d92a30eSAlexander Aring __get_dynamic_array_len(res_name)); 211f1d3b8f9SAlexander Aring ), 212f1d3b8f9SAlexander Aring 2135d92a30eSAlexander Aring TP_printk("ls_id=%u lkb_id=%x mode=%s res_name=%s", 2145d92a30eSAlexander Aring __entry->ls_id, __entry->lkb_id, 2155d92a30eSAlexander Aring show_lock_mode(__entry->mode), 2165d92a30eSAlexander Aring __print_hex_str(__get_dynamic_array(res_name), 2175d92a30eSAlexander Aring __get_dynamic_array_len(res_name))) 218f1d3b8f9SAlexander Aring 219f1d3b8f9SAlexander Aring ); 220f1d3b8f9SAlexander Aring 221f1d3b8f9SAlexander Aring TRACE_EVENT(dlm_ast, 222f1d3b8f9SAlexander Aring 223*1131f339SAlexander Aring TP_PROTO(__u32 ls_id, __u32 lkb_id, __u8 sb_flags, int sb_status, 224*1131f339SAlexander Aring const char *res_name, size_t res_length), 225f1d3b8f9SAlexander Aring 226*1131f339SAlexander Aring TP_ARGS(ls_id, lkb_id, sb_flags, sb_status, res_name, res_length), 227f1d3b8f9SAlexander Aring 228f1d3b8f9SAlexander Aring TP_STRUCT__entry( 229f1d3b8f9SAlexander Aring __field(__u32, ls_id) 230f1d3b8f9SAlexander Aring __field(__u32, lkb_id) 231*1131f339SAlexander Aring __field(__u8, sb_flags) 232f1d3b8f9SAlexander Aring __field(int, sb_status) 233*1131f339SAlexander Aring __dynamic_array(unsigned char, res_name, res_length) 234f1d3b8f9SAlexander Aring ), 235f1d3b8f9SAlexander Aring 236f1d3b8f9SAlexander Aring TP_fast_assign( 237*1131f339SAlexander Aring __entry->ls_id = ls_id; 238*1131f339SAlexander Aring __entry->lkb_id = lkb_id; 239*1131f339SAlexander Aring __entry->sb_flags = sb_flags; 240*1131f339SAlexander Aring __entry->sb_status = sb_status; 2415d92a30eSAlexander Aring 242*1131f339SAlexander Aring memcpy(__get_dynamic_array(res_name), res_name, 2435d92a30eSAlexander Aring __get_dynamic_array_len(res_name)); 244f1d3b8f9SAlexander Aring ), 245f1d3b8f9SAlexander Aring 2465d92a30eSAlexander Aring TP_printk("ls_id=%u lkb_id=%x sb_flags=%s sb_status=%d res_name=%s", 247f1d3b8f9SAlexander Aring __entry->ls_id, __entry->lkb_id, 2485d92a30eSAlexander Aring show_dlm_sb_flags(__entry->sb_flags), __entry->sb_status, 2495d92a30eSAlexander Aring __print_hex_str(__get_dynamic_array(res_name), 2505d92a30eSAlexander Aring __get_dynamic_array_len(res_name))) 251f1d3b8f9SAlexander Aring 252f1d3b8f9SAlexander Aring ); 253f1d3b8f9SAlexander Aring 254f1d3b8f9SAlexander Aring /* note: we begin tracing dlm_unlock_start() only if ls and lkb are found */ 255f1d3b8f9SAlexander Aring TRACE_EVENT(dlm_unlock_start, 256f1d3b8f9SAlexander Aring 257f1d3b8f9SAlexander Aring TP_PROTO(struct dlm_ls *ls, struct dlm_lkb *lkb, __u32 flags), 258f1d3b8f9SAlexander Aring 259f1d3b8f9SAlexander Aring TP_ARGS(ls, lkb, flags), 260f1d3b8f9SAlexander Aring 261f1d3b8f9SAlexander Aring TP_STRUCT__entry( 262f1d3b8f9SAlexander Aring __field(__u32, ls_id) 263f1d3b8f9SAlexander Aring __field(__u32, lkb_id) 264f1d3b8f9SAlexander Aring __field(__u32, flags) 2655d92a30eSAlexander Aring __dynamic_array(unsigned char, res_name, 2665d92a30eSAlexander Aring lkb->lkb_resource ? lkb->lkb_resource->res_length : 0) 267f1d3b8f9SAlexander Aring ), 268f1d3b8f9SAlexander Aring 269f1d3b8f9SAlexander Aring TP_fast_assign( 2705d92a30eSAlexander Aring struct dlm_rsb *r; 2715d92a30eSAlexander Aring 272f1d3b8f9SAlexander Aring __entry->ls_id = ls->ls_global_id; 273f1d3b8f9SAlexander Aring __entry->lkb_id = lkb->lkb_id; 274f1d3b8f9SAlexander Aring __entry->flags = flags; 2755d92a30eSAlexander Aring 2765d92a30eSAlexander Aring r = lkb->lkb_resource; 2775d92a30eSAlexander Aring if (r) 2785d92a30eSAlexander Aring memcpy(__get_dynamic_array(res_name), r->res_name, 2795d92a30eSAlexander Aring __get_dynamic_array_len(res_name)); 280f1d3b8f9SAlexander Aring ), 281f1d3b8f9SAlexander Aring 2825d92a30eSAlexander Aring TP_printk("ls_id=%u lkb_id=%x flags=%s res_name=%s", 283f1d3b8f9SAlexander Aring __entry->ls_id, __entry->lkb_id, 2845d92a30eSAlexander Aring show_lock_flags(__entry->flags), 2855d92a30eSAlexander Aring __print_hex_str(__get_dynamic_array(res_name), 2865d92a30eSAlexander Aring __get_dynamic_array_len(res_name))) 287f1d3b8f9SAlexander Aring 288f1d3b8f9SAlexander Aring ); 289f1d3b8f9SAlexander Aring 290f1d3b8f9SAlexander Aring TRACE_EVENT(dlm_unlock_end, 291f1d3b8f9SAlexander Aring 292f1d3b8f9SAlexander Aring TP_PROTO(struct dlm_ls *ls, struct dlm_lkb *lkb, __u32 flags, 293f1d3b8f9SAlexander Aring int error), 294f1d3b8f9SAlexander Aring 295f1d3b8f9SAlexander Aring TP_ARGS(ls, lkb, flags, error), 296f1d3b8f9SAlexander Aring 297f1d3b8f9SAlexander Aring TP_STRUCT__entry( 298f1d3b8f9SAlexander Aring __field(__u32, ls_id) 299f1d3b8f9SAlexander Aring __field(__u32, lkb_id) 300f1d3b8f9SAlexander Aring __field(__u32, flags) 301f1d3b8f9SAlexander Aring __field(int, error) 3025d92a30eSAlexander Aring __dynamic_array(unsigned char, res_name, 3035d92a30eSAlexander Aring lkb->lkb_resource ? lkb->lkb_resource->res_length : 0) 304f1d3b8f9SAlexander Aring ), 305f1d3b8f9SAlexander Aring 306f1d3b8f9SAlexander Aring TP_fast_assign( 3075d92a30eSAlexander Aring struct dlm_rsb *r; 3085d92a30eSAlexander Aring 309f1d3b8f9SAlexander Aring __entry->ls_id = ls->ls_global_id; 310f1d3b8f9SAlexander Aring __entry->lkb_id = lkb->lkb_id; 311f1d3b8f9SAlexander Aring __entry->flags = flags; 312f1d3b8f9SAlexander Aring __entry->error = error; 3135d92a30eSAlexander Aring 3145d92a30eSAlexander Aring r = lkb->lkb_resource; 3155d92a30eSAlexander Aring if (r) 3165d92a30eSAlexander Aring memcpy(__get_dynamic_array(res_name), r->res_name, 3175d92a30eSAlexander Aring __get_dynamic_array_len(res_name)); 318f1d3b8f9SAlexander Aring ), 319f1d3b8f9SAlexander Aring 3205d92a30eSAlexander Aring TP_printk("ls_id=%u lkb_id=%x flags=%s error=%d res_name=%s", 321f1d3b8f9SAlexander Aring __entry->ls_id, __entry->lkb_id, 3225d92a30eSAlexander Aring show_lock_flags(__entry->flags), __entry->error, 3235d92a30eSAlexander Aring __print_hex_str(__get_dynamic_array(res_name), 3245d92a30eSAlexander Aring __get_dynamic_array_len(res_name))) 325f1d3b8f9SAlexander Aring 326f1d3b8f9SAlexander Aring ); 327f1d3b8f9SAlexander Aring 328e01c4b7bSAlexander Aring DECLARE_EVENT_CLASS(dlm_rcom_template, 329e01c4b7bSAlexander Aring 33017827754SAlexander Aring TP_PROTO(uint32_t dst, uint32_t h_seq, const struct dlm_rcom *rc), 331e01c4b7bSAlexander Aring 33217827754SAlexander Aring TP_ARGS(dst, h_seq, rc), 333e01c4b7bSAlexander Aring 334e01c4b7bSAlexander Aring TP_STRUCT__entry( 33517827754SAlexander Aring __field(uint32_t, dst) 33681889255SAlexander Aring __field(uint32_t, h_seq) 337e01c4b7bSAlexander Aring __field(uint32_t, h_version) 338e01c4b7bSAlexander Aring __field(uint32_t, h_lockspace) 339e01c4b7bSAlexander Aring __field(uint32_t, h_nodeid) 340e01c4b7bSAlexander Aring __field(uint16_t, h_length) 341e01c4b7bSAlexander Aring __field(uint8_t, h_cmd) 342e01c4b7bSAlexander Aring __field(uint32_t, rc_type) 343e01c4b7bSAlexander Aring __field(int32_t, rc_result) 344e01c4b7bSAlexander Aring __field(uint64_t, rc_id) 345e01c4b7bSAlexander Aring __field(uint64_t, rc_seq) 346e01c4b7bSAlexander Aring __field(uint64_t, rc_seq_reply) 347e01c4b7bSAlexander Aring __dynamic_array(unsigned char, rc_buf, 348e01c4b7bSAlexander Aring le16_to_cpu(rc->rc_header.h_length) - sizeof(*rc)) 349e01c4b7bSAlexander Aring ), 350e01c4b7bSAlexander Aring 351e01c4b7bSAlexander Aring TP_fast_assign( 35217827754SAlexander Aring __entry->dst = dst; 35381889255SAlexander Aring __entry->h_seq = h_seq; 354e01c4b7bSAlexander Aring __entry->h_version = le32_to_cpu(rc->rc_header.h_version); 355e01c4b7bSAlexander Aring __entry->h_lockspace = le32_to_cpu(rc->rc_header.u.h_lockspace); 356e01c4b7bSAlexander Aring __entry->h_nodeid = le32_to_cpu(rc->rc_header.h_nodeid); 357e01c4b7bSAlexander Aring __entry->h_length = le16_to_cpu(rc->rc_header.h_length); 358e01c4b7bSAlexander Aring __entry->h_cmd = rc->rc_header.h_cmd; 359e01c4b7bSAlexander Aring __entry->rc_type = le32_to_cpu(rc->rc_type); 360e01c4b7bSAlexander Aring __entry->rc_result = le32_to_cpu(rc->rc_result); 361e01c4b7bSAlexander Aring __entry->rc_id = le64_to_cpu(rc->rc_id); 362e01c4b7bSAlexander Aring __entry->rc_seq = le64_to_cpu(rc->rc_seq); 363e01c4b7bSAlexander Aring __entry->rc_seq_reply = le64_to_cpu(rc->rc_seq_reply); 364e01c4b7bSAlexander Aring memcpy(__get_dynamic_array(rc_buf), rc->rc_buf, 365e01c4b7bSAlexander Aring __get_dynamic_array_len(rc_buf)); 366e01c4b7bSAlexander Aring ), 367e01c4b7bSAlexander Aring 36817827754SAlexander Aring TP_printk("dst=%u h_seq=%u h_version=%s h_lockspace=%u h_nodeid=%u " 369e01c4b7bSAlexander Aring "h_length=%u h_cmd=%s rc_type=%s rc_result=%d " 370e01c4b7bSAlexander Aring "rc_id=%llu rc_seq=%llu rc_seq_reply=%llu " 37117827754SAlexander Aring "rc_buf=0x%s", __entry->dst, __entry->h_seq, 372e01c4b7bSAlexander Aring show_message_version(__entry->h_version), 373e01c4b7bSAlexander Aring __entry->h_lockspace, __entry->h_nodeid, __entry->h_length, 374e01c4b7bSAlexander Aring show_header_cmd(__entry->h_cmd), 375e01c4b7bSAlexander Aring show_rcom_type(__entry->rc_type), 376e01c4b7bSAlexander Aring __entry->rc_result, __entry->rc_id, __entry->rc_seq, 377e01c4b7bSAlexander Aring __entry->rc_seq_reply, 378e01c4b7bSAlexander Aring __print_hex_str(__get_dynamic_array(rc_buf), 379e01c4b7bSAlexander Aring __get_dynamic_array_len(rc_buf))) 380e01c4b7bSAlexander Aring 381e01c4b7bSAlexander Aring ); 382e01c4b7bSAlexander Aring 383e01c4b7bSAlexander Aring DEFINE_EVENT(dlm_rcom_template, dlm_send_rcom, 38417827754SAlexander Aring TP_PROTO(uint32_t dst, uint32_t h_seq, const struct dlm_rcom *rc), 38517827754SAlexander Aring TP_ARGS(dst, h_seq, rc)); 386e01c4b7bSAlexander Aring 387e01c4b7bSAlexander Aring DEFINE_EVENT(dlm_rcom_template, dlm_recv_rcom, 38817827754SAlexander Aring TP_PROTO(uint32_t dst, uint32_t h_seq, const struct dlm_rcom *rc), 38917827754SAlexander Aring TP_ARGS(dst, h_seq, rc)); 390e01c4b7bSAlexander Aring 391e01c4b7bSAlexander Aring TRACE_EVENT(dlm_send_message, 392e01c4b7bSAlexander Aring 39317827754SAlexander Aring TP_PROTO(uint32_t dst, uint32_t h_seq, const struct dlm_message *ms, 394e01c4b7bSAlexander Aring const void *name, int namelen), 395e01c4b7bSAlexander Aring 39617827754SAlexander Aring TP_ARGS(dst, h_seq, ms, name, namelen), 397e01c4b7bSAlexander Aring 398e01c4b7bSAlexander Aring TP_STRUCT__entry( 39917827754SAlexander Aring __field(uint32_t, dst) 40081889255SAlexander Aring __field(uint32_t, h_seq) 401e01c4b7bSAlexander Aring __field(uint32_t, h_version) 402e01c4b7bSAlexander Aring __field(uint32_t, h_lockspace) 403e01c4b7bSAlexander Aring __field(uint32_t, h_nodeid) 404e01c4b7bSAlexander Aring __field(uint16_t, h_length) 405e01c4b7bSAlexander Aring __field(uint8_t, h_cmd) 406e01c4b7bSAlexander Aring __field(uint32_t, m_type) 407e01c4b7bSAlexander Aring __field(uint32_t, m_nodeid) 408e01c4b7bSAlexander Aring __field(uint32_t, m_pid) 409e01c4b7bSAlexander Aring __field(uint32_t, m_lkid) 410e01c4b7bSAlexander Aring __field(uint32_t, m_remid) 411e01c4b7bSAlexander Aring __field(uint32_t, m_parent_lkid) 412e01c4b7bSAlexander Aring __field(uint32_t, m_parent_remid) 413e01c4b7bSAlexander Aring __field(uint32_t, m_exflags) 414e01c4b7bSAlexander Aring __field(uint32_t, m_sbflags) 415e01c4b7bSAlexander Aring __field(uint32_t, m_flags) 416e01c4b7bSAlexander Aring __field(uint32_t, m_lvbseq) 417e01c4b7bSAlexander Aring __field(uint32_t, m_hash) 418e01c4b7bSAlexander Aring __field(int32_t, m_status) 419e01c4b7bSAlexander Aring __field(int32_t, m_grmode) 420e01c4b7bSAlexander Aring __field(int32_t, m_rqmode) 421e01c4b7bSAlexander Aring __field(int32_t, m_bastmode) 422e01c4b7bSAlexander Aring __field(int32_t, m_asts) 423e01c4b7bSAlexander Aring __field(int32_t, m_result) 424e01c4b7bSAlexander Aring __dynamic_array(unsigned char, m_extra, 425e01c4b7bSAlexander Aring le16_to_cpu(ms->m_header.h_length) - sizeof(*ms)) 426e01c4b7bSAlexander Aring __dynamic_array(unsigned char, res_name, namelen) 427e01c4b7bSAlexander Aring ), 428e01c4b7bSAlexander Aring 429e01c4b7bSAlexander Aring TP_fast_assign( 43017827754SAlexander Aring __entry->dst = dst; 43181889255SAlexander Aring __entry->h_seq = h_seq; 432e01c4b7bSAlexander Aring __entry->h_version = le32_to_cpu(ms->m_header.h_version); 433e01c4b7bSAlexander Aring __entry->h_lockspace = le32_to_cpu(ms->m_header.u.h_lockspace); 434e01c4b7bSAlexander Aring __entry->h_nodeid = le32_to_cpu(ms->m_header.h_nodeid); 435e01c4b7bSAlexander Aring __entry->h_length = le16_to_cpu(ms->m_header.h_length); 436e01c4b7bSAlexander Aring __entry->h_cmd = ms->m_header.h_cmd; 437e01c4b7bSAlexander Aring __entry->m_type = le32_to_cpu(ms->m_type); 438e01c4b7bSAlexander Aring __entry->m_nodeid = le32_to_cpu(ms->m_nodeid); 439e01c4b7bSAlexander Aring __entry->m_pid = le32_to_cpu(ms->m_pid); 440e01c4b7bSAlexander Aring __entry->m_lkid = le32_to_cpu(ms->m_lkid); 441e01c4b7bSAlexander Aring __entry->m_remid = le32_to_cpu(ms->m_remid); 442e01c4b7bSAlexander Aring __entry->m_parent_lkid = le32_to_cpu(ms->m_parent_lkid); 443e01c4b7bSAlexander Aring __entry->m_parent_remid = le32_to_cpu(ms->m_parent_remid); 444e01c4b7bSAlexander Aring __entry->m_exflags = le32_to_cpu(ms->m_exflags); 445e01c4b7bSAlexander Aring __entry->m_sbflags = le32_to_cpu(ms->m_sbflags); 446e01c4b7bSAlexander Aring __entry->m_flags = le32_to_cpu(ms->m_flags); 447e01c4b7bSAlexander Aring __entry->m_lvbseq = le32_to_cpu(ms->m_lvbseq); 448e01c4b7bSAlexander Aring __entry->m_hash = le32_to_cpu(ms->m_hash); 449e01c4b7bSAlexander Aring __entry->m_status = le32_to_cpu(ms->m_status); 450e01c4b7bSAlexander Aring __entry->m_grmode = le32_to_cpu(ms->m_grmode); 451e01c4b7bSAlexander Aring __entry->m_rqmode = le32_to_cpu(ms->m_rqmode); 452e01c4b7bSAlexander Aring __entry->m_bastmode = le32_to_cpu(ms->m_bastmode); 453e01c4b7bSAlexander Aring __entry->m_asts = le32_to_cpu(ms->m_asts); 454e01c4b7bSAlexander Aring __entry->m_result = le32_to_cpu(ms->m_result); 455e01c4b7bSAlexander Aring memcpy(__get_dynamic_array(m_extra), ms->m_extra, 456e01c4b7bSAlexander Aring __get_dynamic_array_len(m_extra)); 457e01c4b7bSAlexander Aring memcpy(__get_dynamic_array(res_name), name, 458e01c4b7bSAlexander Aring __get_dynamic_array_len(res_name)); 459e01c4b7bSAlexander Aring ), 460e01c4b7bSAlexander Aring 46117827754SAlexander Aring TP_printk("dst=%u h_seq=%u h_version=%s h_lockspace=%u h_nodeid=%u " 462e01c4b7bSAlexander Aring "h_length=%u h_cmd=%s m_type=%s m_nodeid=%u " 463e01c4b7bSAlexander Aring "m_pid=%u m_lkid=%u m_remid=%u m_parent_lkid=%u " 464e01c4b7bSAlexander Aring "m_parent_remid=%u m_exflags=%s m_sbflags=%s m_flags=%s " 465e01c4b7bSAlexander Aring "m_lvbseq=%u m_hash=%u m_status=%d m_grmode=%s " 466e01c4b7bSAlexander Aring "m_rqmode=%s m_bastmode=%s m_asts=%d m_result=%d " 46717827754SAlexander Aring "m_extra=0x%s res_name=0x%s", __entry->dst, 46881889255SAlexander Aring __entry->h_seq, show_message_version(__entry->h_version), 469e01c4b7bSAlexander Aring __entry->h_lockspace, __entry->h_nodeid, __entry->h_length, 470e01c4b7bSAlexander Aring show_header_cmd(__entry->h_cmd), 471e01c4b7bSAlexander Aring show_message_type(__entry->m_type), 472e01c4b7bSAlexander Aring __entry->m_nodeid, __entry->m_pid, __entry->m_lkid, 473e01c4b7bSAlexander Aring __entry->m_remid, __entry->m_parent_lkid, 474e01c4b7bSAlexander Aring __entry->m_parent_remid, show_lock_flags(__entry->m_exflags), 475e01c4b7bSAlexander Aring show_dlm_sb_flags(__entry->m_sbflags), 476e01c4b7bSAlexander Aring show_lkb_flags(__entry->m_flags), __entry->m_lvbseq, 477e01c4b7bSAlexander Aring __entry->m_hash, __entry->m_status, 478e01c4b7bSAlexander Aring show_lock_mode(__entry->m_grmode), 479e01c4b7bSAlexander Aring show_lock_mode(__entry->m_rqmode), 480e01c4b7bSAlexander Aring show_lock_mode(__entry->m_bastmode), 481e01c4b7bSAlexander Aring __entry->m_asts, __entry->m_result, 482e01c4b7bSAlexander Aring __print_hex_str(__get_dynamic_array(m_extra), 483e01c4b7bSAlexander Aring __get_dynamic_array_len(m_extra)), 484e01c4b7bSAlexander Aring __print_hex_str(__get_dynamic_array(res_name), 485e01c4b7bSAlexander Aring __get_dynamic_array_len(res_name))) 486e01c4b7bSAlexander Aring 487e01c4b7bSAlexander Aring ); 488e01c4b7bSAlexander Aring 489e01c4b7bSAlexander Aring TRACE_EVENT(dlm_recv_message, 490e01c4b7bSAlexander Aring 49117827754SAlexander Aring TP_PROTO(uint32_t dst, uint32_t h_seq, const struct dlm_message *ms), 492e01c4b7bSAlexander Aring 49317827754SAlexander Aring TP_ARGS(dst, h_seq, ms), 494e01c4b7bSAlexander Aring 495e01c4b7bSAlexander Aring TP_STRUCT__entry( 49617827754SAlexander Aring __field(uint32_t, dst) 49781889255SAlexander Aring __field(uint32_t, h_seq) 498e01c4b7bSAlexander Aring __field(uint32_t, h_version) 499e01c4b7bSAlexander Aring __field(uint32_t, h_lockspace) 500e01c4b7bSAlexander Aring __field(uint32_t, h_nodeid) 501e01c4b7bSAlexander Aring __field(uint16_t, h_length) 502e01c4b7bSAlexander Aring __field(uint8_t, h_cmd) 503e01c4b7bSAlexander Aring __field(uint32_t, m_type) 504e01c4b7bSAlexander Aring __field(uint32_t, m_nodeid) 505e01c4b7bSAlexander Aring __field(uint32_t, m_pid) 506e01c4b7bSAlexander Aring __field(uint32_t, m_lkid) 507e01c4b7bSAlexander Aring __field(uint32_t, m_remid) 508e01c4b7bSAlexander Aring __field(uint32_t, m_parent_lkid) 509e01c4b7bSAlexander Aring __field(uint32_t, m_parent_remid) 510e01c4b7bSAlexander Aring __field(uint32_t, m_exflags) 511e01c4b7bSAlexander Aring __field(uint32_t, m_sbflags) 512e01c4b7bSAlexander Aring __field(uint32_t, m_flags) 513e01c4b7bSAlexander Aring __field(uint32_t, m_lvbseq) 514e01c4b7bSAlexander Aring __field(uint32_t, m_hash) 515e01c4b7bSAlexander Aring __field(int32_t, m_status) 516e01c4b7bSAlexander Aring __field(int32_t, m_grmode) 517e01c4b7bSAlexander Aring __field(int32_t, m_rqmode) 518e01c4b7bSAlexander Aring __field(int32_t, m_bastmode) 519e01c4b7bSAlexander Aring __field(int32_t, m_asts) 520e01c4b7bSAlexander Aring __field(int32_t, m_result) 521e01c4b7bSAlexander Aring __dynamic_array(unsigned char, m_extra, 522e01c4b7bSAlexander Aring le16_to_cpu(ms->m_header.h_length) - sizeof(*ms)) 523e01c4b7bSAlexander Aring ), 524e01c4b7bSAlexander Aring 525e01c4b7bSAlexander Aring TP_fast_assign( 52617827754SAlexander Aring __entry->dst = dst; 52781889255SAlexander Aring __entry->h_seq = h_seq; 528e01c4b7bSAlexander Aring __entry->h_version = le32_to_cpu(ms->m_header.h_version); 529e01c4b7bSAlexander Aring __entry->h_lockspace = le32_to_cpu(ms->m_header.u.h_lockspace); 530e01c4b7bSAlexander Aring __entry->h_nodeid = le32_to_cpu(ms->m_header.h_nodeid); 531e01c4b7bSAlexander Aring __entry->h_length = le16_to_cpu(ms->m_header.h_length); 532e01c4b7bSAlexander Aring __entry->h_cmd = ms->m_header.h_cmd; 533e01c4b7bSAlexander Aring __entry->m_type = le32_to_cpu(ms->m_type); 534e01c4b7bSAlexander Aring __entry->m_nodeid = le32_to_cpu(ms->m_nodeid); 535e01c4b7bSAlexander Aring __entry->m_pid = le32_to_cpu(ms->m_pid); 536e01c4b7bSAlexander Aring __entry->m_lkid = le32_to_cpu(ms->m_lkid); 537e01c4b7bSAlexander Aring __entry->m_remid = le32_to_cpu(ms->m_remid); 538e01c4b7bSAlexander Aring __entry->m_parent_lkid = le32_to_cpu(ms->m_parent_lkid); 539e01c4b7bSAlexander Aring __entry->m_parent_remid = le32_to_cpu(ms->m_parent_remid); 540e01c4b7bSAlexander Aring __entry->m_exflags = le32_to_cpu(ms->m_exflags); 541e01c4b7bSAlexander Aring __entry->m_sbflags = le32_to_cpu(ms->m_sbflags); 542e01c4b7bSAlexander Aring __entry->m_flags = le32_to_cpu(ms->m_flags); 543e01c4b7bSAlexander Aring __entry->m_lvbseq = le32_to_cpu(ms->m_lvbseq); 544e01c4b7bSAlexander Aring __entry->m_hash = le32_to_cpu(ms->m_hash); 545e01c4b7bSAlexander Aring __entry->m_status = le32_to_cpu(ms->m_status); 546e01c4b7bSAlexander Aring __entry->m_grmode = le32_to_cpu(ms->m_grmode); 547e01c4b7bSAlexander Aring __entry->m_rqmode = le32_to_cpu(ms->m_rqmode); 548e01c4b7bSAlexander Aring __entry->m_bastmode = le32_to_cpu(ms->m_bastmode); 549e01c4b7bSAlexander Aring __entry->m_asts = le32_to_cpu(ms->m_asts); 550e01c4b7bSAlexander Aring __entry->m_result = le32_to_cpu(ms->m_result); 551e01c4b7bSAlexander Aring memcpy(__get_dynamic_array(m_extra), ms->m_extra, 552e01c4b7bSAlexander Aring __get_dynamic_array_len(m_extra)); 553e01c4b7bSAlexander Aring ), 554e01c4b7bSAlexander Aring 55517827754SAlexander Aring TP_printk("dst=%u h_seq=%u h_version=%s h_lockspace=%u h_nodeid=%u " 556e01c4b7bSAlexander Aring "h_length=%u h_cmd=%s m_type=%s m_nodeid=%u " 557e01c4b7bSAlexander Aring "m_pid=%u m_lkid=%u m_remid=%u m_parent_lkid=%u " 558e01c4b7bSAlexander Aring "m_parent_remid=%u m_exflags=%s m_sbflags=%s m_flags=%s " 559e01c4b7bSAlexander Aring "m_lvbseq=%u m_hash=%u m_status=%d m_grmode=%s " 560e01c4b7bSAlexander Aring "m_rqmode=%s m_bastmode=%s m_asts=%d m_result=%d " 56117827754SAlexander Aring "m_extra=0x%s", __entry->dst, 56281889255SAlexander Aring __entry->h_seq, show_message_version(__entry->h_version), 563e01c4b7bSAlexander Aring __entry->h_lockspace, __entry->h_nodeid, __entry->h_length, 564e01c4b7bSAlexander Aring show_header_cmd(__entry->h_cmd), 565e01c4b7bSAlexander Aring show_message_type(__entry->m_type), 566e01c4b7bSAlexander Aring __entry->m_nodeid, __entry->m_pid, __entry->m_lkid, 567e01c4b7bSAlexander Aring __entry->m_remid, __entry->m_parent_lkid, 568e01c4b7bSAlexander Aring __entry->m_parent_remid, show_lock_flags(__entry->m_exflags), 569e01c4b7bSAlexander Aring show_dlm_sb_flags(__entry->m_sbflags), 570e01c4b7bSAlexander Aring show_lkb_flags(__entry->m_flags), __entry->m_lvbseq, 571e01c4b7bSAlexander Aring __entry->m_hash, __entry->m_status, 572e01c4b7bSAlexander Aring show_lock_mode(__entry->m_grmode), 573e01c4b7bSAlexander Aring show_lock_mode(__entry->m_rqmode), 574e01c4b7bSAlexander Aring show_lock_mode(__entry->m_bastmode), 575e01c4b7bSAlexander Aring __entry->m_asts, __entry->m_result, 576e01c4b7bSAlexander Aring __print_hex_str(__get_dynamic_array(m_extra), 577e01c4b7bSAlexander Aring __get_dynamic_array_len(m_extra))) 578e01c4b7bSAlexander Aring 579e01c4b7bSAlexander Aring ); 580e01c4b7bSAlexander Aring 5818c95006dSAlexander Aring DECLARE_EVENT_CLASS(dlm_plock_template, 5828c95006dSAlexander Aring 5838c95006dSAlexander Aring TP_PROTO(const struct dlm_plock_info *info), 5848c95006dSAlexander Aring 5858c95006dSAlexander Aring TP_ARGS(info), 5868c95006dSAlexander Aring 5878c95006dSAlexander Aring TP_STRUCT__entry( 5888c95006dSAlexander Aring __field(uint8_t, optype) 5898c95006dSAlexander Aring __field(uint8_t, ex) 5908c95006dSAlexander Aring __field(uint8_t, wait) 5918c95006dSAlexander Aring __field(uint8_t, flags) 5928c95006dSAlexander Aring __field(uint32_t, pid) 5938c95006dSAlexander Aring __field(int32_t, nodeid) 5948c95006dSAlexander Aring __field(int32_t, rv) 5958c95006dSAlexander Aring __field(uint32_t, fsid) 5968c95006dSAlexander Aring __field(uint64_t, number) 5978c95006dSAlexander Aring __field(uint64_t, start) 5988c95006dSAlexander Aring __field(uint64_t, end) 5998c95006dSAlexander Aring __field(uint64_t, owner) 6008c95006dSAlexander Aring ), 6018c95006dSAlexander Aring 6028c95006dSAlexander Aring TP_fast_assign( 6038c95006dSAlexander Aring __entry->optype = info->optype; 6048c95006dSAlexander Aring __entry->ex = info->ex; 6058c95006dSAlexander Aring __entry->wait = info->wait; 6068c95006dSAlexander Aring __entry->flags = info->flags; 6078c95006dSAlexander Aring __entry->pid = info->pid; 6088c95006dSAlexander Aring __entry->nodeid = info->nodeid; 6098c95006dSAlexander Aring __entry->rv = info->rv; 6108c95006dSAlexander Aring __entry->fsid = info->fsid; 6118c95006dSAlexander Aring __entry->number = info->number; 6128c95006dSAlexander Aring __entry->start = info->start; 6138c95006dSAlexander Aring __entry->end = info->end; 6148c95006dSAlexander Aring __entry->owner = info->owner; 6158c95006dSAlexander Aring ), 6168c95006dSAlexander Aring 6178c95006dSAlexander 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", 6188c95006dSAlexander Aring __entry->fsid, __entry->number, __entry->owner, 6198c95006dSAlexander Aring __entry->optype, __entry->ex, __entry->wait, 6208c95006dSAlexander Aring __entry->flags, __entry->pid, __entry->nodeid, 6218c95006dSAlexander Aring __entry->rv, __entry->start, __entry->end) 6228c95006dSAlexander Aring 6238c95006dSAlexander Aring ); 6248c95006dSAlexander Aring 6258c95006dSAlexander Aring DEFINE_EVENT(dlm_plock_template, dlm_plock_read, 6268c95006dSAlexander Aring TP_PROTO(const struct dlm_plock_info *info), TP_ARGS(info)); 6278c95006dSAlexander Aring 6288c95006dSAlexander Aring DEFINE_EVENT(dlm_plock_template, dlm_plock_write, 6298c95006dSAlexander Aring TP_PROTO(const struct dlm_plock_info *info), TP_ARGS(info)); 6308c95006dSAlexander Aring 63192732376SAlexander Aring TRACE_EVENT(dlm_send, 63292732376SAlexander Aring 63392732376SAlexander Aring TP_PROTO(int nodeid, int ret), 63492732376SAlexander Aring 63592732376SAlexander Aring TP_ARGS(nodeid, ret), 63692732376SAlexander Aring 63792732376SAlexander Aring TP_STRUCT__entry( 63892732376SAlexander Aring __field(int, nodeid) 63992732376SAlexander Aring __field(int, ret) 64092732376SAlexander Aring ), 64192732376SAlexander Aring 64292732376SAlexander Aring TP_fast_assign( 64392732376SAlexander Aring __entry->nodeid = nodeid; 64492732376SAlexander Aring __entry->ret = ret; 64592732376SAlexander Aring ), 64692732376SAlexander Aring 64792732376SAlexander Aring TP_printk("nodeid=%d ret=%d", __entry->nodeid, __entry->ret) 64892732376SAlexander Aring 64992732376SAlexander Aring ); 65092732376SAlexander Aring 65192732376SAlexander Aring TRACE_EVENT(dlm_recv, 65292732376SAlexander Aring 65392732376SAlexander Aring TP_PROTO(int nodeid, int ret), 65492732376SAlexander Aring 65592732376SAlexander Aring TP_ARGS(nodeid, ret), 65692732376SAlexander Aring 65792732376SAlexander Aring TP_STRUCT__entry( 65892732376SAlexander Aring __field(int, nodeid) 65992732376SAlexander Aring __field(int, ret) 66092732376SAlexander Aring ), 66192732376SAlexander Aring 66292732376SAlexander Aring TP_fast_assign( 66392732376SAlexander Aring __entry->nodeid = nodeid; 66492732376SAlexander Aring __entry->ret = ret; 66592732376SAlexander Aring ), 66692732376SAlexander Aring 66792732376SAlexander Aring TP_printk("nodeid=%d ret=%d", __entry->nodeid, __entry->ret) 66892732376SAlexander Aring 66992732376SAlexander Aring ); 67092732376SAlexander Aring 671f1d3b8f9SAlexander Aring #endif /* if !defined(_TRACE_DLM_H) || defined(TRACE_HEADER_MULTI_READ) */ 672f1d3b8f9SAlexander Aring 673f1d3b8f9SAlexander Aring /* This part must be outside protection */ 674f1d3b8f9SAlexander Aring #include <trace/define_trace.h> 675