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

Configure Feed

Select the types of activity you want to include in your feed.

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