Linux Audio

Check our new training course

Loading...
Note: File does not exist in v6.13.7.
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/*
   3 *   Copyright (C) 2018, Microsoft Corporation.
   4 *
   5 *   Author(s): Steve French <stfrench@microsoft.com>
   6 */
   7#undef TRACE_SYSTEM
   8#define TRACE_SYSTEM cifs
   9
  10#if !defined(_CIFS_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
  11#define _CIFS_TRACE_H
  12
  13#include <linux/tracepoint.h>
  14#include <linux/net.h>
  15#include <linux/inet.h>
  16
  17/*
  18 * Please use this 3-part article as a reference for writing new tracepoints:
  19 * https://lwn.net/Articles/379903/
  20 */
  21
  22/* For logging errors in read or write */
  23DECLARE_EVENT_CLASS(smb3_rw_err_class,
  24	TP_PROTO(unsigned int xid,
  25		__u64	fid,
  26		__u32	tid,
  27		__u64	sesid,
  28		__u64	offset,
  29		__u32	len,
  30		int	rc),
  31	TP_ARGS(xid, fid, tid, sesid, offset, len, rc),
  32	TP_STRUCT__entry(
  33		__field(unsigned int, xid)
  34		__field(__u64, fid)
  35		__field(__u32, tid)
  36		__field(__u64, sesid)
  37		__field(__u64, offset)
  38		__field(__u32, len)
  39		__field(int, rc)
  40	),
  41	TP_fast_assign(
  42		__entry->xid = xid;
  43		__entry->fid = fid;
  44		__entry->tid = tid;
  45		__entry->sesid = sesid;
  46		__entry->offset = offset;
  47		__entry->len = len;
  48		__entry->rc = rc;
  49	),
  50	TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx len=0x%x rc=%d",
  51		__entry->xid, __entry->sesid, __entry->tid, __entry->fid,
  52		__entry->offset, __entry->len, __entry->rc)
  53)
  54
  55#define DEFINE_SMB3_RW_ERR_EVENT(name)          \
  56DEFINE_EVENT(smb3_rw_err_class, smb3_##name,    \
  57	TP_PROTO(unsigned int xid,		\
  58		__u64	fid,			\
  59		__u32	tid,			\
  60		__u64	sesid,			\
  61		__u64	offset,			\
  62		__u32	len,			\
  63		int	rc),			\
  64	TP_ARGS(xid, fid, tid, sesid, offset, len, rc))
  65
  66DEFINE_SMB3_RW_ERR_EVENT(write_err);
  67DEFINE_SMB3_RW_ERR_EVENT(read_err);
  68DEFINE_SMB3_RW_ERR_EVENT(query_dir_err);
  69DEFINE_SMB3_RW_ERR_EVENT(zero_err);
  70DEFINE_SMB3_RW_ERR_EVENT(falloc_err);
  71
  72
  73/* For logging successful read or write */
  74DECLARE_EVENT_CLASS(smb3_rw_done_class,
  75	TP_PROTO(unsigned int xid,
  76		__u64	fid,
  77		__u32	tid,
  78		__u64	sesid,
  79		__u64	offset,
  80		__u32	len),
  81	TP_ARGS(xid, fid, tid, sesid, offset, len),
  82	TP_STRUCT__entry(
  83		__field(unsigned int, xid)
  84		__field(__u64, fid)
  85		__field(__u32, tid)
  86		__field(__u64, sesid)
  87		__field(__u64, offset)
  88		__field(__u32, len)
  89	),
  90	TP_fast_assign(
  91		__entry->xid = xid;
  92		__entry->fid = fid;
  93		__entry->tid = tid;
  94		__entry->sesid = sesid;
  95		__entry->offset = offset;
  96		__entry->len = len;
  97	),
  98	TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx len=0x%x",
  99		__entry->xid, __entry->sesid, __entry->tid, __entry->fid,
 100		__entry->offset, __entry->len)
 101)
 102
 103#define DEFINE_SMB3_RW_DONE_EVENT(name)         \
 104DEFINE_EVENT(smb3_rw_done_class, smb3_##name,   \
 105	TP_PROTO(unsigned int xid,		\
 106		__u64	fid,			\
 107		__u32	tid,			\
 108		__u64	sesid,			\
 109		__u64	offset,			\
 110		__u32	len),			\
 111	TP_ARGS(xid, fid, tid, sesid, offset, len))
 112
 113DEFINE_SMB3_RW_DONE_EVENT(write_enter);
 114DEFINE_SMB3_RW_DONE_EVENT(read_enter);
 115DEFINE_SMB3_RW_DONE_EVENT(query_dir_enter);
 116DEFINE_SMB3_RW_DONE_EVENT(zero_enter);
 117DEFINE_SMB3_RW_DONE_EVENT(falloc_enter);
 118DEFINE_SMB3_RW_DONE_EVENT(write_done);
 119DEFINE_SMB3_RW_DONE_EVENT(read_done);
 120DEFINE_SMB3_RW_DONE_EVENT(query_dir_done);
 121DEFINE_SMB3_RW_DONE_EVENT(zero_done);
 122DEFINE_SMB3_RW_DONE_EVENT(falloc_done);
 123
 124/* For logging successful set EOF (truncate) */
 125DECLARE_EVENT_CLASS(smb3_eof_class,
 126	TP_PROTO(unsigned int xid,
 127		__u64	fid,
 128		__u32	tid,
 129		__u64	sesid,
 130		__u64	offset),
 131	TP_ARGS(xid, fid, tid, sesid, offset),
 132	TP_STRUCT__entry(
 133		__field(unsigned int, xid)
 134		__field(__u64, fid)
 135		__field(__u32, tid)
 136		__field(__u64, sesid)
 137		__field(__u64, offset)
 138	),
 139	TP_fast_assign(
 140		__entry->xid = xid;
 141		__entry->fid = fid;
 142		__entry->tid = tid;
 143		__entry->sesid = sesid;
 144		__entry->offset = offset;
 145	),
 146	TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx",
 147		__entry->xid, __entry->sesid, __entry->tid, __entry->fid,
 148		__entry->offset)
 149)
 150
 151#define DEFINE_SMB3_EOF_EVENT(name)         \
 152DEFINE_EVENT(smb3_eof_class, smb3_##name,   \
 153	TP_PROTO(unsigned int xid,		\
 154		__u64	fid,			\
 155		__u32	tid,			\
 156		__u64	sesid,			\
 157		__u64	offset),		\
 158	TP_ARGS(xid, fid, tid, sesid, offset))
 159
 160DEFINE_SMB3_EOF_EVENT(set_eof);
 161
 162/*
 163 * For handle based calls other than read and write, and get/set info
 164 */
 165DECLARE_EVENT_CLASS(smb3_fd_class,
 166	TP_PROTO(unsigned int xid,
 167		__u64	fid,
 168		__u32	tid,
 169		__u64	sesid),
 170	TP_ARGS(xid, fid, tid, sesid),
 171	TP_STRUCT__entry(
 172		__field(unsigned int, xid)
 173		__field(__u64, fid)
 174		__field(__u32, tid)
 175		__field(__u64, sesid)
 176	),
 177	TP_fast_assign(
 178		__entry->xid = xid;
 179		__entry->fid = fid;
 180		__entry->tid = tid;
 181		__entry->sesid = sesid;
 182	),
 183	TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx",
 184		__entry->xid, __entry->sesid, __entry->tid, __entry->fid)
 185)
 186
 187#define DEFINE_SMB3_FD_EVENT(name)          \
 188DEFINE_EVENT(smb3_fd_class, smb3_##name,    \
 189	TP_PROTO(unsigned int xid,		\
 190		__u64	fid,			\
 191		__u32	tid,			\
 192		__u64	sesid),			\
 193	TP_ARGS(xid, fid, tid, sesid))
 194
 195DEFINE_SMB3_FD_EVENT(flush_enter);
 196DEFINE_SMB3_FD_EVENT(flush_done);
 197DEFINE_SMB3_FD_EVENT(close_enter);
 198DEFINE_SMB3_FD_EVENT(close_done);
 199DEFINE_SMB3_FD_EVENT(oplock_not_found);
 200
 201DECLARE_EVENT_CLASS(smb3_fd_err_class,
 202	TP_PROTO(unsigned int xid,
 203		__u64	fid,
 204		__u32	tid,
 205		__u64	sesid,
 206		int	rc),
 207	TP_ARGS(xid, fid, tid, sesid, rc),
 208	TP_STRUCT__entry(
 209		__field(unsigned int, xid)
 210		__field(__u64, fid)
 211		__field(__u32, tid)
 212		__field(__u64, sesid)
 213		__field(int, rc)
 214	),
 215	TP_fast_assign(
 216		__entry->xid = xid;
 217		__entry->fid = fid;
 218		__entry->tid = tid;
 219		__entry->sesid = sesid;
 220		__entry->rc = rc;
 221	),
 222	TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx rc=%d",
 223		__entry->xid, __entry->sesid, __entry->tid, __entry->fid,
 224		__entry->rc)
 225)
 226
 227#define DEFINE_SMB3_FD_ERR_EVENT(name)          \
 228DEFINE_EVENT(smb3_fd_err_class, smb3_##name,    \
 229	TP_PROTO(unsigned int xid,		\
 230		__u64	fid,			\
 231		__u32	tid,			\
 232		__u64	sesid,			\
 233		int	rc),			\
 234	TP_ARGS(xid, fid, tid, sesid, rc))
 235
 236DEFINE_SMB3_FD_ERR_EVENT(flush_err);
 237DEFINE_SMB3_FD_ERR_EVENT(lock_err);
 238DEFINE_SMB3_FD_ERR_EVENT(close_err);
 239
 240/*
 241 * For handle based query/set info calls
 242 */
 243DECLARE_EVENT_CLASS(smb3_inf_enter_class,
 244	TP_PROTO(unsigned int xid,
 245		__u64	fid,
 246		__u32	tid,
 247		__u64	sesid,
 248		__u8	infclass,
 249		__u32	type),
 250	TP_ARGS(xid, fid, tid, sesid, infclass, type),
 251	TP_STRUCT__entry(
 252		__field(unsigned int, xid)
 253		__field(__u64, fid)
 254		__field(__u32, tid)
 255		__field(__u64, sesid)
 256		__field(__u8, infclass)
 257		__field(__u32, type)
 258	),
 259	TP_fast_assign(
 260		__entry->xid = xid;
 261		__entry->fid = fid;
 262		__entry->tid = tid;
 263		__entry->sesid = sesid;
 264		__entry->infclass = infclass;
 265		__entry->type = type;
 266	),
 267	TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx class=%u type=0x%x",
 268		__entry->xid, __entry->sesid, __entry->tid, __entry->fid,
 269		__entry->infclass, __entry->type)
 270)
 271
 272#define DEFINE_SMB3_INF_ENTER_EVENT(name)          \
 273DEFINE_EVENT(smb3_inf_enter_class, smb3_##name,    \
 274	TP_PROTO(unsigned int xid,		\
 275		__u64	fid,			\
 276		__u32	tid,			\
 277		__u64	sesid,			\
 278		__u8	infclass,		\
 279		__u32	type),			\
 280	TP_ARGS(xid, fid, tid, sesid, infclass, type))
 281
 282DEFINE_SMB3_INF_ENTER_EVENT(query_info_enter);
 283DEFINE_SMB3_INF_ENTER_EVENT(query_info_done);
 284DEFINE_SMB3_INF_ENTER_EVENT(notify_enter);
 285DEFINE_SMB3_INF_ENTER_EVENT(notify_done);
 286
 287DECLARE_EVENT_CLASS(smb3_inf_err_class,
 288	TP_PROTO(unsigned int xid,
 289		__u64	fid,
 290		__u32	tid,
 291		__u64	sesid,
 292		__u8	infclass,
 293		__u32	type,
 294		int	rc),
 295	TP_ARGS(xid, fid, tid, sesid, infclass, type, rc),
 296	TP_STRUCT__entry(
 297		__field(unsigned int, xid)
 298		__field(__u64, fid)
 299		__field(__u32, tid)
 300		__field(__u64, sesid)
 301		__field(__u8, infclass)
 302		__field(__u32, type)
 303		__field(int, rc)
 304	),
 305	TP_fast_assign(
 306		__entry->xid = xid;
 307		__entry->fid = fid;
 308		__entry->tid = tid;
 309		__entry->sesid = sesid;
 310		__entry->infclass = infclass;
 311		__entry->type = type;
 312		__entry->rc = rc;
 313	),
 314	TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx class=%u type=0x%x rc=%d",
 315		__entry->xid, __entry->sesid, __entry->tid, __entry->fid,
 316		__entry->infclass, __entry->type, __entry->rc)
 317)
 318
 319#define DEFINE_SMB3_INF_ERR_EVENT(name)          \
 320DEFINE_EVENT(smb3_inf_err_class, smb3_##name,    \
 321	TP_PROTO(unsigned int xid,		\
 322		__u64	fid,			\
 323		__u32	tid,			\
 324		__u64	sesid,			\
 325		__u8	infclass,		\
 326		__u32	type,			\
 327		int	rc),			\
 328	TP_ARGS(xid, fid, tid, sesid, infclass, type, rc))
 329
 330DEFINE_SMB3_INF_ERR_EVENT(query_info_err);
 331DEFINE_SMB3_INF_ERR_EVENT(set_info_err);
 332DEFINE_SMB3_INF_ERR_EVENT(notify_err);
 333DEFINE_SMB3_INF_ERR_EVENT(fsctl_err);
 334
 335DECLARE_EVENT_CLASS(smb3_inf_compound_enter_class,
 336	TP_PROTO(unsigned int xid,
 337		__u32	tid,
 338		__u64	sesid,
 339		const char *full_path),
 340	TP_ARGS(xid, tid, sesid, full_path),
 341	TP_STRUCT__entry(
 342		__field(unsigned int, xid)
 343		__field(__u32, tid)
 344		__field(__u64, sesid)
 345		__string(path, full_path)
 346	),
 347	TP_fast_assign(
 348		__entry->xid = xid;
 349		__entry->tid = tid;
 350		__entry->sesid = sesid;
 351		__assign_str(path, full_path);
 352	),
 353	TP_printk("xid=%u sid=0x%llx tid=0x%x path=%s",
 354		__entry->xid, __entry->sesid, __entry->tid,
 355		__get_str(path))
 356)
 357
 358#define DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(name)     \
 359DEFINE_EVENT(smb3_inf_compound_enter_class, smb3_##name,    \
 360	TP_PROTO(unsigned int xid,		\
 361		__u32	tid,			\
 362		__u64	sesid,			\
 363		const char *full_path),		\
 364	TP_ARGS(xid, tid, sesid, full_path))
 365
 366DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(query_info_compound_enter);
 367DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(posix_query_info_compound_enter);
 368DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(hardlink_enter);
 369DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(rename_enter);
 370DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(rmdir_enter);
 371DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_eof_enter);
 372DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_info_compound_enter);
 373DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(delete_enter);
 374DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(mkdir_enter);
 375DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(tdis_enter);
 376
 377
 378DECLARE_EVENT_CLASS(smb3_inf_compound_done_class,
 379	TP_PROTO(unsigned int xid,
 380		__u32	tid,
 381		__u64	sesid),
 382	TP_ARGS(xid, tid, sesid),
 383	TP_STRUCT__entry(
 384		__field(unsigned int, xid)
 385		__field(__u32, tid)
 386		__field(__u64, sesid)
 387	),
 388	TP_fast_assign(
 389		__entry->xid = xid;
 390		__entry->tid = tid;
 391		__entry->sesid = sesid;
 392	),
 393	TP_printk("xid=%u sid=0x%llx tid=0x%x",
 394		__entry->xid, __entry->sesid, __entry->tid)
 395)
 396
 397#define DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(name)     \
 398DEFINE_EVENT(smb3_inf_compound_done_class, smb3_##name,    \
 399	TP_PROTO(unsigned int xid,		\
 400		__u32	tid,			\
 401		__u64	sesid),			\
 402	TP_ARGS(xid, tid, sesid))
 403
 404DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(query_info_compound_done);
 405DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(posix_query_info_compound_done);
 406DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(hardlink_done);
 407DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(rename_done);
 408DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(rmdir_done);
 409DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_eof_done);
 410DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_info_compound_done);
 411DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(delete_done);
 412DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(mkdir_done);
 413DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(tdis_done);
 414
 415
 416DECLARE_EVENT_CLASS(smb3_inf_compound_err_class,
 417	TP_PROTO(unsigned int xid,
 418		__u32	tid,
 419		__u64	sesid,
 420		int	rc),
 421	TP_ARGS(xid, tid, sesid, rc),
 422	TP_STRUCT__entry(
 423		__field(unsigned int, xid)
 424		__field(__u32, tid)
 425		__field(__u64, sesid)
 426		__field(int, rc)
 427	),
 428	TP_fast_assign(
 429		__entry->xid = xid;
 430		__entry->tid = tid;
 431		__entry->sesid = sesid;
 432		__entry->rc = rc;
 433	),
 434	TP_printk("xid=%u sid=0x%llx tid=0x%x rc=%d",
 435		__entry->xid, __entry->sesid, __entry->tid,
 436		__entry->rc)
 437)
 438
 439#define DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(name)     \
 440DEFINE_EVENT(smb3_inf_compound_err_class, smb3_##name,    \
 441	TP_PROTO(unsigned int xid,		\
 442		__u32	tid,			\
 443		__u64	sesid,			\
 444		int rc),			\
 445	TP_ARGS(xid, tid, sesid, rc))
 446
 447DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(query_info_compound_err);
 448DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(posix_query_info_compound_err);
 449DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(hardlink_err);
 450DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(rename_err);
 451DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(rmdir_err);
 452DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_eof_err);
 453DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_info_compound_err);
 454DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(mkdir_err);
 455DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(delete_err);
 456DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(tdis_err);
 457
 458/*
 459 * For logging SMB3 Status code and Command for responses which return errors
 460 */
 461DECLARE_EVENT_CLASS(smb3_cmd_err_class,
 462	TP_PROTO(__u32	tid,
 463		__u64	sesid,
 464		__u16	cmd,
 465		__u64	mid,
 466		__u32	status,
 467		int	rc),
 468	TP_ARGS(tid, sesid, cmd, mid, status, rc),
 469	TP_STRUCT__entry(
 470		__field(__u32, tid)
 471		__field(__u64, sesid)
 472		__field(__u16, cmd)
 473		__field(__u64, mid)
 474		__field(__u32, status)
 475		__field(int, rc)
 476	),
 477	TP_fast_assign(
 478		__entry->tid = tid;
 479		__entry->sesid = sesid;
 480		__entry->cmd = cmd;
 481		__entry->mid = mid;
 482		__entry->status = status;
 483		__entry->rc = rc;
 484	),
 485	TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu status=0x%x rc=%d",
 486		__entry->sesid, __entry->tid, __entry->cmd, __entry->mid,
 487		__entry->status, __entry->rc)
 488)
 489
 490#define DEFINE_SMB3_CMD_ERR_EVENT(name)          \
 491DEFINE_EVENT(smb3_cmd_err_class, smb3_##name,    \
 492	TP_PROTO(__u32	tid,			\
 493		__u64	sesid,			\
 494		__u16	cmd,			\
 495		__u64	mid,			\
 496		__u32	status,			\
 497		int	rc),			\
 498	TP_ARGS(tid, sesid, cmd, mid, status, rc))
 499
 500DEFINE_SMB3_CMD_ERR_EVENT(cmd_err);
 501
 502DECLARE_EVENT_CLASS(smb3_cmd_done_class,
 503	TP_PROTO(__u32	tid,
 504		__u64	sesid,
 505		__u16	cmd,
 506		__u64	mid),
 507	TP_ARGS(tid, sesid, cmd, mid),
 508	TP_STRUCT__entry(
 509		__field(__u32, tid)
 510		__field(__u64, sesid)
 511		__field(__u16, cmd)
 512		__field(__u64, mid)
 513	),
 514	TP_fast_assign(
 515		__entry->tid = tid;
 516		__entry->sesid = sesid;
 517		__entry->cmd = cmd;
 518		__entry->mid = mid;
 519	),
 520	TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu",
 521		__entry->sesid, __entry->tid,
 522		__entry->cmd, __entry->mid)
 523)
 524
 525#define DEFINE_SMB3_CMD_DONE_EVENT(name)          \
 526DEFINE_EVENT(smb3_cmd_done_class, smb3_##name,    \
 527	TP_PROTO(__u32	tid,			\
 528		__u64	sesid,			\
 529		__u16	cmd,			\
 530		__u64	mid),			\
 531	TP_ARGS(tid, sesid, cmd, mid))
 532
 533DEFINE_SMB3_CMD_DONE_EVENT(cmd_enter);
 534DEFINE_SMB3_CMD_DONE_EVENT(cmd_done);
 535DEFINE_SMB3_CMD_DONE_EVENT(ses_expired);
 536
 537DECLARE_EVENT_CLASS(smb3_mid_class,
 538	TP_PROTO(__u16	cmd,
 539		__u64	mid,
 540		__u32	pid,
 541		unsigned long when_sent,
 542		unsigned long when_received),
 543	TP_ARGS(cmd, mid, pid, when_sent, when_received),
 544	TP_STRUCT__entry(
 545		__field(__u16, cmd)
 546		__field(__u64, mid)
 547		__field(__u32, pid)
 548		__field(unsigned long, when_sent)
 549		__field(unsigned long, when_received)
 550	),
 551	TP_fast_assign(
 552		__entry->cmd = cmd;
 553		__entry->mid = mid;
 554		__entry->pid = pid;
 555		__entry->when_sent = when_sent;
 556		__entry->when_received = when_received;
 557	),
 558	TP_printk("\tcmd=%u mid=%llu pid=%u, when_sent=%lu when_rcv=%lu",
 559		__entry->cmd, __entry->mid, __entry->pid, __entry->when_sent,
 560		__entry->when_received)
 561)
 562
 563#define DEFINE_SMB3_MID_EVENT(name)          \
 564DEFINE_EVENT(smb3_mid_class, smb3_##name,    \
 565	TP_PROTO(__u16	cmd,			\
 566		__u64	mid,			\
 567		__u32	pid,			\
 568		unsigned long when_sent,	\
 569		unsigned long when_received),	\
 570	TP_ARGS(cmd, mid, pid, when_sent, when_received))
 571
 572DEFINE_SMB3_MID_EVENT(slow_rsp);
 573
 574DECLARE_EVENT_CLASS(smb3_exit_err_class,
 575	TP_PROTO(unsigned int xid,
 576		const char *func_name,
 577		int	rc),
 578	TP_ARGS(xid, func_name, rc),
 579	TP_STRUCT__entry(
 580		__field(unsigned int, xid)
 581		__string(func_name, func_name)
 582		__field(int, rc)
 583	),
 584	TP_fast_assign(
 585		__entry->xid = xid;
 586		__assign_str(func_name, func_name);
 587		__entry->rc = rc;
 588	),
 589	TP_printk("\t%s: xid=%u rc=%d",
 590		__get_str(func_name), __entry->xid, __entry->rc)
 591)
 592
 593#define DEFINE_SMB3_EXIT_ERR_EVENT(name)          \
 594DEFINE_EVENT(smb3_exit_err_class, smb3_##name,    \
 595	TP_PROTO(unsigned int xid,		\
 596		const char *func_name,		\
 597		int	rc),			\
 598	TP_ARGS(xid, func_name, rc))
 599
 600DEFINE_SMB3_EXIT_ERR_EVENT(exit_err);
 601
 602
 603DECLARE_EVENT_CLASS(smb3_sync_err_class,
 604	TP_PROTO(unsigned long ino,
 605		int	rc),
 606	TP_ARGS(ino, rc),
 607	TP_STRUCT__entry(
 608		__field(unsigned long, ino)
 609		__field(int, rc)
 610	),
 611	TP_fast_assign(
 612		__entry->ino = ino;
 613		__entry->rc = rc;
 614	),
 615	TP_printk("\tino=%lu rc=%d",
 616		__entry->ino, __entry->rc)
 617)
 618
 619#define DEFINE_SMB3_SYNC_ERR_EVENT(name)          \
 620DEFINE_EVENT(smb3_sync_err_class, cifs_##name,    \
 621	TP_PROTO(unsigned long ino,		\
 622		int	rc),			\
 623	TP_ARGS(ino, rc))
 624
 625DEFINE_SMB3_SYNC_ERR_EVENT(fsync_err);
 626DEFINE_SMB3_SYNC_ERR_EVENT(flush_err);
 627
 628
 629DECLARE_EVENT_CLASS(smb3_enter_exit_class,
 630	TP_PROTO(unsigned int xid,
 631		const char *func_name),
 632	TP_ARGS(xid, func_name),
 633	TP_STRUCT__entry(
 634		__field(unsigned int, xid)
 635		__string(func_name, func_name)
 636	),
 637	TP_fast_assign(
 638		__entry->xid = xid;
 639		__assign_str(func_name, func_name);
 640	),
 641	TP_printk("\t%s: xid=%u",
 642		__get_str(func_name), __entry->xid)
 643)
 644
 645#define DEFINE_SMB3_ENTER_EXIT_EVENT(name)        \
 646DEFINE_EVENT(smb3_enter_exit_class, smb3_##name,  \
 647	TP_PROTO(unsigned int xid,		\
 648		const char *func_name),		\
 649	TP_ARGS(xid, func_name))
 650
 651DEFINE_SMB3_ENTER_EXIT_EVENT(enter);
 652DEFINE_SMB3_ENTER_EXIT_EVENT(exit_done);
 653
 654/*
 655 * For SMB2/SMB3 tree connect
 656 */
 657
 658DECLARE_EVENT_CLASS(smb3_tcon_class,
 659	TP_PROTO(unsigned int xid,
 660		__u32	tid,
 661		__u64	sesid,
 662		const char *unc_name,
 663		int	rc),
 664	TP_ARGS(xid, tid, sesid, unc_name, rc),
 665	TP_STRUCT__entry(
 666		__field(unsigned int, xid)
 667		__field(__u32, tid)
 668		__field(__u64, sesid)
 669		__string(name, unc_name)
 670		__field(int, rc)
 671	),
 672	TP_fast_assign(
 673		__entry->xid = xid;
 674		__entry->tid = tid;
 675		__entry->sesid = sesid;
 676		__assign_str(name, unc_name);
 677		__entry->rc = rc;
 678	),
 679	TP_printk("xid=%u sid=0x%llx tid=0x%x unc_name=%s rc=%d",
 680		__entry->xid, __entry->sesid, __entry->tid,
 681		__get_str(name), __entry->rc)
 682)
 683
 684#define DEFINE_SMB3_TCON_EVENT(name)          \
 685DEFINE_EVENT(smb3_tcon_class, smb3_##name,    \
 686	TP_PROTO(unsigned int xid,		\
 687		__u32	tid,			\
 688		__u64	sesid,			\
 689		const char *unc_name,		\
 690		int	rc),			\
 691	TP_ARGS(xid, tid, sesid, unc_name, rc))
 692
 693DEFINE_SMB3_TCON_EVENT(tcon);
 694
 695
 696/*
 697 * For smb2/smb3 open (including create and mkdir) calls
 698 */
 699
 700DECLARE_EVENT_CLASS(smb3_open_enter_class,
 701	TP_PROTO(unsigned int xid,
 702		__u32	tid,
 703		__u64	sesid,
 704		int	create_options,
 705		int	desired_access),
 706	TP_ARGS(xid, tid, sesid, create_options, desired_access),
 707	TP_STRUCT__entry(
 708		__field(unsigned int, xid)
 709		__field(__u32, tid)
 710		__field(__u64, sesid)
 711		__field(int, create_options)
 712		__field(int, desired_access)
 713	),
 714	TP_fast_assign(
 715		__entry->xid = xid;
 716		__entry->tid = tid;
 717		__entry->sesid = sesid;
 718		__entry->create_options = create_options;
 719		__entry->desired_access = desired_access;
 720	),
 721	TP_printk("xid=%u sid=0x%llx tid=0x%x cr_opts=0x%x des_access=0x%x",
 722		__entry->xid, __entry->sesid, __entry->tid,
 723		__entry->create_options, __entry->desired_access)
 724)
 725
 726#define DEFINE_SMB3_OPEN_ENTER_EVENT(name)        \
 727DEFINE_EVENT(smb3_open_enter_class, smb3_##name,  \
 728	TP_PROTO(unsigned int xid,		\
 729		__u32	tid,			\
 730		__u64	sesid,			\
 731		int	create_options,		\
 732		int	desired_access),	\
 733	TP_ARGS(xid, tid, sesid, create_options, desired_access))
 734
 735DEFINE_SMB3_OPEN_ENTER_EVENT(open_enter);
 736DEFINE_SMB3_OPEN_ENTER_EVENT(posix_mkdir_enter);
 737
 738DECLARE_EVENT_CLASS(smb3_open_err_class,
 739	TP_PROTO(unsigned int xid,
 740		__u32	tid,
 741		__u64	sesid,
 742		int	create_options,
 743		int	desired_access,
 744		int	rc),
 745	TP_ARGS(xid, tid, sesid, create_options, desired_access, rc),
 746	TP_STRUCT__entry(
 747		__field(unsigned int, xid)
 748		__field(__u32, tid)
 749		__field(__u64, sesid)
 750		__field(int,   create_options)
 751		__field(int, desired_access)
 752		__field(int, rc)
 753	),
 754	TP_fast_assign(
 755		__entry->xid = xid;
 756		__entry->tid = tid;
 757		__entry->sesid = sesid;
 758		__entry->create_options = create_options;
 759		__entry->desired_access = desired_access;
 760		__entry->rc = rc;
 761	),
 762	TP_printk("xid=%u sid=0x%llx tid=0x%x cr_opts=0x%x des_access=0x%x rc=%d",
 763		__entry->xid, __entry->sesid, __entry->tid,
 764		__entry->create_options, __entry->desired_access, __entry->rc)
 765)
 766
 767#define DEFINE_SMB3_OPEN_ERR_EVENT(name)          \
 768DEFINE_EVENT(smb3_open_err_class, smb3_##name,    \
 769	TP_PROTO(unsigned int xid,		\
 770		__u32	tid,			\
 771		__u64	sesid,			\
 772		int	create_options,		\
 773		int	desired_access,		\
 774		int	rc),			\
 775	TP_ARGS(xid, tid, sesid, create_options, desired_access, rc))
 776
 777DEFINE_SMB3_OPEN_ERR_EVENT(open_err);
 778DEFINE_SMB3_OPEN_ERR_EVENT(posix_mkdir_err);
 779
 780DECLARE_EVENT_CLASS(smb3_open_done_class,
 781	TP_PROTO(unsigned int xid,
 782		__u64	fid,
 783		__u32	tid,
 784		__u64	sesid,
 785		int	create_options,
 786		int	desired_access),
 787	TP_ARGS(xid, fid, tid, sesid, create_options, desired_access),
 788	TP_STRUCT__entry(
 789		__field(unsigned int, xid)
 790		__field(__u64, fid)
 791		__field(__u32, tid)
 792		__field(__u64, sesid)
 793		__field(int, create_options)
 794		__field(int, desired_access)
 795	),
 796	TP_fast_assign(
 797		__entry->xid = xid;
 798		__entry->fid = fid;
 799		__entry->tid = tid;
 800		__entry->sesid = sesid;
 801		__entry->create_options = create_options;
 802		__entry->desired_access = desired_access;
 803	),
 804	TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx cr_opts=0x%x des_access=0x%x",
 805		__entry->xid, __entry->sesid, __entry->tid, __entry->fid,
 806		__entry->create_options, __entry->desired_access)
 807)
 808
 809#define DEFINE_SMB3_OPEN_DONE_EVENT(name)        \
 810DEFINE_EVENT(smb3_open_done_class, smb3_##name,  \
 811	TP_PROTO(unsigned int xid,		\
 812		__u64	fid,			\
 813		__u32	tid,			\
 814		__u64	sesid,			\
 815		int	create_options,		\
 816		int	desired_access),	\
 817	TP_ARGS(xid, fid, tid, sesid, create_options, desired_access))
 818
 819DEFINE_SMB3_OPEN_DONE_EVENT(open_done);
 820DEFINE_SMB3_OPEN_DONE_EVENT(posix_mkdir_done);
 821
 822
 823DECLARE_EVENT_CLASS(smb3_lease_done_class,
 824	TP_PROTO(__u32	lease_state,
 825		__u32	tid,
 826		__u64	sesid,
 827		__u64	lease_key_low,
 828		__u64	lease_key_high),
 829	TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high),
 830	TP_STRUCT__entry(
 831		__field(__u32, lease_state)
 832		__field(__u32, tid)
 833		__field(__u64, sesid)
 834		__field(__u64, lease_key_low)
 835		__field(__u64, lease_key_high)
 836	),
 837	TP_fast_assign(
 838		__entry->lease_state = lease_state;
 839		__entry->tid = tid;
 840		__entry->sesid = sesid;
 841		__entry->lease_key_low = lease_key_low;
 842		__entry->lease_key_high = lease_key_high;
 843	),
 844	TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x",
 845		__entry->sesid, __entry->tid, __entry->lease_key_high,
 846		__entry->lease_key_low, __entry->lease_state)
 847)
 848
 849#define DEFINE_SMB3_LEASE_DONE_EVENT(name)        \
 850DEFINE_EVENT(smb3_lease_done_class, smb3_##name,  \
 851	TP_PROTO(__u32	lease_state,		\
 852		__u32	tid,			\
 853		__u64	sesid,			\
 854		__u64	lease_key_low,		\
 855		__u64	lease_key_high),	\
 856	TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high))
 857
 858DEFINE_SMB3_LEASE_DONE_EVENT(lease_done);
 859DEFINE_SMB3_LEASE_DONE_EVENT(lease_not_found);
 860
 861DECLARE_EVENT_CLASS(smb3_lease_err_class,
 862	TP_PROTO(__u32	lease_state,
 863		__u32	tid,
 864		__u64	sesid,
 865		__u64	lease_key_low,
 866		__u64	lease_key_high,
 867		int	rc),
 868	TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc),
 869	TP_STRUCT__entry(
 870		__field(__u32, lease_state)
 871		__field(__u32, tid)
 872		__field(__u64, sesid)
 873		__field(__u64, lease_key_low)
 874		__field(__u64, lease_key_high)
 875		__field(int, rc)
 876	),
 877	TP_fast_assign(
 878		__entry->lease_state = lease_state;
 879		__entry->tid = tid;
 880		__entry->sesid = sesid;
 881		__entry->lease_key_low = lease_key_low;
 882		__entry->lease_key_high = lease_key_high;
 883		__entry->rc = rc;
 884	),
 885	TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x rc=%d",
 886		__entry->sesid, __entry->tid, __entry->lease_key_high,
 887		__entry->lease_key_low, __entry->lease_state, __entry->rc)
 888)
 889
 890#define DEFINE_SMB3_LEASE_ERR_EVENT(name)        \
 891DEFINE_EVENT(smb3_lease_err_class, smb3_##name,  \
 892	TP_PROTO(__u32	lease_state,		\
 893		__u32	tid,			\
 894		__u64	sesid,			\
 895		__u64	lease_key_low,		\
 896		__u64	lease_key_high,		\
 897		int	rc),			\
 898	TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc))
 899
 900DEFINE_SMB3_LEASE_ERR_EVENT(lease_err);
 901
 902DECLARE_EVENT_CLASS(smb3_connect_class,
 903	TP_PROTO(char *hostname,
 904		__u64 conn_id,
 905		const struct __kernel_sockaddr_storage *dst_addr),
 906	TP_ARGS(hostname, conn_id, dst_addr),
 907	TP_STRUCT__entry(
 908		__string(hostname, hostname)
 909		__field(__u64, conn_id)
 910		__array(__u8, dst_addr, sizeof(struct sockaddr_storage))
 911	),
 912	TP_fast_assign(
 913		struct sockaddr_storage *pss = NULL;
 914
 915		__entry->conn_id = conn_id;
 916		pss = (struct sockaddr_storage *)__entry->dst_addr;
 917		*pss = *dst_addr;
 918		__assign_str(hostname, hostname);
 919	),
 920	TP_printk("conn_id=0x%llx server=%s addr=%pISpsfc",
 921		__entry->conn_id,
 922		__get_str(hostname),
 923		__entry->dst_addr)
 924)
 925
 926#define DEFINE_SMB3_CONNECT_EVENT(name)        \
 927DEFINE_EVENT(smb3_connect_class, smb3_##name,  \
 928	TP_PROTO(char *hostname,		\
 929		__u64 conn_id,			\
 930		const struct __kernel_sockaddr_storage *addr),	\
 931	TP_ARGS(hostname, conn_id, addr))
 932
 933DEFINE_SMB3_CONNECT_EVENT(connect_done);
 934
 935DECLARE_EVENT_CLASS(smb3_connect_err_class,
 936	TP_PROTO(char *hostname, __u64 conn_id,
 937		const struct __kernel_sockaddr_storage *dst_addr, int rc),
 938	TP_ARGS(hostname, conn_id, dst_addr, rc),
 939	TP_STRUCT__entry(
 940		__string(hostname, hostname)
 941		__field(__u64, conn_id)
 942		__array(__u8, dst_addr, sizeof(struct sockaddr_storage))
 943		__field(int, rc)
 944	),
 945	TP_fast_assign(
 946		struct sockaddr_storage *pss = NULL;
 947
 948		__entry->conn_id = conn_id;
 949		__entry->rc = rc;
 950		pss = (struct sockaddr_storage *)__entry->dst_addr;
 951		*pss = *dst_addr;
 952		__assign_str(hostname, hostname);
 953	),
 954	TP_printk("rc=%d conn_id=0x%llx server=%s addr=%pISpsfc",
 955		__entry->rc,
 956		__entry->conn_id,
 957		__get_str(hostname),
 958		__entry->dst_addr)
 959)
 960
 961#define DEFINE_SMB3_CONNECT_ERR_EVENT(name)        \
 962DEFINE_EVENT(smb3_connect_err_class, smb3_##name,  \
 963	TP_PROTO(char *hostname,		\
 964		__u64 conn_id,			\
 965		const struct __kernel_sockaddr_storage *addr,	\
 966		int rc),			\
 967	TP_ARGS(hostname, conn_id, addr, rc))
 968
 969DEFINE_SMB3_CONNECT_ERR_EVENT(connect_err);
 970
 971DECLARE_EVENT_CLASS(smb3_reconnect_class,
 972	TP_PROTO(__u64	currmid,
 973		__u64 conn_id,
 974		char *hostname),
 975	TP_ARGS(currmid, conn_id, hostname),
 976	TP_STRUCT__entry(
 977		__field(__u64, currmid)
 978		__field(__u64, conn_id)
 979		__string(hostname, hostname)
 980	),
 981	TP_fast_assign(
 982		__entry->currmid = currmid;
 983		__entry->conn_id = conn_id;
 984		__assign_str(hostname, hostname);
 985	),
 986	TP_printk("conn_id=0x%llx server=%s current_mid=%llu",
 987		__entry->conn_id,
 988		__get_str(hostname),
 989		__entry->currmid)
 990)
 991
 992#define DEFINE_SMB3_RECONNECT_EVENT(name)        \
 993DEFINE_EVENT(smb3_reconnect_class, smb3_##name,  \
 994	TP_PROTO(__u64	currmid,		\
 995		__u64 conn_id,			\
 996		char *hostname),				\
 997	TP_ARGS(currmid, conn_id, hostname))
 998
 999DEFINE_SMB3_RECONNECT_EVENT(reconnect);
1000DEFINE_SMB3_RECONNECT_EVENT(partial_send_reconnect);
1001
1002DECLARE_EVENT_CLASS(smb3_credit_class,
1003	TP_PROTO(__u64	currmid,
1004		__u64 conn_id,
1005		char *hostname,
1006		int credits,
1007		int credits_to_add,
1008		int in_flight),
1009	TP_ARGS(currmid, conn_id, hostname, credits, credits_to_add, in_flight),
1010	TP_STRUCT__entry(
1011		__field(__u64, currmid)
1012		__field(__u64, conn_id)
1013		__string(hostname, hostname)
1014		__field(int, credits)
1015		__field(int, credits_to_add)
1016		__field(int, in_flight)
1017	),
1018	TP_fast_assign(
1019		__entry->currmid = currmid;
1020		__entry->conn_id = conn_id;
1021		__assign_str(hostname, hostname);
1022		__entry->credits = credits;
1023		__entry->credits_to_add = credits_to_add;
1024		__entry->in_flight = in_flight;
1025	),
1026	TP_printk("conn_id=0x%llx server=%s current_mid=%llu "
1027			"credits=%d credit_change=%d in_flight=%d",
1028		__entry->conn_id,
1029		__get_str(hostname),
1030		__entry->currmid,
1031		__entry->credits,
1032		__entry->credits_to_add,
1033		__entry->in_flight)
1034)
1035
1036#define DEFINE_SMB3_CREDIT_EVENT(name)        \
1037DEFINE_EVENT(smb3_credit_class, smb3_##name,  \
1038	TP_PROTO(__u64	currmid,		\
1039		__u64 conn_id,			\
1040		char *hostname,			\
1041		int  credits,			\
1042		int  credits_to_add,	\
1043		int in_flight),			\
1044	TP_ARGS(currmid, conn_id, hostname, credits, credits_to_add, in_flight))
1045
1046DEFINE_SMB3_CREDIT_EVENT(reconnect_with_invalid_credits);
1047DEFINE_SMB3_CREDIT_EVENT(reconnect_detected);
1048DEFINE_SMB3_CREDIT_EVENT(credit_timeout);
1049DEFINE_SMB3_CREDIT_EVENT(insufficient_credits);
1050DEFINE_SMB3_CREDIT_EVENT(too_many_credits);
1051DEFINE_SMB3_CREDIT_EVENT(add_credits);
1052DEFINE_SMB3_CREDIT_EVENT(adj_credits);
1053DEFINE_SMB3_CREDIT_EVENT(hdr_credits);
1054DEFINE_SMB3_CREDIT_EVENT(nblk_credits);
1055DEFINE_SMB3_CREDIT_EVENT(pend_credits);
1056DEFINE_SMB3_CREDIT_EVENT(wait_credits);
1057DEFINE_SMB3_CREDIT_EVENT(waitff_credits);
1058DEFINE_SMB3_CREDIT_EVENT(overflow_credits);
1059DEFINE_SMB3_CREDIT_EVENT(set_credits);
1060
1061#endif /* _CIFS_TRACE_H */
1062
1063#undef TRACE_INCLUDE_PATH
1064#define TRACE_INCLUDE_PATH .
1065#define TRACE_INCLUDE_FILE trace
1066#include <trace/define_trace.h>