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