]> git.ipfire.org Git - thirdparty/kernel/stable.git/blame - fs/smb/client/trace.h
Merge tag 'kvm-x86-mmu-6.7' of https://github.com/kvm-x86/linux into HEAD
[thirdparty/kernel/stable.git] / fs / smb / client / trace.h
CommitLineData
eccb4422
SF
1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Copyright (C) 2018, Microsoft Corporation.
4 *
5 * Author(s): Steve French <stfrench@microsoft.com>
eccb4422
SF
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>
d7171cd1
SF
14#include <linux/net.h>
15#include <linux/inet.h>
eccb4422 16
eb068818
SP
17/*
18 * Please use this 3-part article as a reference for writing new tracepoints:
19 * https://lwn.net/Articles/379903/
20 */
21
eccb4422
SF
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 ),
d683bcd3
SF
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,
eccb4422
SF
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);
adb3b4e9 68DEFINE_SMB3_RW_ERR_EVENT(query_dir_err);
779ede04
SF
69DEFINE_SMB3_RW_ERR_EVENT(zero_err);
70DEFINE_SMB3_RW_ERR_EVENT(falloc_err);
eccb4422
SF
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 ),
d683bcd3
SF
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,
eccb4422
SF
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
d323c246
SF
113DEFINE_SMB3_RW_DONE_EVENT(write_enter);
114DEFINE_SMB3_RW_DONE_EVENT(read_enter);
115DEFINE_SMB3_RW_DONE_EVENT(query_dir_enter);
779ede04
SF
116DEFINE_SMB3_RW_DONE_EVENT(zero_enter);
117DEFINE_SMB3_RW_DONE_EVENT(falloc_enter);
eccb4422
SF
118DEFINE_SMB3_RW_DONE_EVENT(write_done);
119DEFINE_SMB3_RW_DONE_EVENT(read_done);
adb3b4e9 120DEFINE_SMB3_RW_DONE_EVENT(query_dir_done);
779ede04
SF
121DEFINE_SMB3_RW_DONE_EVENT(zero_done);
122DEFINE_SMB3_RW_DONE_EVENT(falloc_done);
eccb4422 123
7c05eae8
SF
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
eccb4422
SF
162/*
163 * For handle based calls other than read and write, and get/set info
164 */
f90f9797
SF
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);
35a2b533 199DEFINE_SMB3_FD_EVENT(oplock_not_found);
f90f9797 200
eccb4422
SF
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 ),
d683bcd3
SF
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,
eccb4422
SF
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 */
d42043a6
SF
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);
c3498185
SF
284DEFINE_SMB3_INF_ENTER_EVENT(notify_enter);
285DEFINE_SMB3_INF_ENTER_EVENT(notify_done);
d42043a6 286
eccb4422
SF
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 ),
d683bcd3
SF
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,
eccb4422
SF
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);
c3498185 332DEFINE_SMB3_INF_ERR_EVENT(notify_err);
eccb4422
SF
333DEFINE_SMB3_INF_ERR_EVENT(fsctl_err);
334
8191576a
SF
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);
e4bd7c4a 367DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(posix_query_info_compound_enter);
8191576a
SF
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);
68e14569 375DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(tdis_enter);
8191576a
SF
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);
e4bd7c4a 405DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(posix_query_info_compound_done);
8191576a
SF
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);
68e14569 413DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(tdis_done);
8191576a
SF
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);
e4bd7c4a 448DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(posix_query_info_compound_err);
8191576a
SF
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);
68e14569 456DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(tdis_err);
8191576a 457
eccb4422
SF
458/*
459 * For logging SMB3 Status code and Command for responses which return errors
460 */
461DECLARE_EVENT_CLASS(smb3_cmd_err_class,
d683bcd3 462 TP_PROTO(__u32 tid,
eccb4422
SF
463 __u64 sesid,
464 __u16 cmd,
465 __u64 mid,
466 __u32 status,
467 int rc),
d683bcd3 468 TP_ARGS(tid, sesid, cmd, mid, status, rc),
eccb4422 469 TP_STRUCT__entry(
eccb4422
SF
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(
eccb4422
SF
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 ),
d683bcd3
SF
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)
eccb4422
SF
488)
489
490#define DEFINE_SMB3_CMD_ERR_EVENT(name) \
491DEFINE_EVENT(smb3_cmd_err_class, smb3_##name, \
d683bcd3 492 TP_PROTO(__u32 tid, \
eccb4422
SF
493 __u64 sesid, \
494 __u16 cmd, \
495 __u64 mid, \
496 __u32 status, \
497 int rc), \
d683bcd3 498 TP_ARGS(tid, sesid, cmd, mid, status, rc))
eccb4422
SF
499
500DEFINE_SMB3_CMD_ERR_EVENT(cmd_err);
501
502DECLARE_EVENT_CLASS(smb3_cmd_done_class,
d683bcd3 503 TP_PROTO(__u32 tid,
eccb4422
SF
504 __u64 sesid,
505 __u16 cmd,
506 __u64 mid),
d683bcd3 507 TP_ARGS(tid, sesid, cmd, mid),
eccb4422 508 TP_STRUCT__entry(
eccb4422
SF
509 __field(__u32, tid)
510 __field(__u64, sesid)
511 __field(__u16, cmd)
512 __field(__u64, mid)
513 ),
514 TP_fast_assign(
eccb4422
SF
515 __entry->tid = tid;
516 __entry->sesid = sesid;
517 __entry->cmd = cmd;
518 __entry->mid = mid;
519 ),
d683bcd3
SF
520 TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu",
521 __entry->sesid, __entry->tid,
eccb4422
SF
522 __entry->cmd, __entry->mid)
523)
524
525#define DEFINE_SMB3_CMD_DONE_EVENT(name) \
526DEFINE_EVENT(smb3_cmd_done_class, smb3_##name, \
d683bcd3 527 TP_PROTO(__u32 tid, \
eccb4422
SF
528 __u64 sesid, \
529 __u16 cmd, \
530 __u64 mid), \
d683bcd3 531 TP_ARGS(tid, sesid, cmd, mid))
eccb4422 532
53a3e0d9 533DEFINE_SMB3_CMD_DONE_EVENT(cmd_enter);
eccb4422 534DEFINE_SMB3_CMD_DONE_EVENT(cmd_done);
e68a932b 535DEFINE_SMB3_CMD_DONE_EVENT(ses_expired);
eccb4422 536
020eec5f
SF
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
d683bcd3
SF
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)
eb068818 581 __string(func_name, func_name)
d683bcd3
SF
582 __field(int, rc)
583 ),
584 TP_fast_assign(
585 __entry->xid = xid;
eb068818 586 __assign_str(func_name, func_name);
d683bcd3
SF
587 __entry->rc = rc;
588 ),
589 TP_printk("\t%s: xid=%u rc=%d",
eb068818 590 __get_str(func_name), __entry->xid, __entry->rc)
d683bcd3
SF
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
f2bf09e9
SF
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
d683bcd3
SF
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)
eb068818 635 __string(func_name, func_name)
d683bcd3
SF
636 ),
637 TP_fast_assign(
638 __entry->xid = xid;
eb068818 639 __assign_str(func_name, func_name);
d683bcd3
SF
640 ),
641 TP_printk("\t%s: xid=%u",
eb068818 642 __get_str(func_name), __entry->xid)
d683bcd3
SF
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
f8af49dd
SF
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)
68ddb496 669 __string(name, unc_name)
f8af49dd
SF
670 __field(int, rc)
671 ),
672 TP_fast_assign(
673 __entry->xid = xid;
674 __entry->tid = tid;
675 __entry->sesid = sesid;
68ddb496 676 __assign_str(name, unc_name);
f8af49dd
SF
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,
68ddb496 681 __get_str(name), __entry->rc)
f8af49dd
SF
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);
feeec636 694DEFINE_SMB3_TCON_EVENT(qfs_done);
f8af49dd 695
28d59363 696/*
efe2e9f3 697 * For smb2/smb3 open (including create and mkdir) calls
28d59363 698 */
efe2e9f3
SF
699
700DECLARE_EVENT_CLASS(smb3_open_enter_class,
701 TP_PROTO(unsigned int xid,
702 __u32 tid,
703 __u64 sesid,
fddc6ccc 704 const char *full_path,
efe2e9f3
SF
705 int create_options,
706 int desired_access),
fddc6ccc 707 TP_ARGS(xid, tid, sesid, full_path, create_options, desired_access),
efe2e9f3
SF
708 TP_STRUCT__entry(
709 __field(unsigned int, xid)
710 __field(__u32, tid)
711 __field(__u64, sesid)
fddc6ccc 712 __string(path, full_path)
efe2e9f3
SF
713 __field(int, create_options)
714 __field(int, desired_access)
715 ),
716 TP_fast_assign(
717 __entry->xid = xid;
718 __entry->tid = tid;
719 __entry->sesid = sesid;
fddc6ccc 720 __assign_str(path, full_path);
efe2e9f3
SF
721 __entry->create_options = create_options;
722 __entry->desired_access = desired_access;
723 ),
fddc6ccc
SP
724 TP_printk("xid=%u sid=0x%llx tid=0x%x path=%s cr_opts=0x%x des_access=0x%x",
725 __entry->xid, __entry->sesid, __entry->tid, __get_str(path),
efe2e9f3
SF
726 __entry->create_options, __entry->desired_access)
727)
728
729#define DEFINE_SMB3_OPEN_ENTER_EVENT(name) \
730DEFINE_EVENT(smb3_open_enter_class, smb3_##name, \
731 TP_PROTO(unsigned int xid, \
732 __u32 tid, \
733 __u64 sesid, \
fddc6ccc 734 const char *full_path, \
efe2e9f3
SF
735 int create_options, \
736 int desired_access), \
fddc6ccc 737 TP_ARGS(xid, tid, sesid, full_path, create_options, desired_access))
efe2e9f3
SF
738
739DEFINE_SMB3_OPEN_ENTER_EVENT(open_enter);
740DEFINE_SMB3_OPEN_ENTER_EVENT(posix_mkdir_enter);
741
28d59363
SF
742DECLARE_EVENT_CLASS(smb3_open_err_class,
743 TP_PROTO(unsigned int xid,
744 __u32 tid,
745 __u64 sesid,
746 int create_options,
747 int desired_access,
748 int rc),
749 TP_ARGS(xid, tid, sesid, create_options, desired_access, rc),
750 TP_STRUCT__entry(
751 __field(unsigned int, xid)
752 __field(__u32, tid)
753 __field(__u64, sesid)
754 __field(int, create_options)
755 __field(int, desired_access)
756 __field(int, rc)
757 ),
758 TP_fast_assign(
759 __entry->xid = xid;
760 __entry->tid = tid;
761 __entry->sesid = sesid;
762 __entry->create_options = create_options;
763 __entry->desired_access = desired_access;
764 __entry->rc = rc;
765 ),
766 TP_printk("xid=%u sid=0x%llx tid=0x%x cr_opts=0x%x des_access=0x%x rc=%d",
767 __entry->xid, __entry->sesid, __entry->tid,
768 __entry->create_options, __entry->desired_access, __entry->rc)
769)
770
771#define DEFINE_SMB3_OPEN_ERR_EVENT(name) \
772DEFINE_EVENT(smb3_open_err_class, smb3_##name, \
773 TP_PROTO(unsigned int xid, \
774 __u32 tid, \
775 __u64 sesid, \
776 int create_options, \
777 int desired_access, \
778 int rc), \
779 TP_ARGS(xid, tid, sesid, create_options, desired_access, rc))
780
781DEFINE_SMB3_OPEN_ERR_EVENT(open_err);
bea851b8 782DEFINE_SMB3_OPEN_ERR_EVENT(posix_mkdir_err);
28d59363
SF
783
784DECLARE_EVENT_CLASS(smb3_open_done_class,
785 TP_PROTO(unsigned int xid,
786 __u64 fid,
787 __u32 tid,
788 __u64 sesid,
789 int create_options,
790 int desired_access),
791 TP_ARGS(xid, fid, tid, sesid, create_options, desired_access),
792 TP_STRUCT__entry(
793 __field(unsigned int, xid)
794 __field(__u64, fid)
795 __field(__u32, tid)
796 __field(__u64, sesid)
797 __field(int, create_options)
798 __field(int, desired_access)
799 ),
800 TP_fast_assign(
801 __entry->xid = xid;
802 __entry->fid = fid;
803 __entry->tid = tid;
804 __entry->sesid = sesid;
805 __entry->create_options = create_options;
806 __entry->desired_access = desired_access;
807 ),
808 TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx cr_opts=0x%x des_access=0x%x",
809 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
810 __entry->create_options, __entry->desired_access)
811)
812
813#define DEFINE_SMB3_OPEN_DONE_EVENT(name) \
814DEFINE_EVENT(smb3_open_done_class, smb3_##name, \
815 TP_PROTO(unsigned int xid, \
816 __u64 fid, \
817 __u32 tid, \
818 __u64 sesid, \
819 int create_options, \
820 int desired_access), \
821 TP_ARGS(xid, fid, tid, sesid, create_options, desired_access))
822
823DEFINE_SMB3_OPEN_DONE_EVENT(open_done);
bea851b8 824DEFINE_SMB3_OPEN_DONE_EVENT(posix_mkdir_done);
28d59363 825
179e44d4
SF
826
827DECLARE_EVENT_CLASS(smb3_lease_done_class,
828 TP_PROTO(__u32 lease_state,
829 __u32 tid,
830 __u64 sesid,
831 __u64 lease_key_low,
832 __u64 lease_key_high),
833 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high),
834 TP_STRUCT__entry(
835 __field(__u32, lease_state)
836 __field(__u32, tid)
837 __field(__u64, sesid)
838 __field(__u64, lease_key_low)
839 __field(__u64, lease_key_high)
840 ),
841 TP_fast_assign(
842 __entry->lease_state = lease_state;
843 __entry->tid = tid;
844 __entry->sesid = sesid;
845 __entry->lease_key_low = lease_key_low;
846 __entry->lease_key_high = lease_key_high;
847 ),
848 TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x",
849 __entry->sesid, __entry->tid, __entry->lease_key_high,
850 __entry->lease_key_low, __entry->lease_state)
851)
852
853#define DEFINE_SMB3_LEASE_DONE_EVENT(name) \
854DEFINE_EVENT(smb3_lease_done_class, smb3_##name, \
855 TP_PROTO(__u32 lease_state, \
856 __u32 tid, \
857 __u64 sesid, \
858 __u64 lease_key_low, \
859 __u64 lease_key_high), \
860 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high))
861
862DEFINE_SMB3_LEASE_DONE_EVENT(lease_done);
fb253d5b 863DEFINE_SMB3_LEASE_DONE_EVENT(lease_not_found);
179e44d4
SF
864
865DECLARE_EVENT_CLASS(smb3_lease_err_class,
866 TP_PROTO(__u32 lease_state,
867 __u32 tid,
868 __u64 sesid,
869 __u64 lease_key_low,
870 __u64 lease_key_high,
871 int rc),
872 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc),
873 TP_STRUCT__entry(
874 __field(__u32, lease_state)
875 __field(__u32, tid)
876 __field(__u64, sesid)
877 __field(__u64, lease_key_low)
878 __field(__u64, lease_key_high)
879 __field(int, rc)
880 ),
881 TP_fast_assign(
882 __entry->lease_state = lease_state;
883 __entry->tid = tid;
884 __entry->sesid = sesid;
885 __entry->lease_key_low = lease_key_low;
886 __entry->lease_key_high = lease_key_high;
887 __entry->rc = rc;
888 ),
889 TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x rc=%d",
890 __entry->sesid, __entry->tid, __entry->lease_key_high,
891 __entry->lease_key_low, __entry->lease_state, __entry->rc)
892)
893
894#define DEFINE_SMB3_LEASE_ERR_EVENT(name) \
895DEFINE_EVENT(smb3_lease_err_class, smb3_##name, \
896 TP_PROTO(__u32 lease_state, \
897 __u32 tid, \
898 __u64 sesid, \
899 __u64 lease_key_low, \
900 __u64 lease_key_high, \
901 int rc), \
902 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc))
903
904DEFINE_SMB3_LEASE_ERR_EVENT(lease_err);
905
d7171cd1
SF
906DECLARE_EVENT_CLASS(smb3_connect_class,
907 TP_PROTO(char *hostname,
908 __u64 conn_id,
909 const struct __kernel_sockaddr_storage *dst_addr),
910 TP_ARGS(hostname, conn_id, dst_addr),
911 TP_STRUCT__entry(
912 __string(hostname, hostname)
913 __field(__u64, conn_id)
914 __array(__u8, dst_addr, sizeof(struct sockaddr_storage))
915 ),
916 TP_fast_assign(
917 struct sockaddr_storage *pss = NULL;
918
919 __entry->conn_id = conn_id;
920 pss = (struct sockaddr_storage *)__entry->dst_addr;
921 *pss = *dst_addr;
922 __assign_str(hostname, hostname);
923 ),
924 TP_printk("conn_id=0x%llx server=%s addr=%pISpsfc",
925 __entry->conn_id,
926 __get_str(hostname),
927 __entry->dst_addr)
928)
929
930#define DEFINE_SMB3_CONNECT_EVENT(name) \
931DEFINE_EVENT(smb3_connect_class, smb3_##name, \
932 TP_PROTO(char *hostname, \
933 __u64 conn_id, \
934 const struct __kernel_sockaddr_storage *addr), \
935 TP_ARGS(hostname, conn_id, addr))
936
937DEFINE_SMB3_CONNECT_EVENT(connect_done);
e3603ccf
SF
938DEFINE_SMB3_CONNECT_EVENT(smbd_connect_done);
939DEFINE_SMB3_CONNECT_EVENT(smbd_connect_err);
d7171cd1
SF
940
941DECLARE_EVENT_CLASS(smb3_connect_err_class,
942 TP_PROTO(char *hostname, __u64 conn_id,
943 const struct __kernel_sockaddr_storage *dst_addr, int rc),
944 TP_ARGS(hostname, conn_id, dst_addr, rc),
945 TP_STRUCT__entry(
946 __string(hostname, hostname)
947 __field(__u64, conn_id)
948 __array(__u8, dst_addr, sizeof(struct sockaddr_storage))
949 __field(int, rc)
950 ),
951 TP_fast_assign(
952 struct sockaddr_storage *pss = NULL;
953
954 __entry->conn_id = conn_id;
955 __entry->rc = rc;
956 pss = (struct sockaddr_storage *)__entry->dst_addr;
957 *pss = *dst_addr;
958 __assign_str(hostname, hostname);
959 ),
960 TP_printk("rc=%d conn_id=0x%llx server=%s addr=%pISpsfc",
961 __entry->rc,
962 __entry->conn_id,
963 __get_str(hostname),
964 __entry->dst_addr)
965)
966
967#define DEFINE_SMB3_CONNECT_ERR_EVENT(name) \
968DEFINE_EVENT(smb3_connect_err_class, smb3_##name, \
969 TP_PROTO(char *hostname, \
970 __u64 conn_id, \
971 const struct __kernel_sockaddr_storage *addr, \
972 int rc), \
973 TP_ARGS(hostname, conn_id, addr, rc))
974
975DEFINE_SMB3_CONNECT_ERR_EVENT(connect_err);
976
bf1fdeb7
SF
977DECLARE_EVENT_CLASS(smb3_reconnect_class,
978 TP_PROTO(__u64 currmid,
6d82c27a 979 __u64 conn_id,
bf1fdeb7 980 char *hostname),
6d82c27a 981 TP_ARGS(currmid, conn_id, hostname),
bf1fdeb7
SF
982 TP_STRUCT__entry(
983 __field(__u64, currmid)
6d82c27a 984 __field(__u64, conn_id)
eb068818 985 __string(hostname, hostname)
bf1fdeb7
SF
986 ),
987 TP_fast_assign(
988 __entry->currmid = currmid;
6d82c27a 989 __entry->conn_id = conn_id;
eb068818 990 __assign_str(hostname, hostname);
bf1fdeb7 991 ),
6d82c27a
SP
992 TP_printk("conn_id=0x%llx server=%s current_mid=%llu",
993 __entry->conn_id,
eb068818 994 __get_str(hostname),
bf1fdeb7
SF
995 __entry->currmid)
996)
997
998#define DEFINE_SMB3_RECONNECT_EVENT(name) \
999DEFINE_EVENT(smb3_reconnect_class, smb3_##name, \
1000 TP_PROTO(__u64 currmid, \
6d82c27a
SP
1001 __u64 conn_id, \
1002 char *hostname), \
1003 TP_ARGS(currmid, conn_id, hostname))
bf1fdeb7
SF
1004
1005DEFINE_SMB3_RECONNECT_EVENT(reconnect);
1006DEFINE_SMB3_RECONNECT_EVENT(partial_send_reconnect);
1007
61986a58
SP
1008DECLARE_EVENT_CLASS(smb3_ses_class,
1009 TP_PROTO(__u64 sesid),
1010 TP_ARGS(sesid),
1011 TP_STRUCT__entry(
1012 __field(__u64, sesid)
1013 ),
1014 TP_fast_assign(
1015 __entry->sesid = sesid;
1016 ),
1017 TP_printk("sid=0x%llx",
1018 __entry->sesid)
1019)
1020
1021#define DEFINE_SMB3_SES_EVENT(name) \
1022DEFINE_EVENT(smb3_ses_class, smb3_##name, \
1023 TP_PROTO(__u64 sesid), \
1024 TP_ARGS(sesid))
1025
1026DEFINE_SMB3_SES_EVENT(ses_not_found);
1027
b340a4d4
SF
1028DECLARE_EVENT_CLASS(smb3_credit_class,
1029 TP_PROTO(__u64 currmid,
6d82c27a 1030 __u64 conn_id,
b340a4d4 1031 char *hostname,
9eec21bf 1032 int credits,
6d82c27a
SP
1033 int credits_to_add,
1034 int in_flight),
1035 TP_ARGS(currmid, conn_id, hostname, credits, credits_to_add, in_flight),
b340a4d4
SF
1036 TP_STRUCT__entry(
1037 __field(__u64, currmid)
6d82c27a 1038 __field(__u64, conn_id)
eb068818 1039 __string(hostname, hostname)
b340a4d4 1040 __field(int, credits)
9eec21bf 1041 __field(int, credits_to_add)
6d82c27a 1042 __field(int, in_flight)
b340a4d4
SF
1043 ),
1044 TP_fast_assign(
1045 __entry->currmid = currmid;
6d82c27a 1046 __entry->conn_id = conn_id;
eb068818 1047 __assign_str(hostname, hostname);
b340a4d4 1048 __entry->credits = credits;
9eec21bf 1049 __entry->credits_to_add = credits_to_add;
6d82c27a 1050 __entry->in_flight = in_flight;
b340a4d4 1051 ),
6d82c27a
SP
1052 TP_printk("conn_id=0x%llx server=%s current_mid=%llu "
1053 "credits=%d credit_change=%d in_flight=%d",
1054 __entry->conn_id,
eb068818 1055 __get_str(hostname),
b340a4d4 1056 __entry->currmid,
9eec21bf 1057 __entry->credits,
6d82c27a
SP
1058 __entry->credits_to_add,
1059 __entry->in_flight)
b340a4d4
SF
1060)
1061
1062#define DEFINE_SMB3_CREDIT_EVENT(name) \
1063DEFINE_EVENT(smb3_credit_class, smb3_##name, \
1064 TP_PROTO(__u64 currmid, \
6d82c27a 1065 __u64 conn_id, \
b340a4d4 1066 char *hostname, \
9eec21bf 1067 int credits, \
6d82c27a
SP
1068 int credits_to_add, \
1069 int in_flight), \
1070 TP_ARGS(currmid, conn_id, hostname, credits, credits_to_add, in_flight))
b340a4d4
SF
1071
1072DEFINE_SMB3_CREDIT_EVENT(reconnect_with_invalid_credits);
cd7b699b 1073DEFINE_SMB3_CREDIT_EVENT(reconnect_detected);
7937ca96 1074DEFINE_SMB3_CREDIT_EVENT(credit_timeout);
cd7b699b
SP
1075DEFINE_SMB3_CREDIT_EVENT(insufficient_credits);
1076DEFINE_SMB3_CREDIT_EVENT(too_many_credits);
9eec21bf 1077DEFINE_SMB3_CREDIT_EVENT(add_credits);
1ddff774
DH
1078DEFINE_SMB3_CREDIT_EVENT(adj_credits);
1079DEFINE_SMB3_CREDIT_EVENT(hdr_credits);
1080DEFINE_SMB3_CREDIT_EVENT(nblk_credits);
1081DEFINE_SMB3_CREDIT_EVENT(pend_credits);
1082DEFINE_SMB3_CREDIT_EVENT(wait_credits);
1083DEFINE_SMB3_CREDIT_EVENT(waitff_credits);
1084DEFINE_SMB3_CREDIT_EVENT(overflow_credits);
cd7b699b 1085DEFINE_SMB3_CREDIT_EVENT(set_credits);
b340a4d4 1086
eccb4422
SF
1087#endif /* _CIFS_TRACE_H */
1088
1089#undef TRACE_INCLUDE_PATH
1090#define TRACE_INCLUDE_PATH .
1091#define TRACE_INCLUDE_FILE trace
1092#include <trace/define_trace.h>