0001
0002
0003
0004
0005
0006
0007 #undef TRACE_SYSTEM
0008 #define TRACE_SYSTEM cifs
0009
0010 #if !defined(_CIFS_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
0011 #define _CIFS_TRACE_H
0012
0013 #include <linux/tracepoint.h>
0014 #include <linux/net.h>
0015 #include <linux/inet.h>
0016
0017
0018
0019
0020
0021
0022
0023 DECLARE_EVENT_CLASS(smb3_rw_err_class,
0024 TP_PROTO(unsigned int xid,
0025 __u64 fid,
0026 __u32 tid,
0027 __u64 sesid,
0028 __u64 offset,
0029 __u32 len,
0030 int rc),
0031 TP_ARGS(xid, fid, tid, sesid, offset, len, rc),
0032 TP_STRUCT__entry(
0033 __field(unsigned int, xid)
0034 __field(__u64, fid)
0035 __field(__u32, tid)
0036 __field(__u64, sesid)
0037 __field(__u64, offset)
0038 __field(__u32, len)
0039 __field(int, rc)
0040 ),
0041 TP_fast_assign(
0042 __entry->xid = xid;
0043 __entry->fid = fid;
0044 __entry->tid = tid;
0045 __entry->sesid = sesid;
0046 __entry->offset = offset;
0047 __entry->len = len;
0048 __entry->rc = rc;
0049 ),
0050 TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx len=0x%x rc=%d",
0051 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
0052 __entry->offset, __entry->len, __entry->rc)
0053 )
0054
0055 #define DEFINE_SMB3_RW_ERR_EVENT(name) \
0056 DEFINE_EVENT(smb3_rw_err_class, smb3_##name, \
0057 TP_PROTO(unsigned int xid, \
0058 __u64 fid, \
0059 __u32 tid, \
0060 __u64 sesid, \
0061 __u64 offset, \
0062 __u32 len, \
0063 int rc), \
0064 TP_ARGS(xid, fid, tid, sesid, offset, len, rc))
0065
0066 DEFINE_SMB3_RW_ERR_EVENT(write_err);
0067 DEFINE_SMB3_RW_ERR_EVENT(read_err);
0068 DEFINE_SMB3_RW_ERR_EVENT(query_dir_err);
0069 DEFINE_SMB3_RW_ERR_EVENT(zero_err);
0070 DEFINE_SMB3_RW_ERR_EVENT(falloc_err);
0071
0072
0073
0074 DECLARE_EVENT_CLASS(smb3_rw_done_class,
0075 TP_PROTO(unsigned int xid,
0076 __u64 fid,
0077 __u32 tid,
0078 __u64 sesid,
0079 __u64 offset,
0080 __u32 len),
0081 TP_ARGS(xid, fid, tid, sesid, offset, len),
0082 TP_STRUCT__entry(
0083 __field(unsigned int, xid)
0084 __field(__u64, fid)
0085 __field(__u32, tid)
0086 __field(__u64, sesid)
0087 __field(__u64, offset)
0088 __field(__u32, len)
0089 ),
0090 TP_fast_assign(
0091 __entry->xid = xid;
0092 __entry->fid = fid;
0093 __entry->tid = tid;
0094 __entry->sesid = sesid;
0095 __entry->offset = offset;
0096 __entry->len = len;
0097 ),
0098 TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx len=0x%x",
0099 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
0100 __entry->offset, __entry->len)
0101 )
0102
0103 #define DEFINE_SMB3_RW_DONE_EVENT(name) \
0104 DEFINE_EVENT(smb3_rw_done_class, smb3_##name, \
0105 TP_PROTO(unsigned int xid, \
0106 __u64 fid, \
0107 __u32 tid, \
0108 __u64 sesid, \
0109 __u64 offset, \
0110 __u32 len), \
0111 TP_ARGS(xid, fid, tid, sesid, offset, len))
0112
0113 DEFINE_SMB3_RW_DONE_EVENT(write_enter);
0114 DEFINE_SMB3_RW_DONE_EVENT(read_enter);
0115 DEFINE_SMB3_RW_DONE_EVENT(query_dir_enter);
0116 DEFINE_SMB3_RW_DONE_EVENT(zero_enter);
0117 DEFINE_SMB3_RW_DONE_EVENT(falloc_enter);
0118 DEFINE_SMB3_RW_DONE_EVENT(write_done);
0119 DEFINE_SMB3_RW_DONE_EVENT(read_done);
0120 DEFINE_SMB3_RW_DONE_EVENT(query_dir_done);
0121 DEFINE_SMB3_RW_DONE_EVENT(zero_done);
0122 DEFINE_SMB3_RW_DONE_EVENT(falloc_done);
0123
0124
0125 DECLARE_EVENT_CLASS(smb3_eof_class,
0126 TP_PROTO(unsigned int xid,
0127 __u64 fid,
0128 __u32 tid,
0129 __u64 sesid,
0130 __u64 offset),
0131 TP_ARGS(xid, fid, tid, sesid, offset),
0132 TP_STRUCT__entry(
0133 __field(unsigned int, xid)
0134 __field(__u64, fid)
0135 __field(__u32, tid)
0136 __field(__u64, sesid)
0137 __field(__u64, offset)
0138 ),
0139 TP_fast_assign(
0140 __entry->xid = xid;
0141 __entry->fid = fid;
0142 __entry->tid = tid;
0143 __entry->sesid = sesid;
0144 __entry->offset = offset;
0145 ),
0146 TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx",
0147 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
0148 __entry->offset)
0149 )
0150
0151 #define DEFINE_SMB3_EOF_EVENT(name) \
0152 DEFINE_EVENT(smb3_eof_class, smb3_##name, \
0153 TP_PROTO(unsigned int xid, \
0154 __u64 fid, \
0155 __u32 tid, \
0156 __u64 sesid, \
0157 __u64 offset), \
0158 TP_ARGS(xid, fid, tid, sesid, offset))
0159
0160 DEFINE_SMB3_EOF_EVENT(set_eof);
0161
0162
0163
0164
0165 DECLARE_EVENT_CLASS(smb3_fd_class,
0166 TP_PROTO(unsigned int xid,
0167 __u64 fid,
0168 __u32 tid,
0169 __u64 sesid),
0170 TP_ARGS(xid, fid, tid, sesid),
0171 TP_STRUCT__entry(
0172 __field(unsigned int, xid)
0173 __field(__u64, fid)
0174 __field(__u32, tid)
0175 __field(__u64, sesid)
0176 ),
0177 TP_fast_assign(
0178 __entry->xid = xid;
0179 __entry->fid = fid;
0180 __entry->tid = tid;
0181 __entry->sesid = sesid;
0182 ),
0183 TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx",
0184 __entry->xid, __entry->sesid, __entry->tid, __entry->fid)
0185 )
0186
0187 #define DEFINE_SMB3_FD_EVENT(name) \
0188 DEFINE_EVENT(smb3_fd_class, smb3_##name, \
0189 TP_PROTO(unsigned int xid, \
0190 __u64 fid, \
0191 __u32 tid, \
0192 __u64 sesid), \
0193 TP_ARGS(xid, fid, tid, sesid))
0194
0195 DEFINE_SMB3_FD_EVENT(flush_enter);
0196 DEFINE_SMB3_FD_EVENT(flush_done);
0197 DEFINE_SMB3_FD_EVENT(close_enter);
0198 DEFINE_SMB3_FD_EVENT(close_done);
0199 DEFINE_SMB3_FD_EVENT(oplock_not_found);
0200
0201 DECLARE_EVENT_CLASS(smb3_fd_err_class,
0202 TP_PROTO(unsigned int xid,
0203 __u64 fid,
0204 __u32 tid,
0205 __u64 sesid,
0206 int rc),
0207 TP_ARGS(xid, fid, tid, sesid, rc),
0208 TP_STRUCT__entry(
0209 __field(unsigned int, xid)
0210 __field(__u64, fid)
0211 __field(__u32, tid)
0212 __field(__u64, sesid)
0213 __field(int, rc)
0214 ),
0215 TP_fast_assign(
0216 __entry->xid = xid;
0217 __entry->fid = fid;
0218 __entry->tid = tid;
0219 __entry->sesid = sesid;
0220 __entry->rc = rc;
0221 ),
0222 TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx rc=%d",
0223 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
0224 __entry->rc)
0225 )
0226
0227 #define DEFINE_SMB3_FD_ERR_EVENT(name) \
0228 DEFINE_EVENT(smb3_fd_err_class, smb3_##name, \
0229 TP_PROTO(unsigned int xid, \
0230 __u64 fid, \
0231 __u32 tid, \
0232 __u64 sesid, \
0233 int rc), \
0234 TP_ARGS(xid, fid, tid, sesid, rc))
0235
0236 DEFINE_SMB3_FD_ERR_EVENT(flush_err);
0237 DEFINE_SMB3_FD_ERR_EVENT(lock_err);
0238 DEFINE_SMB3_FD_ERR_EVENT(close_err);
0239
0240
0241
0242
0243 DECLARE_EVENT_CLASS(smb3_inf_enter_class,
0244 TP_PROTO(unsigned int xid,
0245 __u64 fid,
0246 __u32 tid,
0247 __u64 sesid,
0248 __u8 infclass,
0249 __u32 type),
0250 TP_ARGS(xid, fid, tid, sesid, infclass, type),
0251 TP_STRUCT__entry(
0252 __field(unsigned int, xid)
0253 __field(__u64, fid)
0254 __field(__u32, tid)
0255 __field(__u64, sesid)
0256 __field(__u8, infclass)
0257 __field(__u32, type)
0258 ),
0259 TP_fast_assign(
0260 __entry->xid = xid;
0261 __entry->fid = fid;
0262 __entry->tid = tid;
0263 __entry->sesid = sesid;
0264 __entry->infclass = infclass;
0265 __entry->type = type;
0266 ),
0267 TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx class=%u type=0x%x",
0268 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
0269 __entry->infclass, __entry->type)
0270 )
0271
0272 #define DEFINE_SMB3_INF_ENTER_EVENT(name) \
0273 DEFINE_EVENT(smb3_inf_enter_class, smb3_##name, \
0274 TP_PROTO(unsigned int xid, \
0275 __u64 fid, \
0276 __u32 tid, \
0277 __u64 sesid, \
0278 __u8 infclass, \
0279 __u32 type), \
0280 TP_ARGS(xid, fid, tid, sesid, infclass, type))
0281
0282 DEFINE_SMB3_INF_ENTER_EVENT(query_info_enter);
0283 DEFINE_SMB3_INF_ENTER_EVENT(query_info_done);
0284 DEFINE_SMB3_INF_ENTER_EVENT(notify_enter);
0285 DEFINE_SMB3_INF_ENTER_EVENT(notify_done);
0286
0287 DECLARE_EVENT_CLASS(smb3_inf_err_class,
0288 TP_PROTO(unsigned int xid,
0289 __u64 fid,
0290 __u32 tid,
0291 __u64 sesid,
0292 __u8 infclass,
0293 __u32 type,
0294 int rc),
0295 TP_ARGS(xid, fid, tid, sesid, infclass, type, rc),
0296 TP_STRUCT__entry(
0297 __field(unsigned int, xid)
0298 __field(__u64, fid)
0299 __field(__u32, tid)
0300 __field(__u64, sesid)
0301 __field(__u8, infclass)
0302 __field(__u32, type)
0303 __field(int, rc)
0304 ),
0305 TP_fast_assign(
0306 __entry->xid = xid;
0307 __entry->fid = fid;
0308 __entry->tid = tid;
0309 __entry->sesid = sesid;
0310 __entry->infclass = infclass;
0311 __entry->type = type;
0312 __entry->rc = rc;
0313 ),
0314 TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx class=%u type=0x%x rc=%d",
0315 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
0316 __entry->infclass, __entry->type, __entry->rc)
0317 )
0318
0319 #define DEFINE_SMB3_INF_ERR_EVENT(name) \
0320 DEFINE_EVENT(smb3_inf_err_class, smb3_##name, \
0321 TP_PROTO(unsigned int xid, \
0322 __u64 fid, \
0323 __u32 tid, \
0324 __u64 sesid, \
0325 __u8 infclass, \
0326 __u32 type, \
0327 int rc), \
0328 TP_ARGS(xid, fid, tid, sesid, infclass, type, rc))
0329
0330 DEFINE_SMB3_INF_ERR_EVENT(query_info_err);
0331 DEFINE_SMB3_INF_ERR_EVENT(set_info_err);
0332 DEFINE_SMB3_INF_ERR_EVENT(notify_err);
0333 DEFINE_SMB3_INF_ERR_EVENT(fsctl_err);
0334
0335 DECLARE_EVENT_CLASS(smb3_inf_compound_enter_class,
0336 TP_PROTO(unsigned int xid,
0337 __u32 tid,
0338 __u64 sesid,
0339 const char *full_path),
0340 TP_ARGS(xid, tid, sesid, full_path),
0341 TP_STRUCT__entry(
0342 __field(unsigned int, xid)
0343 __field(__u32, tid)
0344 __field(__u64, sesid)
0345 __string(path, full_path)
0346 ),
0347 TP_fast_assign(
0348 __entry->xid = xid;
0349 __entry->tid = tid;
0350 __entry->sesid = sesid;
0351 __assign_str(path, full_path);
0352 ),
0353 TP_printk("xid=%u sid=0x%llx tid=0x%x path=%s",
0354 __entry->xid, __entry->sesid, __entry->tid,
0355 __get_str(path))
0356 )
0357
0358 #define DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(name) \
0359 DEFINE_EVENT(smb3_inf_compound_enter_class, smb3_##name, \
0360 TP_PROTO(unsigned int xid, \
0361 __u32 tid, \
0362 __u64 sesid, \
0363 const char *full_path), \
0364 TP_ARGS(xid, tid, sesid, full_path))
0365
0366 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(query_info_compound_enter);
0367 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(posix_query_info_compound_enter);
0368 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(hardlink_enter);
0369 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(rename_enter);
0370 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(rmdir_enter);
0371 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_eof_enter);
0372 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_info_compound_enter);
0373 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(delete_enter);
0374 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(mkdir_enter);
0375
0376
0377 DECLARE_EVENT_CLASS(smb3_inf_compound_done_class,
0378 TP_PROTO(unsigned int xid,
0379 __u32 tid,
0380 __u64 sesid),
0381 TP_ARGS(xid, tid, sesid),
0382 TP_STRUCT__entry(
0383 __field(unsigned int, xid)
0384 __field(__u32, tid)
0385 __field(__u64, sesid)
0386 ),
0387 TP_fast_assign(
0388 __entry->xid = xid;
0389 __entry->tid = tid;
0390 __entry->sesid = sesid;
0391 ),
0392 TP_printk("xid=%u sid=0x%llx tid=0x%x",
0393 __entry->xid, __entry->sesid, __entry->tid)
0394 )
0395
0396 #define DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(name) \
0397 DEFINE_EVENT(smb3_inf_compound_done_class, smb3_##name, \
0398 TP_PROTO(unsigned int xid, \
0399 __u32 tid, \
0400 __u64 sesid), \
0401 TP_ARGS(xid, tid, sesid))
0402
0403 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(query_info_compound_done);
0404 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(posix_query_info_compound_done);
0405 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(hardlink_done);
0406 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(rename_done);
0407 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(rmdir_done);
0408 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_eof_done);
0409 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_info_compound_done);
0410 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(delete_done);
0411 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(mkdir_done);
0412
0413
0414 DECLARE_EVENT_CLASS(smb3_inf_compound_err_class,
0415 TP_PROTO(unsigned int xid,
0416 __u32 tid,
0417 __u64 sesid,
0418 int rc),
0419 TP_ARGS(xid, tid, sesid, rc),
0420 TP_STRUCT__entry(
0421 __field(unsigned int, xid)
0422 __field(__u32, tid)
0423 __field(__u64, sesid)
0424 __field(int, rc)
0425 ),
0426 TP_fast_assign(
0427 __entry->xid = xid;
0428 __entry->tid = tid;
0429 __entry->sesid = sesid;
0430 __entry->rc = rc;
0431 ),
0432 TP_printk("xid=%u sid=0x%llx tid=0x%x rc=%d",
0433 __entry->xid, __entry->sesid, __entry->tid,
0434 __entry->rc)
0435 )
0436
0437 #define DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(name) \
0438 DEFINE_EVENT(smb3_inf_compound_err_class, smb3_##name, \
0439 TP_PROTO(unsigned int xid, \
0440 __u32 tid, \
0441 __u64 sesid, \
0442 int rc), \
0443 TP_ARGS(xid, tid, sesid, rc))
0444
0445 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(query_info_compound_err);
0446 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(posix_query_info_compound_err);
0447 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(hardlink_err);
0448 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(rename_err);
0449 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(rmdir_err);
0450 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_eof_err);
0451 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_info_compound_err);
0452 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(mkdir_err);
0453 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(delete_err);
0454
0455
0456
0457
0458 DECLARE_EVENT_CLASS(smb3_cmd_err_class,
0459 TP_PROTO(__u32 tid,
0460 __u64 sesid,
0461 __u16 cmd,
0462 __u64 mid,
0463 __u32 status,
0464 int rc),
0465 TP_ARGS(tid, sesid, cmd, mid, status, rc),
0466 TP_STRUCT__entry(
0467 __field(__u32, tid)
0468 __field(__u64, sesid)
0469 __field(__u16, cmd)
0470 __field(__u64, mid)
0471 __field(__u32, status)
0472 __field(int, rc)
0473 ),
0474 TP_fast_assign(
0475 __entry->tid = tid;
0476 __entry->sesid = sesid;
0477 __entry->cmd = cmd;
0478 __entry->mid = mid;
0479 __entry->status = status;
0480 __entry->rc = rc;
0481 ),
0482 TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu status=0x%x rc=%d",
0483 __entry->sesid, __entry->tid, __entry->cmd, __entry->mid,
0484 __entry->status, __entry->rc)
0485 )
0486
0487 #define DEFINE_SMB3_CMD_ERR_EVENT(name) \
0488 DEFINE_EVENT(smb3_cmd_err_class, smb3_##name, \
0489 TP_PROTO(__u32 tid, \
0490 __u64 sesid, \
0491 __u16 cmd, \
0492 __u64 mid, \
0493 __u32 status, \
0494 int rc), \
0495 TP_ARGS(tid, sesid, cmd, mid, status, rc))
0496
0497 DEFINE_SMB3_CMD_ERR_EVENT(cmd_err);
0498
0499 DECLARE_EVENT_CLASS(smb3_cmd_done_class,
0500 TP_PROTO(__u32 tid,
0501 __u64 sesid,
0502 __u16 cmd,
0503 __u64 mid),
0504 TP_ARGS(tid, sesid, cmd, mid),
0505 TP_STRUCT__entry(
0506 __field(__u32, tid)
0507 __field(__u64, sesid)
0508 __field(__u16, cmd)
0509 __field(__u64, mid)
0510 ),
0511 TP_fast_assign(
0512 __entry->tid = tid;
0513 __entry->sesid = sesid;
0514 __entry->cmd = cmd;
0515 __entry->mid = mid;
0516 ),
0517 TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu",
0518 __entry->sesid, __entry->tid,
0519 __entry->cmd, __entry->mid)
0520 )
0521
0522 #define DEFINE_SMB3_CMD_DONE_EVENT(name) \
0523 DEFINE_EVENT(smb3_cmd_done_class, smb3_##name, \
0524 TP_PROTO(__u32 tid, \
0525 __u64 sesid, \
0526 __u16 cmd, \
0527 __u64 mid), \
0528 TP_ARGS(tid, sesid, cmd, mid))
0529
0530 DEFINE_SMB3_CMD_DONE_EVENT(cmd_enter);
0531 DEFINE_SMB3_CMD_DONE_EVENT(cmd_done);
0532 DEFINE_SMB3_CMD_DONE_EVENT(ses_expired);
0533
0534 DECLARE_EVENT_CLASS(smb3_mid_class,
0535 TP_PROTO(__u16 cmd,
0536 __u64 mid,
0537 __u32 pid,
0538 unsigned long when_sent,
0539 unsigned long when_received),
0540 TP_ARGS(cmd, mid, pid, when_sent, when_received),
0541 TP_STRUCT__entry(
0542 __field(__u16, cmd)
0543 __field(__u64, mid)
0544 __field(__u32, pid)
0545 __field(unsigned long, when_sent)
0546 __field(unsigned long, when_received)
0547 ),
0548 TP_fast_assign(
0549 __entry->cmd = cmd;
0550 __entry->mid = mid;
0551 __entry->pid = pid;
0552 __entry->when_sent = when_sent;
0553 __entry->when_received = when_received;
0554 ),
0555 TP_printk("\tcmd=%u mid=%llu pid=%u, when_sent=%lu when_rcv=%lu",
0556 __entry->cmd, __entry->mid, __entry->pid, __entry->when_sent,
0557 __entry->when_received)
0558 )
0559
0560 #define DEFINE_SMB3_MID_EVENT(name) \
0561 DEFINE_EVENT(smb3_mid_class, smb3_##name, \
0562 TP_PROTO(__u16 cmd, \
0563 __u64 mid, \
0564 __u32 pid, \
0565 unsigned long when_sent, \
0566 unsigned long when_received), \
0567 TP_ARGS(cmd, mid, pid, when_sent, when_received))
0568
0569 DEFINE_SMB3_MID_EVENT(slow_rsp);
0570
0571 DECLARE_EVENT_CLASS(smb3_exit_err_class,
0572 TP_PROTO(unsigned int xid,
0573 const char *func_name,
0574 int rc),
0575 TP_ARGS(xid, func_name, rc),
0576 TP_STRUCT__entry(
0577 __field(unsigned int, xid)
0578 __string(func_name, func_name)
0579 __field(int, rc)
0580 ),
0581 TP_fast_assign(
0582 __entry->xid = xid;
0583 __assign_str(func_name, func_name);
0584 __entry->rc = rc;
0585 ),
0586 TP_printk("\t%s: xid=%u rc=%d",
0587 __get_str(func_name), __entry->xid, __entry->rc)
0588 )
0589
0590 #define DEFINE_SMB3_EXIT_ERR_EVENT(name) \
0591 DEFINE_EVENT(smb3_exit_err_class, smb3_##name, \
0592 TP_PROTO(unsigned int xid, \
0593 const char *func_name, \
0594 int rc), \
0595 TP_ARGS(xid, func_name, rc))
0596
0597 DEFINE_SMB3_EXIT_ERR_EVENT(exit_err);
0598
0599
0600 DECLARE_EVENT_CLASS(smb3_sync_err_class,
0601 TP_PROTO(unsigned long ino,
0602 int rc),
0603 TP_ARGS(ino, rc),
0604 TP_STRUCT__entry(
0605 __field(unsigned long, ino)
0606 __field(int, rc)
0607 ),
0608 TP_fast_assign(
0609 __entry->ino = ino;
0610 __entry->rc = rc;
0611 ),
0612 TP_printk("\tino=%lu rc=%d",
0613 __entry->ino, __entry->rc)
0614 )
0615
0616 #define DEFINE_SMB3_SYNC_ERR_EVENT(name) \
0617 DEFINE_EVENT(smb3_sync_err_class, cifs_##name, \
0618 TP_PROTO(unsigned long ino, \
0619 int rc), \
0620 TP_ARGS(ino, rc))
0621
0622 DEFINE_SMB3_SYNC_ERR_EVENT(fsync_err);
0623 DEFINE_SMB3_SYNC_ERR_EVENT(flush_err);
0624
0625
0626 DECLARE_EVENT_CLASS(smb3_enter_exit_class,
0627 TP_PROTO(unsigned int xid,
0628 const char *func_name),
0629 TP_ARGS(xid, func_name),
0630 TP_STRUCT__entry(
0631 __field(unsigned int, xid)
0632 __string(func_name, func_name)
0633 ),
0634 TP_fast_assign(
0635 __entry->xid = xid;
0636 __assign_str(func_name, func_name);
0637 ),
0638 TP_printk("\t%s: xid=%u",
0639 __get_str(func_name), __entry->xid)
0640 )
0641
0642 #define DEFINE_SMB3_ENTER_EXIT_EVENT(name) \
0643 DEFINE_EVENT(smb3_enter_exit_class, smb3_##name, \
0644 TP_PROTO(unsigned int xid, \
0645 const char *func_name), \
0646 TP_ARGS(xid, func_name))
0647
0648 DEFINE_SMB3_ENTER_EXIT_EVENT(enter);
0649 DEFINE_SMB3_ENTER_EXIT_EVENT(exit_done);
0650
0651
0652
0653
0654
0655 DECLARE_EVENT_CLASS(smb3_tcon_class,
0656 TP_PROTO(unsigned int xid,
0657 __u32 tid,
0658 __u64 sesid,
0659 const char *unc_name,
0660 int rc),
0661 TP_ARGS(xid, tid, sesid, unc_name, rc),
0662 TP_STRUCT__entry(
0663 __field(unsigned int, xid)
0664 __field(__u32, tid)
0665 __field(__u64, sesid)
0666 __string(name, unc_name)
0667 __field(int, rc)
0668 ),
0669 TP_fast_assign(
0670 __entry->xid = xid;
0671 __entry->tid = tid;
0672 __entry->sesid = sesid;
0673 __assign_str(name, unc_name);
0674 __entry->rc = rc;
0675 ),
0676 TP_printk("xid=%u sid=0x%llx tid=0x%x unc_name=%s rc=%d",
0677 __entry->xid, __entry->sesid, __entry->tid,
0678 __get_str(name), __entry->rc)
0679 )
0680
0681 #define DEFINE_SMB3_TCON_EVENT(name) \
0682 DEFINE_EVENT(smb3_tcon_class, smb3_##name, \
0683 TP_PROTO(unsigned int xid, \
0684 __u32 tid, \
0685 __u64 sesid, \
0686 const char *unc_name, \
0687 int rc), \
0688 TP_ARGS(xid, tid, sesid, unc_name, rc))
0689
0690 DEFINE_SMB3_TCON_EVENT(tcon);
0691
0692
0693
0694
0695
0696
0697 DECLARE_EVENT_CLASS(smb3_open_enter_class,
0698 TP_PROTO(unsigned int xid,
0699 __u32 tid,
0700 __u64 sesid,
0701 int create_options,
0702 int desired_access),
0703 TP_ARGS(xid, tid, sesid, create_options, desired_access),
0704 TP_STRUCT__entry(
0705 __field(unsigned int, xid)
0706 __field(__u32, tid)
0707 __field(__u64, sesid)
0708 __field(int, create_options)
0709 __field(int, desired_access)
0710 ),
0711 TP_fast_assign(
0712 __entry->xid = xid;
0713 __entry->tid = tid;
0714 __entry->sesid = sesid;
0715 __entry->create_options = create_options;
0716 __entry->desired_access = desired_access;
0717 ),
0718 TP_printk("xid=%u sid=0x%llx tid=0x%x cr_opts=0x%x des_access=0x%x",
0719 __entry->xid, __entry->sesid, __entry->tid,
0720 __entry->create_options, __entry->desired_access)
0721 )
0722
0723 #define DEFINE_SMB3_OPEN_ENTER_EVENT(name) \
0724 DEFINE_EVENT(smb3_open_enter_class, smb3_##name, \
0725 TP_PROTO(unsigned int xid, \
0726 __u32 tid, \
0727 __u64 sesid, \
0728 int create_options, \
0729 int desired_access), \
0730 TP_ARGS(xid, tid, sesid, create_options, desired_access))
0731
0732 DEFINE_SMB3_OPEN_ENTER_EVENT(open_enter);
0733 DEFINE_SMB3_OPEN_ENTER_EVENT(posix_mkdir_enter);
0734
0735 DECLARE_EVENT_CLASS(smb3_open_err_class,
0736 TP_PROTO(unsigned int xid,
0737 __u32 tid,
0738 __u64 sesid,
0739 int create_options,
0740 int desired_access,
0741 int rc),
0742 TP_ARGS(xid, tid, sesid, create_options, desired_access, rc),
0743 TP_STRUCT__entry(
0744 __field(unsigned int, xid)
0745 __field(__u32, tid)
0746 __field(__u64, sesid)
0747 __field(int, create_options)
0748 __field(int, desired_access)
0749 __field(int, rc)
0750 ),
0751 TP_fast_assign(
0752 __entry->xid = xid;
0753 __entry->tid = tid;
0754 __entry->sesid = sesid;
0755 __entry->create_options = create_options;
0756 __entry->desired_access = desired_access;
0757 __entry->rc = rc;
0758 ),
0759 TP_printk("xid=%u sid=0x%llx tid=0x%x cr_opts=0x%x des_access=0x%x rc=%d",
0760 __entry->xid, __entry->sesid, __entry->tid,
0761 __entry->create_options, __entry->desired_access, __entry->rc)
0762 )
0763
0764 #define DEFINE_SMB3_OPEN_ERR_EVENT(name) \
0765 DEFINE_EVENT(smb3_open_err_class, smb3_##name, \
0766 TP_PROTO(unsigned int xid, \
0767 __u32 tid, \
0768 __u64 sesid, \
0769 int create_options, \
0770 int desired_access, \
0771 int rc), \
0772 TP_ARGS(xid, tid, sesid, create_options, desired_access, rc))
0773
0774 DEFINE_SMB3_OPEN_ERR_EVENT(open_err);
0775 DEFINE_SMB3_OPEN_ERR_EVENT(posix_mkdir_err);
0776
0777 DECLARE_EVENT_CLASS(smb3_open_done_class,
0778 TP_PROTO(unsigned int xid,
0779 __u64 fid,
0780 __u32 tid,
0781 __u64 sesid,
0782 int create_options,
0783 int desired_access),
0784 TP_ARGS(xid, fid, tid, sesid, create_options, desired_access),
0785 TP_STRUCT__entry(
0786 __field(unsigned int, xid)
0787 __field(__u64, fid)
0788 __field(__u32, tid)
0789 __field(__u64, sesid)
0790 __field(int, create_options)
0791 __field(int, desired_access)
0792 ),
0793 TP_fast_assign(
0794 __entry->xid = xid;
0795 __entry->fid = fid;
0796 __entry->tid = tid;
0797 __entry->sesid = sesid;
0798 __entry->create_options = create_options;
0799 __entry->desired_access = desired_access;
0800 ),
0801 TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx cr_opts=0x%x des_access=0x%x",
0802 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
0803 __entry->create_options, __entry->desired_access)
0804 )
0805
0806 #define DEFINE_SMB3_OPEN_DONE_EVENT(name) \
0807 DEFINE_EVENT(smb3_open_done_class, smb3_##name, \
0808 TP_PROTO(unsigned int xid, \
0809 __u64 fid, \
0810 __u32 tid, \
0811 __u64 sesid, \
0812 int create_options, \
0813 int desired_access), \
0814 TP_ARGS(xid, fid, tid, sesid, create_options, desired_access))
0815
0816 DEFINE_SMB3_OPEN_DONE_EVENT(open_done);
0817 DEFINE_SMB3_OPEN_DONE_EVENT(posix_mkdir_done);
0818
0819
0820 DECLARE_EVENT_CLASS(smb3_lease_done_class,
0821 TP_PROTO(__u32 lease_state,
0822 __u32 tid,
0823 __u64 sesid,
0824 __u64 lease_key_low,
0825 __u64 lease_key_high),
0826 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high),
0827 TP_STRUCT__entry(
0828 __field(__u32, lease_state)
0829 __field(__u32, tid)
0830 __field(__u64, sesid)
0831 __field(__u64, lease_key_low)
0832 __field(__u64, lease_key_high)
0833 ),
0834 TP_fast_assign(
0835 __entry->lease_state = lease_state;
0836 __entry->tid = tid;
0837 __entry->sesid = sesid;
0838 __entry->lease_key_low = lease_key_low;
0839 __entry->lease_key_high = lease_key_high;
0840 ),
0841 TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x",
0842 __entry->sesid, __entry->tid, __entry->lease_key_high,
0843 __entry->lease_key_low, __entry->lease_state)
0844 )
0845
0846 #define DEFINE_SMB3_LEASE_DONE_EVENT(name) \
0847 DEFINE_EVENT(smb3_lease_done_class, smb3_##name, \
0848 TP_PROTO(__u32 lease_state, \
0849 __u32 tid, \
0850 __u64 sesid, \
0851 __u64 lease_key_low, \
0852 __u64 lease_key_high), \
0853 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high))
0854
0855 DEFINE_SMB3_LEASE_DONE_EVENT(lease_done);
0856 DEFINE_SMB3_LEASE_DONE_EVENT(lease_not_found);
0857
0858 DECLARE_EVENT_CLASS(smb3_lease_err_class,
0859 TP_PROTO(__u32 lease_state,
0860 __u32 tid,
0861 __u64 sesid,
0862 __u64 lease_key_low,
0863 __u64 lease_key_high,
0864 int rc),
0865 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc),
0866 TP_STRUCT__entry(
0867 __field(__u32, lease_state)
0868 __field(__u32, tid)
0869 __field(__u64, sesid)
0870 __field(__u64, lease_key_low)
0871 __field(__u64, lease_key_high)
0872 __field(int, rc)
0873 ),
0874 TP_fast_assign(
0875 __entry->lease_state = lease_state;
0876 __entry->tid = tid;
0877 __entry->sesid = sesid;
0878 __entry->lease_key_low = lease_key_low;
0879 __entry->lease_key_high = lease_key_high;
0880 __entry->rc = rc;
0881 ),
0882 TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x rc=%d",
0883 __entry->sesid, __entry->tid, __entry->lease_key_high,
0884 __entry->lease_key_low, __entry->lease_state, __entry->rc)
0885 )
0886
0887 #define DEFINE_SMB3_LEASE_ERR_EVENT(name) \
0888 DEFINE_EVENT(smb3_lease_err_class, smb3_##name, \
0889 TP_PROTO(__u32 lease_state, \
0890 __u32 tid, \
0891 __u64 sesid, \
0892 __u64 lease_key_low, \
0893 __u64 lease_key_high, \
0894 int rc), \
0895 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc))
0896
0897 DEFINE_SMB3_LEASE_ERR_EVENT(lease_err);
0898
0899 DECLARE_EVENT_CLASS(smb3_connect_class,
0900 TP_PROTO(char *hostname,
0901 __u64 conn_id,
0902 const struct __kernel_sockaddr_storage *dst_addr),
0903 TP_ARGS(hostname, conn_id, dst_addr),
0904 TP_STRUCT__entry(
0905 __string(hostname, hostname)
0906 __field(__u64, conn_id)
0907 __array(__u8, dst_addr, sizeof(struct sockaddr_storage))
0908 ),
0909 TP_fast_assign(
0910 struct sockaddr_storage *pss = NULL;
0911
0912 __entry->conn_id = conn_id;
0913 pss = (struct sockaddr_storage *)__entry->dst_addr;
0914 *pss = *dst_addr;
0915 __assign_str(hostname, hostname);
0916 ),
0917 TP_printk("conn_id=0x%llx server=%s addr=%pISpsfc",
0918 __entry->conn_id,
0919 __get_str(hostname),
0920 __entry->dst_addr)
0921 )
0922
0923 #define DEFINE_SMB3_CONNECT_EVENT(name) \
0924 DEFINE_EVENT(smb3_connect_class, smb3_##name, \
0925 TP_PROTO(char *hostname, \
0926 __u64 conn_id, \
0927 const struct __kernel_sockaddr_storage *addr), \
0928 TP_ARGS(hostname, conn_id, addr))
0929
0930 DEFINE_SMB3_CONNECT_EVENT(connect_done);
0931
0932 DECLARE_EVENT_CLASS(smb3_connect_err_class,
0933 TP_PROTO(char *hostname, __u64 conn_id,
0934 const struct __kernel_sockaddr_storage *dst_addr, int rc),
0935 TP_ARGS(hostname, conn_id, dst_addr, rc),
0936 TP_STRUCT__entry(
0937 __string(hostname, hostname)
0938 __field(__u64, conn_id)
0939 __array(__u8, dst_addr, sizeof(struct sockaddr_storage))
0940 __field(int, rc)
0941 ),
0942 TP_fast_assign(
0943 struct sockaddr_storage *pss = NULL;
0944
0945 __entry->conn_id = conn_id;
0946 __entry->rc = rc;
0947 pss = (struct sockaddr_storage *)__entry->dst_addr;
0948 *pss = *dst_addr;
0949 __assign_str(hostname, hostname);
0950 ),
0951 TP_printk("rc=%d conn_id=0x%llx server=%s addr=%pISpsfc",
0952 __entry->rc,
0953 __entry->conn_id,
0954 __get_str(hostname),
0955 __entry->dst_addr)
0956 )
0957
0958 #define DEFINE_SMB3_CONNECT_ERR_EVENT(name) \
0959 DEFINE_EVENT(smb3_connect_err_class, smb3_##name, \
0960 TP_PROTO(char *hostname, \
0961 __u64 conn_id, \
0962 const struct __kernel_sockaddr_storage *addr, \
0963 int rc), \
0964 TP_ARGS(hostname, conn_id, addr, rc))
0965
0966 DEFINE_SMB3_CONNECT_ERR_EVENT(connect_err);
0967
0968 DECLARE_EVENT_CLASS(smb3_reconnect_class,
0969 TP_PROTO(__u64 currmid,
0970 __u64 conn_id,
0971 char *hostname),
0972 TP_ARGS(currmid, conn_id, hostname),
0973 TP_STRUCT__entry(
0974 __field(__u64, currmid)
0975 __field(__u64, conn_id)
0976 __string(hostname, hostname)
0977 ),
0978 TP_fast_assign(
0979 __entry->currmid = currmid;
0980 __entry->conn_id = conn_id;
0981 __assign_str(hostname, hostname);
0982 ),
0983 TP_printk("conn_id=0x%llx server=%s current_mid=%llu",
0984 __entry->conn_id,
0985 __get_str(hostname),
0986 __entry->currmid)
0987 )
0988
0989 #define DEFINE_SMB3_RECONNECT_EVENT(name) \
0990 DEFINE_EVENT(smb3_reconnect_class, smb3_##name, \
0991 TP_PROTO(__u64 currmid, \
0992 __u64 conn_id, \
0993 char *hostname), \
0994 TP_ARGS(currmid, conn_id, hostname))
0995
0996 DEFINE_SMB3_RECONNECT_EVENT(reconnect);
0997 DEFINE_SMB3_RECONNECT_EVENT(partial_send_reconnect);
0998
0999 DECLARE_EVENT_CLASS(smb3_credit_class,
1000 TP_PROTO(__u64 currmid,
1001 __u64 conn_id,
1002 char *hostname,
1003 int credits,
1004 int credits_to_add,
1005 int in_flight),
1006 TP_ARGS(currmid, conn_id, hostname, credits, credits_to_add, in_flight),
1007 TP_STRUCT__entry(
1008 __field(__u64, currmid)
1009 __field(__u64, conn_id)
1010 __string(hostname, hostname)
1011 __field(int, credits)
1012 __field(int, credits_to_add)
1013 __field(int, in_flight)
1014 ),
1015 TP_fast_assign(
1016 __entry->currmid = currmid;
1017 __entry->conn_id = conn_id;
1018 __assign_str(hostname, hostname);
1019 __entry->credits = credits;
1020 __entry->credits_to_add = credits_to_add;
1021 __entry->in_flight = in_flight;
1022 ),
1023 TP_printk("conn_id=0x%llx server=%s current_mid=%llu "
1024 "credits=%d credit_change=%d in_flight=%d",
1025 __entry->conn_id,
1026 __get_str(hostname),
1027 __entry->currmid,
1028 __entry->credits,
1029 __entry->credits_to_add,
1030 __entry->in_flight)
1031 )
1032
1033 #define DEFINE_SMB3_CREDIT_EVENT(name) \
1034 DEFINE_EVENT(smb3_credit_class, smb3_##name, \
1035 TP_PROTO(__u64 currmid, \
1036 __u64 conn_id, \
1037 char *hostname, \
1038 int credits, \
1039 int credits_to_add, \
1040 int in_flight), \
1041 TP_ARGS(currmid, conn_id, hostname, credits, credits_to_add, in_flight))
1042
1043 DEFINE_SMB3_CREDIT_EVENT(reconnect_with_invalid_credits);
1044 DEFINE_SMB3_CREDIT_EVENT(reconnect_detected);
1045 DEFINE_SMB3_CREDIT_EVENT(credit_timeout);
1046 DEFINE_SMB3_CREDIT_EVENT(insufficient_credits);
1047 DEFINE_SMB3_CREDIT_EVENT(too_many_credits);
1048 DEFINE_SMB3_CREDIT_EVENT(add_credits);
1049 DEFINE_SMB3_CREDIT_EVENT(adj_credits);
1050 DEFINE_SMB3_CREDIT_EVENT(hdr_credits);
1051 DEFINE_SMB3_CREDIT_EVENT(nblk_credits);
1052 DEFINE_SMB3_CREDIT_EVENT(pend_credits);
1053 DEFINE_SMB3_CREDIT_EVENT(wait_credits);
1054 DEFINE_SMB3_CREDIT_EVENT(waitff_credits);
1055 DEFINE_SMB3_CREDIT_EVENT(overflow_credits);
1056 DEFINE_SMB3_CREDIT_EVENT(set_credits);
1057
1058 #endif
1059
1060 #undef TRACE_INCLUDE_PATH
1061 #define TRACE_INCLUDE_PATH .
1062 #define TRACE_INCLUDE_FILE trace
1063 #include <trace/define_trace.h>