Commit | Line | Data |
---|---|---|
b4d0d230 | 1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
8e8d7f13 DH |
2 | /* AFS tracepoints |
3 | * | |
4 | * Copyright (C) 2016 Red Hat, Inc. All Rights Reserved. | |
5 | * Written by David Howells (dhowells@redhat.com) | |
8e8d7f13 DH |
6 | */ |
7 | #undef TRACE_SYSTEM | |
8 | #define TRACE_SYSTEM afs | |
9 | ||
10 | #if !defined(_TRACE_AFS_H) || defined(TRACE_HEADER_MULTI_READ) | |
11 | #define _TRACE_AFS_H | |
12 | ||
13 | #include <linux/tracepoint.h> | |
14 | ||
341f741f DH |
15 | /* |
16 | * Define enums for tracing information. | |
17 | */ | |
18 | #ifndef __AFS_DECLARE_TRACE_ENUMS_ONCE_ONLY | |
19 | #define __AFS_DECLARE_TRACE_ENUMS_ONCE_ONLY | |
20 | ||
025db80c DH |
21 | enum afs_fs_operation { |
22 | afs_FS_FetchData = 130, /* AFS Fetch file data */ | |
260f082b | 23 | afs_FS_FetchACL = 131, /* AFS Fetch file ACL */ |
025db80c DH |
24 | afs_FS_FetchStatus = 132, /* AFS Fetch file status */ |
25 | afs_FS_StoreData = 133, /* AFS Store file data */ | |
b10494af | 26 | afs_FS_StoreACL = 134, /* AFS Store file ACL */ |
025db80c DH |
27 | afs_FS_StoreStatus = 135, /* AFS Store file status */ |
28 | afs_FS_RemoveFile = 136, /* AFS Remove a file */ | |
29 | afs_FS_CreateFile = 137, /* AFS Create a file */ | |
30 | afs_FS_Rename = 138, /* AFS Rename or move a file or directory */ | |
31 | afs_FS_Symlink = 139, /* AFS Create a symbolic link */ | |
32 | afs_FS_Link = 140, /* AFS Create a hard link */ | |
33 | afs_FS_MakeDir = 141, /* AFS Create a directory */ | |
34 | afs_FS_RemoveDir = 142, /* AFS Remove a directory */ | |
35 | afs_FS_GetVolumeInfo = 148, /* AFS Get information about a volume */ | |
36 | afs_FS_GetVolumeStatus = 149, /* AFS Get volume status information */ | |
37 | afs_FS_GetRootVolume = 151, /* AFS Get root volume name */ | |
38 | afs_FS_SetLock = 156, /* AFS Request a file lock */ | |
39 | afs_FS_ExtendLock = 157, /* AFS Extend a file lock */ | |
40 | afs_FS_ReleaseLock = 158, /* AFS Release a file lock */ | |
41 | afs_FS_Lookup = 161, /* AFS lookup file in directory */ | |
5cf9dd55 | 42 | afs_FS_InlineBulkStatus = 65536, /* AFS Fetch multiple file statuses with errors */ |
025db80c DH |
43 | afs_FS_FetchData64 = 65537, /* AFS Fetch file data */ |
44 | afs_FS_StoreData64 = 65538, /* AFS Store file data */ | |
45 | afs_FS_GiveUpAllCallBacks = 65539, /* AFS Give up all our callbacks on a server */ | |
46 | afs_FS_GetCapabilities = 65540, /* AFS Get FS server capabilities */ | |
30062bd1 DH |
47 | |
48 | yfs_FS_FetchData = 130, /* YFS Fetch file data */ | |
49 | yfs_FS_FetchACL = 64131, /* YFS Fetch file ACL */ | |
50 | yfs_FS_FetchStatus = 64132, /* YFS Fetch file status */ | |
51 | yfs_FS_StoreACL = 64134, /* YFS Store file ACL */ | |
52 | yfs_FS_StoreStatus = 64135, /* YFS Store file status */ | |
53 | yfs_FS_RemoveFile = 64136, /* YFS Remove a file */ | |
54 | yfs_FS_CreateFile = 64137, /* YFS Create a file */ | |
55 | yfs_FS_Rename = 64138, /* YFS Rename or move a file or directory */ | |
56 | yfs_FS_Symlink = 64139, /* YFS Create a symbolic link */ | |
57 | yfs_FS_Link = 64140, /* YFS Create a hard link */ | |
58 | yfs_FS_MakeDir = 64141, /* YFS Create a directory */ | |
59 | yfs_FS_RemoveDir = 64142, /* YFS Remove a directory */ | |
60 | yfs_FS_GetVolumeStatus = 64149, /* YFS Get volume status information */ | |
61 | yfs_FS_SetVolumeStatus = 64150, /* YFS Set volume status information */ | |
62 | yfs_FS_SetLock = 64156, /* YFS Request a file lock */ | |
63 | yfs_FS_ExtendLock = 64157, /* YFS Extend a file lock */ | |
64 | yfs_FS_ReleaseLock = 64158, /* YFS Release a file lock */ | |
65 | yfs_FS_Lookup = 64161, /* YFS lookup file in directory */ | |
66 | yfs_FS_FlushCPS = 64165, | |
67 | yfs_FS_FetchOpaqueACL = 64168, | |
68 | yfs_FS_WhoAmI = 64170, | |
69 | yfs_FS_RemoveACL = 64171, | |
70 | yfs_FS_RemoveFile2 = 64173, | |
71 | yfs_FS_StoreOpaqueACL2 = 64174, | |
72 | yfs_FS_InlineBulkStatus = 64536, /* YFS Fetch multiple file statuses with errors */ | |
73 | yfs_FS_FetchData64 = 64537, /* YFS Fetch file data */ | |
74 | yfs_FS_StoreData64 = 64538, /* YFS Store file data */ | |
75 | yfs_FS_UpdateSymlink = 64540, | |
025db80c DH |
76 | }; |
77 | ||
78 | enum afs_vl_operation { | |
79 | afs_VL_GetEntryByNameU = 527, /* AFS Get Vol Entry By Name operation ID */ | |
80 | afs_VL_GetAddrsU = 533, /* AFS Get FS server addresses */ | |
81 | afs_YFSVL_GetEndpoints = 64002, /* YFS Get FS & Vol server addresses */ | |
c3e9f888 | 82 | afs_YFSVL_GetCellName = 64014, /* YFS Get actual cell name */ |
025db80c DH |
83 | afs_VL_GetCapabilities = 65537, /* AFS Get VL server capabilities */ |
84 | }; | |
85 | ||
6c881ca0 DH |
86 | enum afs_cm_operation { |
87 | afs_CB_CallBack = 204, /* AFS break callback promises */ | |
88 | afs_CB_InitCallBackState = 205, /* AFS initialise callback state */ | |
89 | afs_CB_Probe = 206, /* AFS probe client */ | |
90 | afs_CB_GetLock = 207, /* AFS get contents of CM lock table */ | |
91 | afs_CB_GetCE = 208, /* AFS get cache file description */ | |
92 | afs_CB_GetXStatsVersion = 209, /* AFS get version of extended statistics */ | |
93 | afs_CB_GetXStats = 210, /* AFS get contents of extended statistics data */ | |
94 | afs_CB_InitCallBackState3 = 213, /* AFS initialise callback state, version 3 */ | |
95 | afs_CB_ProbeUuid = 214, /* AFS check the client hasn't rebooted */ | |
96 | }; | |
97 | ||
98 | enum yfs_cm_operation { | |
99 | yfs_CB_Probe = 206, /* YFS probe client */ | |
100 | yfs_CB_GetLock = 207, /* YFS get contents of CM lock table */ | |
101 | yfs_CB_XStatsVersion = 209, /* YFS get version of extended statistics */ | |
102 | yfs_CB_GetXStats = 210, /* YFS get contents of extended statistics data */ | |
103 | yfs_CB_InitCallBackState3 = 213, /* YFS initialise callback state, version 3 */ | |
104 | yfs_CB_ProbeUuid = 214, /* YFS check the client hasn't rebooted */ | |
105 | yfs_CB_GetServerPrefs = 215, | |
106 | yfs_CB_GetCellServDV = 216, | |
107 | yfs_CB_GetLocalCell = 217, | |
108 | yfs_CB_GetCacheConfig = 218, | |
109 | yfs_CB_GetCellByNum = 65537, | |
110 | yfs_CB_TellMeAboutYourself = 65538, /* get client capabilities */ | |
111 | yfs_CB_CallBack = 64204, | |
112 | }; | |
113 | ||
341f741f DH |
114 | #endif /* end __AFS_DECLARE_TRACE_ENUMS_ONCE_ONLY */ |
115 | ||
116 | /* | |
117 | * Declare tracing information enums and their string mappings for display. | |
118 | */ | |
119 | #define afs_call_traces \ | |
120 | EM(afs_call_trace_alloc, "ALLOC") \ | |
9750be93 DH |
121 | EM(afs_call_trace_async_abort, "ASYAB") \ |
122 | EM(afs_call_trace_async_kill, "ASYKL") \ | |
341f741f | 123 | EM(afs_call_trace_free, "FREE ") \ |
34fa4761 | 124 | EM(afs_call_trace_get, "GET ") \ |
341f741f DH |
125 | EM(afs_call_trace_put, "PUT ") \ |
126 | EM(afs_call_trace_wake, "WAKE ") \ | |
4636cf18 | 127 | E_(afs_call_trace_work, "QUEUE") |
341f741f | 128 | |
45218193 | 129 | #define afs_server_traces \ |
45218193 DH |
130 | EM(afs_server_trace_callback, "CALLBACK ") \ |
131 | EM(afs_server_trace_destroy, "DESTROY ") \ | |
132 | EM(afs_server_trace_free, "FREE ") \ | |
133 | EM(afs_server_trace_gc, "GC ") \ | |
f6cbb368 | 134 | EM(afs_server_trace_get_probe, "GET probe") \ |
7530d3eb | 135 | EM(afs_server_trace_purging, "PURGE ") \ |
45218193 | 136 | EM(afs_server_trace_put_cbi, "PUT cbi ") \ |
f6cbb368 | 137 | EM(afs_server_trace_put_probe, "PUT probe") \ |
4882ba78 | 138 | EM(afs_server_trace_see_destroyer, "SEE destr") \ |
76daa300 | 139 | EM(afs_server_trace_see_expired, "SEE expd ") \ |
4882ba78 DH |
140 | EM(afs_server_trace_see_purge, "SEE purge") \ |
141 | EM(afs_server_trace_see_timer, "SEE timer") \ | |
76daa300 DH |
142 | EM(afs_server_trace_unuse_call, "UNU call ") \ |
143 | EM(afs_server_trace_unuse_create_fail, "UNU cfail") \ | |
76daa300 DH |
144 | EM(afs_server_trace_unuse_slist, "UNU slist") \ |
145 | EM(afs_server_trace_unuse_slist_isort, "UNU isort") \ | |
76daa300 | 146 | EM(afs_server_trace_update, "UPDATE ") \ |
76daa300 DH |
147 | EM(afs_server_trace_use_by_uuid, "USE uuid ") \ |
148 | EM(afs_server_trace_use_cm_call, "USE cm-cl") \ | |
149 | EM(afs_server_trace_use_get_caps, "USE gcaps") \ | |
150 | EM(afs_server_trace_use_give_up_cb, "USE gvupc") \ | |
e2c2cb8e | 151 | EM(afs_server_trace_use_install, "USE inst ") \ |
76daa300 | 152 | E_(afs_server_trace_wait_create, "WAIT crt ") |
45218193 | 153 | |
cca37d45 DH |
154 | #define afs_volume_traces \ |
155 | EM(afs_volume_trace_alloc, "ALLOC ") \ | |
156 | EM(afs_volume_trace_free, "FREE ") \ | |
157 | EM(afs_volume_trace_get_alloc_sbi, "GET sbi-alloc ") \ | |
32222f09 | 158 | EM(afs_volume_trace_get_callback, "GET callback ") \ |
cca37d45 DH |
159 | EM(afs_volume_trace_get_cell_insert, "GET cell-insrt") \ |
160 | EM(afs_volume_trace_get_new_op, "GET op-new ") \ | |
161 | EM(afs_volume_trace_get_query_alias, "GET cell-alias") \ | |
32222f09 | 162 | EM(afs_volume_trace_put_callback, "PUT callback ") \ |
cca37d45 DH |
163 | EM(afs_volume_trace_put_cell_dup, "PUT cell-dup ") \ |
164 | EM(afs_volume_trace_put_cell_root, "PUT cell-root ") \ | |
165 | EM(afs_volume_trace_put_destroy_sbi, "PUT sbi-destry") \ | |
166 | EM(afs_volume_trace_put_free_fc, "PUT fc-free ") \ | |
167 | EM(afs_volume_trace_put_put_op, "PUT op-put ") \ | |
168 | EM(afs_volume_trace_put_query_alias, "PUT cell-alias") \ | |
169 | EM(afs_volume_trace_put_validate_fc, "PUT fc-validat") \ | |
170 | E_(afs_volume_trace_remove, "REMOVE ") | |
171 | ||
dca54a7b DH |
172 | #define afs_cell_traces \ |
173 | EM(afs_cell_trace_alloc, "ALLOC ") \ | |
e2c2cb8e | 174 | EM(afs_cell_trace_destroy, "DESTROY ") \ |
dca54a7b | 175 | EM(afs_cell_trace_free, "FREE ") \ |
30bca65b | 176 | EM(afs_cell_trace_get_atcell, "GET atcell") \ |
1f0fc337 | 177 | EM(afs_cell_trace_get_server, "GET server") \ |
dca54a7b | 178 | EM(afs_cell_trace_get_vol, "GET vol ") \ |
e2c2cb8e | 179 | EM(afs_cell_trace_purge, "PURGE ") \ |
30bca65b | 180 | EM(afs_cell_trace_put_atcell, "PUT atcell") \ |
dca54a7b | 181 | EM(afs_cell_trace_put_candidate, "PUT candid") \ |
e2c2cb8e | 182 | EM(afs_cell_trace_put_final, "PUT final ") \ |
1f0fc337 | 183 | EM(afs_cell_trace_put_server, "PUT server") \ |
dca54a7b | 184 | EM(afs_cell_trace_put_vol, "PUT vol ") \ |
e2c2cb8e DH |
185 | EM(afs_cell_trace_queue_again, "QUE again ") \ |
186 | EM(afs_cell_trace_queue_dns, "QUE dns ") \ | |
187 | EM(afs_cell_trace_queue_new, "QUE new ") \ | |
188 | EM(afs_cell_trace_queue_purge, "QUE purge ") \ | |
189 | EM(afs_cell_trace_manage, "MANAGE ") \ | |
190 | EM(afs_cell_trace_managed, "MANAGED ") \ | |
dca54a7b | 191 | EM(afs_cell_trace_see_source, "SEE source") \ |
e2c2cb8e | 192 | EM(afs_cell_trace_see_mgmt_timer, "SEE mtimer") \ |
dca54a7b DH |
193 | EM(afs_cell_trace_unuse_alias, "UNU alias ") \ |
194 | EM(afs_cell_trace_unuse_check_alias, "UNU chk-al") \ | |
195 | EM(afs_cell_trace_unuse_delete, "UNU delete") \ | |
1d0b929f | 196 | EM(afs_cell_trace_unuse_dynroot_mntpt, "UNU dyn-mp") \ |
dca54a7b | 197 | EM(afs_cell_trace_unuse_fc, "UNU fc ") \ |
1d0b929f | 198 | EM(afs_cell_trace_unuse_lookup_dynroot, "UNU lu-dyn") \ |
469c82b5 | 199 | EM(afs_cell_trace_unuse_lookup_error, "UNU lu-err") \ |
dca54a7b | 200 | EM(afs_cell_trace_unuse_mntpt, "UNU mntpt ") \ |
2daa6404 | 201 | EM(afs_cell_trace_unuse_no_pin, "UNU no-pin") \ |
dca54a7b DH |
202 | EM(afs_cell_trace_unuse_parse, "UNU parse ") \ |
203 | EM(afs_cell_trace_unuse_pin, "UNU pin ") \ | |
dca54a7b DH |
204 | EM(afs_cell_trace_unuse_sbi, "UNU sbi ") \ |
205 | EM(afs_cell_trace_unuse_ws, "UNU ws ") \ | |
206 | EM(afs_cell_trace_use_alias, "USE alias ") \ | |
207 | EM(afs_cell_trace_use_check_alias, "USE chk-al") \ | |
208 | EM(afs_cell_trace_use_fc, "USE fc ") \ | |
209 | EM(afs_cell_trace_use_fc_alias, "USE fc-al ") \ | |
92c48157 DH |
210 | EM(afs_cell_trace_use_lookup_add, "USE lu-add") \ |
211 | EM(afs_cell_trace_use_lookup_canonical, "USE lu-can") \ | |
212 | EM(afs_cell_trace_use_lookup_dynroot, "USE lu-dyn") \ | |
213 | EM(afs_cell_trace_use_lookup_mntpt, "USE lu-mpt") \ | |
214 | EM(afs_cell_trace_use_lookup_mount, "USE lu-mnt") \ | |
215 | EM(afs_cell_trace_use_lookup_ws, "USE lu-ws ") \ | |
dca54a7b DH |
216 | EM(afs_cell_trace_use_mntpt, "USE mntpt ") \ |
217 | EM(afs_cell_trace_use_pin, "USE pin ") \ | |
218 | EM(afs_cell_trace_use_probe, "USE probe ") \ | |
219 | EM(afs_cell_trace_use_sbi, "USE sbi ") \ | |
220 | E_(afs_cell_trace_wait, "WAIT ") | |
221 | ||
1e5d8493 DH |
222 | #define afs_alist_traces \ |
223 | EM(afs_alist_trace_alloc, "ALLOC ") \ | |
f49b594d | 224 | EM(afs_alist_trace_get_estate, "GET estate") \ |
98f9fda2 DH |
225 | EM(afs_alist_trace_get_vlgetcaps, "GET vgtcap") \ |
226 | EM(afs_alist_trace_get_vlprobe, "GET vprobe") \ | |
1e5d8493 | 227 | EM(afs_alist_trace_get_vlrotate_set, "GET vl-rot") \ |
f49b594d | 228 | EM(afs_alist_trace_put_estate, "PUT estate") \ |
1e5d8493 DH |
229 | EM(afs_alist_trace_put_getaddru, "PUT GtAdrU") \ |
230 | EM(afs_alist_trace_put_parse_empty, "PUT p-empt") \ | |
231 | EM(afs_alist_trace_put_parse_error, "PUT p-err ") \ | |
4882ba78 | 232 | EM(afs_alist_trace_put_server_create, "PUT sv-crt") \ |
1e5d8493 DH |
233 | EM(afs_alist_trace_put_server_oom, "PUT sv-oom") \ |
234 | EM(afs_alist_trace_put_server_update, "PUT sv-upd") \ | |
98f9fda2 DH |
235 | EM(afs_alist_trace_put_vlgetcaps, "PUT vgtcap") \ |
236 | EM(afs_alist_trace_put_vlprobe, "PUT vprobe") \ | |
237 | EM(afs_alist_trace_put_vlrotate_end, "PUT vr-end") \ | |
238 | EM(afs_alist_trace_put_vlrotate_fail, "PUT vr-fai") \ | |
239 | EM(afs_alist_trace_put_vlrotate_next, "PUT vr-nxt") \ | |
240 | EM(afs_alist_trace_put_vlrotate_restart,"PUT vr-rst") \ | |
1e5d8493 DH |
241 | EM(afs_alist_trace_put_vlserver, "PUT vlsrvr") \ |
242 | EM(afs_alist_trace_put_vlserver_old, "PUT vs-old") \ | |
243 | E_(afs_alist_trace_free, "FREE ") | |
244 | ||
f49b594d DH |
245 | #define afs_estate_traces \ |
246 | EM(afs_estate_trace_alloc_probe, "ALLOC prob") \ | |
247 | EM(afs_estate_trace_alloc_server, "ALLOC srvr") \ | |
495f2ae9 | 248 | EM(afs_estate_trace_get_server_state, "GET srv-st") \ |
f49b594d DH |
249 | EM(afs_estate_trace_get_getcaps, "GET getcap") \ |
250 | EM(afs_estate_trace_put_getcaps, "PUT getcap") \ | |
f49b594d | 251 | EM(afs_estate_trace_put_probe, "PUT probe ") \ |
f49b594d | 252 | EM(afs_estate_trace_put_server, "PUT server") \ |
495f2ae9 | 253 | EM(afs_estate_trace_put_server_state, "PUT srv-st") \ |
f49b594d DH |
254 | E_(afs_estate_trace_free, "FREE ") |
255 | ||
025db80c DH |
256 | #define afs_fs_operations \ |
257 | EM(afs_FS_FetchData, "FS.FetchData") \ | |
258 | EM(afs_FS_FetchStatus, "FS.FetchStatus") \ | |
259 | EM(afs_FS_StoreData, "FS.StoreData") \ | |
260 | EM(afs_FS_StoreStatus, "FS.StoreStatus") \ | |
261 | EM(afs_FS_RemoveFile, "FS.RemoveFile") \ | |
262 | EM(afs_FS_CreateFile, "FS.CreateFile") \ | |
263 | EM(afs_FS_Rename, "FS.Rename") \ | |
264 | EM(afs_FS_Symlink, "FS.Symlink") \ | |
265 | EM(afs_FS_Link, "FS.Link") \ | |
266 | EM(afs_FS_MakeDir, "FS.MakeDir") \ | |
267 | EM(afs_FS_RemoveDir, "FS.RemoveDir") \ | |
268 | EM(afs_FS_GetVolumeInfo, "FS.GetVolumeInfo") \ | |
269 | EM(afs_FS_GetVolumeStatus, "FS.GetVolumeStatus") \ | |
270 | EM(afs_FS_GetRootVolume, "FS.GetRootVolume") \ | |
271 | EM(afs_FS_SetLock, "FS.SetLock") \ | |
272 | EM(afs_FS_ExtendLock, "FS.ExtendLock") \ | |
273 | EM(afs_FS_ReleaseLock, "FS.ReleaseLock") \ | |
274 | EM(afs_FS_Lookup, "FS.Lookup") \ | |
5cf9dd55 | 275 | EM(afs_FS_InlineBulkStatus, "FS.InlineBulkStatus") \ |
025db80c DH |
276 | EM(afs_FS_FetchData64, "FS.FetchData64") \ |
277 | EM(afs_FS_StoreData64, "FS.StoreData64") \ | |
278 | EM(afs_FS_GiveUpAllCallBacks, "FS.GiveUpAllCallBacks") \ | |
30062bd1 DH |
279 | EM(afs_FS_GetCapabilities, "FS.GetCapabilities") \ |
280 | EM(yfs_FS_FetchACL, "YFS.FetchACL") \ | |
281 | EM(yfs_FS_FetchStatus, "YFS.FetchStatus") \ | |
282 | EM(yfs_FS_StoreACL, "YFS.StoreACL") \ | |
283 | EM(yfs_FS_StoreStatus, "YFS.StoreStatus") \ | |
284 | EM(yfs_FS_RemoveFile, "YFS.RemoveFile") \ | |
285 | EM(yfs_FS_CreateFile, "YFS.CreateFile") \ | |
286 | EM(yfs_FS_Rename, "YFS.Rename") \ | |
287 | EM(yfs_FS_Symlink, "YFS.Symlink") \ | |
288 | EM(yfs_FS_Link, "YFS.Link") \ | |
289 | EM(yfs_FS_MakeDir, "YFS.MakeDir") \ | |
290 | EM(yfs_FS_RemoveDir, "YFS.RemoveDir") \ | |
291 | EM(yfs_FS_GetVolumeStatus, "YFS.GetVolumeStatus") \ | |
292 | EM(yfs_FS_SetVolumeStatus, "YFS.SetVolumeStatus") \ | |
293 | EM(yfs_FS_SetLock, "YFS.SetLock") \ | |
294 | EM(yfs_FS_ExtendLock, "YFS.ExtendLock") \ | |
295 | EM(yfs_FS_ReleaseLock, "YFS.ReleaseLock") \ | |
296 | EM(yfs_FS_Lookup, "YFS.Lookup") \ | |
297 | EM(yfs_FS_FlushCPS, "YFS.FlushCPS") \ | |
298 | EM(yfs_FS_FetchOpaqueACL, "YFS.FetchOpaqueACL") \ | |
299 | EM(yfs_FS_WhoAmI, "YFS.WhoAmI") \ | |
300 | EM(yfs_FS_RemoveACL, "YFS.RemoveACL") \ | |
301 | EM(yfs_FS_RemoveFile2, "YFS.RemoveFile2") \ | |
302 | EM(yfs_FS_StoreOpaqueACL2, "YFS.StoreOpaqueACL2") \ | |
303 | EM(yfs_FS_InlineBulkStatus, "YFS.InlineBulkStatus") \ | |
304 | EM(yfs_FS_FetchData64, "YFS.FetchData64") \ | |
305 | EM(yfs_FS_StoreData64, "YFS.StoreData64") \ | |
306 | E_(yfs_FS_UpdateSymlink, "YFS.UpdateSymlink") | |
025db80c DH |
307 | |
308 | #define afs_vl_operations \ | |
309 | EM(afs_VL_GetEntryByNameU, "VL.GetEntryByNameU") \ | |
310 | EM(afs_VL_GetAddrsU, "VL.GetAddrsU") \ | |
311 | EM(afs_YFSVL_GetEndpoints, "YFSVL.GetEndpoints") \ | |
c3e9f888 | 312 | EM(afs_YFSVL_GetCellName, "YFSVL.GetCellName") \ |
025db80c DH |
313 | E_(afs_VL_GetCapabilities, "VL.GetCapabilities") |
314 | ||
6c881ca0 DH |
315 | #define afs_cm_operations \ |
316 | EM(afs_CB_CallBack, "CB.CallBack") \ | |
317 | EM(afs_CB_InitCallBackState, "CB.InitCallBackState") \ | |
318 | EM(afs_CB_Probe, "CB.Probe") \ | |
319 | EM(afs_CB_GetLock, "CB.GetLock") \ | |
320 | EM(afs_CB_GetCE, "CB.GetCE") \ | |
321 | EM(afs_CB_GetXStatsVersion, "CB.GetXStatsVersion") \ | |
322 | EM(afs_CB_GetXStats, "CB.GetXStats") \ | |
323 | EM(afs_CB_InitCallBackState3, "CB.InitCallBackState3") \ | |
324 | E_(afs_CB_ProbeUuid, "CB.ProbeUuid") | |
325 | ||
326 | #define yfs_cm_operations \ | |
327 | EM(yfs_CB_Probe, "YFSCB.Probe") \ | |
328 | EM(yfs_CB_GetLock, "YFSCB.GetLock") \ | |
329 | EM(yfs_CB_XStatsVersion, "YFSCB.XStatsVersion") \ | |
330 | EM(yfs_CB_GetXStats, "YFSCB.GetXStats") \ | |
331 | EM(yfs_CB_InitCallBackState3, "YFSCB.InitCallBackState3") \ | |
332 | EM(yfs_CB_ProbeUuid, "YFSCB.ProbeUuid") \ | |
333 | EM(yfs_CB_GetServerPrefs, "YFSCB.GetServerPrefs") \ | |
334 | EM(yfs_CB_GetCellServDV, "YFSCB.GetCellServDV") \ | |
335 | EM(yfs_CB_GetLocalCell, "YFSCB.GetLocalCell") \ | |
336 | EM(yfs_CB_GetCacheConfig, "YFSCB.GetCacheConfig") \ | |
337 | EM(yfs_CB_GetCellByNum, "YFSCB.GetCellByNum") \ | |
338 | EM(yfs_CB_TellMeAboutYourself, "YFSCB.TellMeAboutYourself") \ | |
339 | E_(yfs_CB_CallBack, "YFSCB.CallBack") | |
340 | ||
9e705016 DH |
341 | #define afs_cb_promise_traces \ |
342 | EM(afs_cb_promise_clear_cb_break, "CLEAR cb-break") \ | |
343 | EM(afs_cb_promise_clear_rmdir, "CLEAR rmdir") \ | |
344 | EM(afs_cb_promise_clear_rotate_server, "CLEAR rot-srv") \ | |
345 | EM(afs_cb_promise_clear_server_change, "CLEAR srv-chg") \ | |
346 | EM(afs_cb_promise_clear_vol_init_cb, "CLEAR vol-init-cb") \ | |
347 | EM(afs_cb_promise_set_apply_cb, "SET apply-cb") \ | |
348 | EM(afs_cb_promise_set_new_inode, "SET new-inode") \ | |
349 | E_(afs_cb_promise_set_new_symlink, "SET new-symlink") | |
350 | ||
351 | #define afs_vnode_invalid_traces \ | |
352 | EM(afs_vnode_invalid_trace_cb_ro_snapshot, "cb-ro-snapshot") \ | |
353 | EM(afs_vnode_invalid_trace_cb_scrub, "cb-scrub") \ | |
354 | EM(afs_vnode_invalid_trace_cb_v_break, "cb-v-break") \ | |
355 | EM(afs_vnode_invalid_trace_expired, "expired") \ | |
356 | EM(afs_vnode_invalid_trace_no_cb_promise, "no-cb-promise") \ | |
357 | EM(afs_vnode_invalid_trace_vol_expired, "vol-expired") \ | |
358 | EM(afs_vnode_invalid_trace_zap_data, "zap-data") \ | |
359 | E_(afs_vnode_valid_trace, "valid") | |
360 | ||
361 | #define afs_dir_invalid_traces \ | |
362 | EM(afs_dir_invalid_edit_add_bad_size, "edit-add-bad-size") \ | |
363 | EM(afs_dir_invalid_edit_add_no_slots, "edit-add-no-slots") \ | |
364 | EM(afs_dir_invalid_edit_add_too_many_blocks, "edit-add-too-many-blocks") \ | |
365 | EM(afs_dir_invalid_edit_get_block, "edit-get-block") \ | |
836bb70b | 366 | EM(afs_dir_invalid_edit_mkdir, "edit-mkdir") \ |
9e705016 DH |
367 | EM(afs_dir_invalid_edit_rem_bad_size, "edit-rem-bad-size") \ |
368 | EM(afs_dir_invalid_edit_rem_wrong_name, "edit-rem-wrong_name") \ | |
369 | EM(afs_dir_invalid_edit_upd_bad_size, "edit-upd-bad-size") \ | |
370 | EM(afs_dir_invalid_edit_upd_no_dd, "edit-upd-no-dotdot") \ | |
371 | EM(afs_dir_invalid_dv_mismatch, "dv-mismatch") \ | |
372 | EM(afs_dir_invalid_inval_folio, "inv-folio") \ | |
373 | EM(afs_dir_invalid_iter_stale, "iter-stale") \ | |
374 | EM(afs_dir_invalid_reclaimed_folio, "reclaimed-folio") \ | |
375 | EM(afs_dir_invalid_release_folio, "rel-folio") \ | |
376 | EM(afs_dir_invalid_remote, "remote") \ | |
377 | E_(afs_dir_invalid_subdir_removed, "subdir-removed") | |
378 | ||
63a4681f DH |
379 | #define afs_edit_dir_ops \ |
380 | EM(afs_edit_dir_create, "create") \ | |
381 | EM(afs_edit_dir_create_error, "c_fail") \ | |
382 | EM(afs_edit_dir_create_inval, "c_invl") \ | |
383 | EM(afs_edit_dir_create_nospc, "c_nspc") \ | |
384 | EM(afs_edit_dir_delete, "delete") \ | |
385 | EM(afs_edit_dir_delete_error, "d_err ") \ | |
386 | EM(afs_edit_dir_delete_inval, "d_invl") \ | |
247d65fb | 387 | EM(afs_edit_dir_delete_noent, "d_nent") \ |
836bb70b | 388 | EM(afs_edit_dir_mkdir, "mk_ent") \ |
247d65fb DH |
389 | EM(afs_edit_dir_update_dd, "u_ddot") \ |
390 | EM(afs_edit_dir_update_error, "u_fail") \ | |
391 | EM(afs_edit_dir_update_inval, "u_invl") \ | |
392 | E_(afs_edit_dir_update_nodd, "u_nodd") | |
63a4681f DH |
393 | |
394 | #define afs_edit_dir_reasons \ | |
395 | EM(afs_edit_dir_for_create, "Create") \ | |
396 | EM(afs_edit_dir_for_link, "Link ") \ | |
397 | EM(afs_edit_dir_for_mkdir, "MkDir ") \ | |
79ddbfa5 DH |
398 | EM(afs_edit_dir_for_rename_0, "Renam0") \ |
399 | EM(afs_edit_dir_for_rename_1, "Renam1") \ | |
400 | EM(afs_edit_dir_for_rename_2, "Renam2") \ | |
247d65fb | 401 | EM(afs_edit_dir_for_rename_sub, "RnmSub") \ |
63a4681f | 402 | EM(afs_edit_dir_for_rmdir, "RmDir ") \ |
79ddbfa5 DH |
403 | EM(afs_edit_dir_for_silly_0, "S_Ren0") \ |
404 | EM(afs_edit_dir_for_silly_1, "S_Ren1") \ | |
63a4681f DH |
405 | EM(afs_edit_dir_for_symlink, "Symlnk") \ |
406 | E_(afs_edit_dir_for_unlink, "Unlink") | |
407 | ||
160cb957 DH |
408 | #define afs_eproto_causes \ |
409 | EM(afs_eproto_bad_status, "BadStatus") \ | |
410 | EM(afs_eproto_cb_count, "CbCount") \ | |
411 | EM(afs_eproto_cb_fid_count, "CbFidCount") \ | |
c3e9f888 | 412 | EM(afs_eproto_cellname_len, "CellNameLen") \ |
160cb957 DH |
413 | EM(afs_eproto_file_type, "FileTYpe") \ |
414 | EM(afs_eproto_ibulkst_cb_count, "IBS.CbCount") \ | |
415 | EM(afs_eproto_ibulkst_count, "IBS.FidCount") \ | |
416 | EM(afs_eproto_motd_len, "MotdLen") \ | |
417 | EM(afs_eproto_offline_msg_len, "OfflineMsgLen") \ | |
418 | EM(afs_eproto_volname_len, "VolNameLen") \ | |
419 | EM(afs_eproto_yvl_fsendpt4_len, "YVL.FsEnd4Len") \ | |
420 | EM(afs_eproto_yvl_fsendpt6_len, "YVL.FsEnd6Len") \ | |
421 | EM(afs_eproto_yvl_fsendpt_num, "YVL.FsEndCount") \ | |
422 | EM(afs_eproto_yvl_fsendpt_type, "YVL.FsEndType") \ | |
423 | EM(afs_eproto_yvl_vlendpt4_len, "YVL.VlEnd4Len") \ | |
424 | EM(afs_eproto_yvl_vlendpt6_len, "YVL.VlEnd6Len") \ | |
425 | E_(afs_eproto_yvl_vlendpt_type, "YVL.VlEndType") | |
426 | ||
f51375cd DH |
427 | #define afs_io_errors \ |
428 | EM(afs_io_error_cm_reply, "CM_REPLY") \ | |
429 | EM(afs_io_error_extract, "EXTRACT") \ | |
430 | EM(afs_io_error_fs_probe_fail, "FS_PROBE_FAIL") \ | |
3bf0fb6f DH |
431 | EM(afs_io_error_vl_lookup_fail, "VL_LOOKUP_FAIL") \ |
432 | E_(afs_io_error_vl_probe_fail, "VL_PROBE_FAIL") | |
f51375cd DH |
433 | |
434 | #define afs_file_errors \ | |
435 | EM(afs_file_error_dir_bad_magic, "DIR_BAD_MAGIC") \ | |
436 | EM(afs_file_error_dir_big, "DIR_BIG") \ | |
437 | EM(afs_file_error_dir_missing_page, "DIR_MISSING_PAGE") \ | |
366911cd | 438 | EM(afs_file_error_dir_name_too_long, "DIR_NAME_TOO_LONG") \ |
f51375cd DH |
439 | EM(afs_file_error_dir_over_end, "DIR_ENT_OVER_END") \ |
440 | EM(afs_file_error_dir_small, "DIR_SMALL") \ | |
441 | EM(afs_file_error_dir_unmarked_ext, "DIR_UNMARKED_EXT") \ | |
eae9e789 | 442 | EM(afs_file_error_symlink_big, "SYM_BIG") \ |
f51375cd DH |
443 | EM(afs_file_error_mntpt, "MNTPT_READ_FAILED") \ |
444 | E_(afs_file_error_writeback_fail, "WRITEBACK_FAILED") | |
025db80c | 445 | |
d4696601 DH |
446 | #define afs_flock_types \ |
447 | EM(F_RDLCK, "RDLCK") \ | |
448 | EM(F_WRLCK, "WRLCK") \ | |
449 | E_(F_UNLCK, "UNLCK") | |
450 | ||
451 | #define afs_flock_states \ | |
452 | EM(AFS_VNODE_LOCK_NONE, "NONE") \ | |
453 | EM(AFS_VNODE_LOCK_WAITING_FOR_CB, "WAIT_FOR_CB") \ | |
454 | EM(AFS_VNODE_LOCK_SETTING, "SETTING") \ | |
455 | EM(AFS_VNODE_LOCK_GRANTED, "GRANTED") \ | |
456 | EM(AFS_VNODE_LOCK_EXTENDING, "EXTENDING") \ | |
457 | EM(AFS_VNODE_LOCK_NEED_UNLOCK, "NEED_UNLOCK") \ | |
cdfb26b4 DH |
458 | EM(AFS_VNODE_LOCK_UNLOCKING, "UNLOCKING") \ |
459 | E_(AFS_VNODE_LOCK_DELETED, "DELETED") | |
d4696601 DH |
460 | |
461 | #define afs_flock_events \ | |
462 | EM(afs_flock_acquired, "Acquired") \ | |
463 | EM(afs_flock_callback_break, "Callback") \ | |
464 | EM(afs_flock_defer_unlock, "D-Unlock") \ | |
cdfb26b4 | 465 | EM(afs_flock_extend_fail, "Ext_Fail") \ |
d4696601 DH |
466 | EM(afs_flock_fail_other, "ErrOther") \ |
467 | EM(afs_flock_fail_perm, "ErrPerm ") \ | |
468 | EM(afs_flock_no_lockers, "NoLocker") \ | |
cdfb26b4 | 469 | EM(afs_flock_release_fail, "Rel_Fail") \ |
79ddbfa5 | 470 | EM(afs_flock_silly_delete, "SillyDel") \ |
d4696601 DH |
471 | EM(afs_flock_timestamp, "Timestmp") \ |
472 | EM(afs_flock_try_to_lock, "TryToLck") \ | |
473 | EM(afs_flock_vfs_lock, "VFSLock ") \ | |
474 | EM(afs_flock_vfs_locking, "VFSLking") \ | |
475 | EM(afs_flock_waited, "Waited ") \ | |
476 | EM(afs_flock_waiting, "Waiting ") \ | |
477 | EM(afs_flock_work_extending, "Extendng") \ | |
478 | EM(afs_flock_work_retry, "Retry ") \ | |
479 | EM(afs_flock_work_unlocking, "Unlcking") \ | |
480 | E_(afs_flock_would_block, "EWOULDBL") | |
481 | ||
482 | #define afs_flock_operations \ | |
483 | EM(afs_flock_op_copy_lock, "COPY ") \ | |
484 | EM(afs_flock_op_flock, "->flock ") \ | |
485 | EM(afs_flock_op_grant, "GRANT ") \ | |
486 | EM(afs_flock_op_lock, "->lock ") \ | |
487 | EM(afs_flock_op_release_lock, "RELEASE ") \ | |
488 | EM(afs_flock_op_return_ok, "<-OK ") \ | |
489 | EM(afs_flock_op_return_edeadlk, "<-EDEADL") \ | |
490 | EM(afs_flock_op_return_eagain, "<-EAGAIN") \ | |
491 | EM(afs_flock_op_return_error, "<-ERROR ") \ | |
492 | EM(afs_flock_op_set_lock, "SET ") \ | |
493 | EM(afs_flock_op_unlock, "UNLOCK ") \ | |
494 | E_(afs_flock_op_wake, "WAKE ") | |
495 | ||
051d2525 DH |
496 | #define afs_cb_break_reasons \ |
497 | EM(afs_cb_break_no_break, "no-break") \ | |
498 | EM(afs_cb_break_for_callback, "break-cb") \ | |
16069e13 | 499 | EM(afs_cb_break_for_creation_regress, "creation-regress") \ |
051d2525 | 500 | EM(afs_cb_break_for_deleted, "break-del") \ |
4fe6a946 | 501 | EM(afs_cb_break_for_s_reinit, "s-reinit") \ |
051d2525 | 502 | EM(afs_cb_break_for_unlink, "break-unlink") \ |
16069e13 | 503 | EM(afs_cb_break_for_update_regress, "update-regress") \ |
051d2525 | 504 | EM(afs_cb_break_for_volume_callback, "break-v-cb") \ |
16069e13 | 505 | EM(afs_cb_break_for_vos_release, "break-vos-release") \ |
16069e13 | 506 | E_(afs_cb_break_volume_excluded, "vol-excluded") |
051d2525 | 507 | |
495f2ae9 DH |
508 | #define afs_rotate_traces \ |
509 | EM(afs_rotate_trace_aborted, "Abortd") \ | |
510 | EM(afs_rotate_trace_busy_sleep, "BsySlp") \ | |
511 | EM(afs_rotate_trace_check_vol_status, "VolStt") \ | |
512 | EM(afs_rotate_trace_failed, "Failed") \ | |
513 | EM(afs_rotate_trace_iter, "Iter ") \ | |
514 | EM(afs_rotate_trace_iterate_addr, "ItAddr") \ | |
515 | EM(afs_rotate_trace_next_server, "NextSv") \ | |
516 | EM(afs_rotate_trace_no_more_servers, "NoMore") \ | |
517 | EM(afs_rotate_trace_nomem, "Nomem ") \ | |
518 | EM(afs_rotate_trace_probe_error, "PrbErr") \ | |
519 | EM(afs_rotate_trace_probe_fileserver, "PrbFsv") \ | |
520 | EM(afs_rotate_trace_probe_none, "PrbNon") \ | |
521 | EM(afs_rotate_trace_probe_response, "PrbRsp") \ | |
522 | EM(afs_rotate_trace_probe_superseded, "PrbSup") \ | |
523 | EM(afs_rotate_trace_restart, "Rstart") \ | |
524 | EM(afs_rotate_trace_retry_server, "RtrySv") \ | |
525 | EM(afs_rotate_trace_selected_server, "SlctSv") \ | |
526 | EM(afs_rotate_trace_stale_lock, "StlLck") \ | |
527 | EM(afs_rotate_trace_start, "Start ") \ | |
528 | EM(afs_rotate_trace_stop, "Stop ") \ | |
529 | E_(afs_rotate_trace_stopped, "Stoppd") | |
530 | ||
2daa6404 DH |
531 | /* |
532 | * Generate enums for tracing information. | |
533 | */ | |
534 | #ifndef __AFS_GENERATE_TRACE_ENUMS_ONCE_ONLY | |
535 | #define __AFS_GENERATE_TRACE_ENUMS_ONCE_ONLY | |
536 | ||
537 | #undef EM | |
538 | #undef E_ | |
539 | #define EM(a, b) a, | |
540 | #define E_(a, b) a | |
541 | ||
1e5d8493 | 542 | enum afs_alist_trace { afs_alist_traces } __mode(byte); |
2daa6404 DH |
543 | enum afs_call_trace { afs_call_traces } __mode(byte); |
544 | enum afs_cb_break_reason { afs_cb_break_reasons } __mode(byte); | |
9e705016 | 545 | enum afs_cb_promise_trace { afs_cb_promise_traces } __mode(byte); |
2daa6404 | 546 | enum afs_cell_trace { afs_cell_traces } __mode(byte); |
9e705016 | 547 | enum afs_dir_invalid_trace { afs_dir_invalid_traces} __mode(byte); |
2daa6404 DH |
548 | enum afs_edit_dir_op { afs_edit_dir_ops } __mode(byte); |
549 | enum afs_edit_dir_reason { afs_edit_dir_reasons } __mode(byte); | |
550 | enum afs_eproto_cause { afs_eproto_causes } __mode(byte); | |
f49b594d | 551 | enum afs_estate_trace { afs_estate_traces } __mode(byte); |
2daa6404 DH |
552 | enum afs_file_error { afs_file_errors } __mode(byte); |
553 | enum afs_flock_event { afs_flock_events } __mode(byte); | |
554 | enum afs_flock_operation { afs_flock_operations } __mode(byte); | |
555 | enum afs_io_error { afs_io_errors } __mode(byte); | |
495f2ae9 | 556 | enum afs_rotate_trace { afs_rotate_traces } __mode(byte); |
2daa6404 | 557 | enum afs_server_trace { afs_server_traces } __mode(byte); |
9e705016 | 558 | enum afs_vnode_invalid_trace { afs_vnode_invalid_traces} __mode(byte); |
2daa6404 DH |
559 | enum afs_volume_trace { afs_volume_traces } __mode(byte); |
560 | ||
561 | #endif /* end __AFS_GENERATE_TRACE_ENUMS_ONCE_ONLY */ | |
562 | ||
341f741f DH |
563 | /* |
564 | * Export enum symbols via userspace. | |
565 | */ | |
566 | #undef EM | |
567 | #undef E_ | |
568 | #define EM(a, b) TRACE_DEFINE_ENUM(a); | |
569 | #define E_(a, b) TRACE_DEFINE_ENUM(a); | |
570 | ||
1e5d8493 | 571 | afs_alist_traces; |
341f741f | 572 | afs_call_traces; |
495f2ae9 | 573 | afs_cb_break_reasons; |
9e705016 | 574 | afs_cb_promise_traces; |
dca54a7b | 575 | afs_cell_traces; |
6c881ca0 | 576 | afs_cm_operations; |
9e705016 | 577 | afs_dir_invalid_traces; |
63a4681f DH |
578 | afs_edit_dir_ops; |
579 | afs_edit_dir_reasons; | |
f51375cd | 580 | afs_eproto_causes; |
f49b594d | 581 | afs_estate_traces; |
f51375cd | 582 | afs_file_errors; |
d4696601 | 583 | afs_flock_operations; |
495f2ae9 DH |
584 | afs_flock_types; |
585 | afs_fs_operations; | |
586 | afs_io_errors; | |
587 | afs_rotate_traces; | |
588 | afs_server_traces; | |
9e705016 | 589 | afs_vnode_invalid_traces; |
495f2ae9 DH |
590 | afs_vl_operations; |
591 | yfs_cm_operations; | |
341f741f DH |
592 | |
593 | /* | |
594 | * Now redefine the EM() and E_() macros to map the enums to the strings that | |
595 | * will be printed in the output. | |
596 | */ | |
597 | #undef EM | |
598 | #undef E_ | |
599 | #define EM(a, b) { a, b }, | |
600 | #define E_(a, b) { a, b } | |
601 | ||
12bdcf33 DH |
602 | TRACE_EVENT(afs_receive_data, |
603 | TP_PROTO(struct afs_call *call, struct iov_iter *iter, | |
8e8d7f13 DH |
604 | bool want_more, int ret), |
605 | ||
12bdcf33 | 606 | TP_ARGS(call, iter, want_more, ret), |
8e8d7f13 DH |
607 | |
608 | TP_STRUCT__entry( | |
a790c258 DH |
609 | __field(loff_t, remain) |
610 | __field(unsigned int, call) | |
611 | __field(enum afs_call_state, state) | |
612 | __field(unsigned short, unmarshall) | |
613 | __field(bool, want_more) | |
614 | __field(int, ret) | |
8e8d7f13 DH |
615 | ), |
616 | ||
617 | TP_fast_assign( | |
a25e21f0 | 618 | __entry->call = call->debug_id; |
8e8d7f13 DH |
619 | __entry->state = call->state; |
620 | __entry->unmarshall = call->unmarshall; | |
12bdcf33 | 621 | __entry->remain = iov_iter_count(iter); |
8e8d7f13 DH |
622 | __entry->want_more = want_more; |
623 | __entry->ret = ret; | |
624 | ), | |
625 | ||
12bdcf33 | 626 | TP_printk("c=%08x r=%llu u=%u w=%u s=%u ret=%d", |
8e8d7f13 | 627 | __entry->call, |
12bdcf33 DH |
628 | __entry->remain, |
629 | __entry->unmarshall, | |
630 | __entry->want_more, | |
631 | __entry->state, | |
632 | __entry->ret) | |
8e8d7f13 DH |
633 | ); |
634 | ||
635 | TRACE_EVENT(afs_notify_call, | |
636 | TP_PROTO(struct rxrpc_call *rxcall, struct afs_call *call), | |
637 | ||
638 | TP_ARGS(rxcall, call), | |
639 | ||
640 | TP_STRUCT__entry( | |
a790c258 DH |
641 | __field(unsigned int, call) |
642 | __field(enum afs_call_state, state) | |
643 | __field(unsigned short, unmarshall) | |
8e8d7f13 DH |
644 | ), |
645 | ||
646 | TP_fast_assign( | |
a25e21f0 | 647 | __entry->call = call->debug_id; |
8e8d7f13 DH |
648 | __entry->state = call->state; |
649 | __entry->unmarshall = call->unmarshall; | |
650 | ), | |
651 | ||
a25e21f0 | 652 | TP_printk("c=%08x s=%u u=%u", |
8e8d7f13 DH |
653 | __entry->call, |
654 | __entry->state, __entry->unmarshall) | |
655 | ); | |
656 | ||
657 | TRACE_EVENT(afs_cb_call, | |
658 | TP_PROTO(struct afs_call *call), | |
659 | ||
660 | TP_ARGS(call), | |
661 | ||
662 | TP_STRUCT__entry( | |
a790c258 DH |
663 | __field(unsigned int, call) |
664 | __field(u32, op) | |
665 | __field(u16, service_id) | |
d03539d5 DH |
666 | __field(u8, security_ix) |
667 | __field(u32, enctype) | |
8e8d7f13 DH |
668 | ), |
669 | ||
670 | TP_fast_assign( | |
a25e21f0 | 671 | __entry->call = call->debug_id; |
8e8d7f13 | 672 | __entry->op = call->operation_ID; |
6c881ca0 | 673 | __entry->service_id = call->service_id; |
d03539d5 DH |
674 | __entry->security_ix = call->security_ix; |
675 | __entry->enctype = call->enctype; | |
8e8d7f13 DH |
676 | ), |
677 | ||
d03539d5 | 678 | TP_printk("c=%08x %s sv=%u sx=%u en=%u", |
8e8d7f13 | 679 | __entry->call, |
6c881ca0 DH |
680 | __entry->service_id == 2501 ? |
681 | __print_symbolic(__entry->op, yfs_cm_operations) : | |
d03539d5 DH |
682 | __print_symbolic(__entry->op, afs_cm_operations), |
683 | __entry->service_id, | |
684 | __entry->security_ix, | |
685 | __entry->enctype) | |
8e8d7f13 DH |
686 | ); |
687 | ||
341f741f | 688 | TRACE_EVENT(afs_call, |
2757a4dc | 689 | TP_PROTO(unsigned int call_debug_id, enum afs_call_trace op, |
c56f9ec8 | 690 | int ref, int outstanding, const void *where), |
341f741f | 691 | |
2757a4dc | 692 | TP_ARGS(call_debug_id, op, ref, outstanding, where), |
341f741f DH |
693 | |
694 | TP_STRUCT__entry( | |
a790c258 DH |
695 | __field(unsigned int, call) |
696 | __field(int, op) | |
697 | __field(int, ref) | |
698 | __field(int, outstanding) | |
699 | __field(const void *, where) | |
341f741f DH |
700 | ), |
701 | ||
702 | TP_fast_assign( | |
2757a4dc | 703 | __entry->call = call_debug_id; |
341f741f | 704 | __entry->op = op; |
c56f9ec8 | 705 | __entry->ref = ref; |
341f741f DH |
706 | __entry->outstanding = outstanding; |
707 | __entry->where = where; | |
708 | ), | |
709 | ||
c56f9ec8 | 710 | TP_printk("c=%08x %s r=%d o=%d sp=%pSR", |
341f741f DH |
711 | __entry->call, |
712 | __print_symbolic(__entry->op, afs_call_traces), | |
c56f9ec8 | 713 | __entry->ref, |
341f741f DH |
714 | __entry->outstanding, |
715 | __entry->where) | |
716 | ); | |
717 | ||
025db80c DH |
718 | TRACE_EVENT(afs_make_fs_call, |
719 | TP_PROTO(struct afs_call *call, const struct afs_fid *fid), | |
720 | ||
721 | TP_ARGS(call, fid), | |
722 | ||
723 | TP_STRUCT__entry( | |
a790c258 DH |
724 | __field(unsigned int, call) |
725 | __field(enum afs_fs_operation, op) | |
726 | __field_struct(struct afs_fid, fid) | |
025db80c DH |
727 | ), |
728 | ||
729 | TP_fast_assign( | |
a25e21f0 | 730 | __entry->call = call->debug_id; |
025db80c DH |
731 | __entry->op = call->operation_ID; |
732 | if (fid) { | |
733 | __entry->fid = *fid; | |
734 | } else { | |
735 | __entry->fid.vid = 0; | |
736 | __entry->fid.vnode = 0; | |
737 | __entry->fid.unique = 0; | |
738 | } | |
739 | ), | |
740 | ||
9e705016 | 741 | TP_printk("c=%08x V=%llx i=%llx:%x %s", |
025db80c DH |
742 | __entry->call, |
743 | __entry->fid.vid, | |
744 | __entry->fid.vnode, | |
745 | __entry->fid.unique, | |
746 | __print_symbolic(__entry->op, afs_fs_operations)) | |
747 | ); | |
748 | ||
6c6c1d63 DH |
749 | TRACE_EVENT(afs_make_fs_calli, |
750 | TP_PROTO(struct afs_call *call, const struct afs_fid *fid, | |
751 | unsigned int i), | |
752 | ||
753 | TP_ARGS(call, fid, i), | |
754 | ||
755 | TP_STRUCT__entry( | |
a790c258 DH |
756 | __field(unsigned int, call) |
757 | __field(unsigned int, i) | |
758 | __field(enum afs_fs_operation, op) | |
759 | __field_struct(struct afs_fid, fid) | |
6c6c1d63 DH |
760 | ), |
761 | ||
762 | TP_fast_assign( | |
763 | __entry->call = call->debug_id; | |
764 | __entry->i = i; | |
765 | __entry->op = call->operation_ID; | |
766 | if (fid) { | |
767 | __entry->fid = *fid; | |
768 | } else { | |
769 | __entry->fid.vid = 0; | |
770 | __entry->fid.vnode = 0; | |
771 | __entry->fid.unique = 0; | |
772 | } | |
773 | ), | |
774 | ||
9e705016 | 775 | TP_printk("c=%08x V=%llx i=%llx:%x %s i=%u", |
6c6c1d63 DH |
776 | __entry->call, |
777 | __entry->fid.vid, | |
778 | __entry->fid.vnode, | |
779 | __entry->fid.unique, | |
780 | __print_symbolic(__entry->op, afs_fs_operations), | |
781 | __entry->i) | |
782 | ); | |
783 | ||
80548b03 DH |
784 | TRACE_EVENT(afs_make_fs_call1, |
785 | TP_PROTO(struct afs_call *call, const struct afs_fid *fid, | |
e49c7b2f | 786 | const struct qstr *name), |
80548b03 DH |
787 | |
788 | TP_ARGS(call, fid, name), | |
789 | ||
790 | TP_STRUCT__entry( | |
a790c258 DH |
791 | __field(unsigned int, call) |
792 | __field(enum afs_fs_operation, op) | |
793 | __field_struct(struct afs_fid, fid) | |
794 | __array(char, name, 24) | |
80548b03 DH |
795 | ), |
796 | ||
797 | TP_fast_assign( | |
e49c7b2f | 798 | unsigned int __len = min_t(unsigned int, name->len, 23); |
80548b03 DH |
799 | __entry->call = call->debug_id; |
800 | __entry->op = call->operation_ID; | |
801 | if (fid) { | |
802 | __entry->fid = *fid; | |
803 | } else { | |
804 | __entry->fid.vid = 0; | |
805 | __entry->fid.vnode = 0; | |
806 | __entry->fid.unique = 0; | |
807 | } | |
e49c7b2f | 808 | memcpy(__entry->name, name->name, __len); |
80548b03 DH |
809 | __entry->name[__len] = 0; |
810 | ), | |
811 | ||
9e705016 | 812 | TP_printk("c=%08x V=%llx i=%llx:%x %s \"%s\"", |
80548b03 DH |
813 | __entry->call, |
814 | __entry->fid.vid, | |
815 | __entry->fid.vnode, | |
816 | __entry->fid.unique, | |
817 | __print_symbolic(__entry->op, afs_fs_operations), | |
818 | __entry->name) | |
819 | ); | |
820 | ||
821 | TRACE_EVENT(afs_make_fs_call2, | |
822 | TP_PROTO(struct afs_call *call, const struct afs_fid *fid, | |
e49c7b2f | 823 | const struct qstr *name, const struct qstr *name2), |
80548b03 DH |
824 | |
825 | TP_ARGS(call, fid, name, name2), | |
826 | ||
827 | TP_STRUCT__entry( | |
a790c258 DH |
828 | __field(unsigned int, call) |
829 | __field(enum afs_fs_operation, op) | |
830 | __field_struct(struct afs_fid, fid) | |
831 | __array(char, name, 24) | |
832 | __array(char, name2, 24) | |
80548b03 DH |
833 | ), |
834 | ||
835 | TP_fast_assign( | |
e49c7b2f DH |
836 | unsigned int __len = min_t(unsigned int, name->len, 23); |
837 | unsigned int __len2 = min_t(unsigned int, name2->len, 23); | |
80548b03 DH |
838 | __entry->call = call->debug_id; |
839 | __entry->op = call->operation_ID; | |
840 | if (fid) { | |
841 | __entry->fid = *fid; | |
842 | } else { | |
843 | __entry->fid.vid = 0; | |
844 | __entry->fid.vnode = 0; | |
845 | __entry->fid.unique = 0; | |
846 | } | |
e49c7b2f | 847 | memcpy(__entry->name, name->name, __len); |
80548b03 | 848 | __entry->name[__len] = 0; |
e49c7b2f | 849 | memcpy(__entry->name2, name2->name, __len2); |
80548b03 DH |
850 | __entry->name2[__len2] = 0; |
851 | ), | |
852 | ||
9e705016 | 853 | TP_printk("c=%08x V=%llx i=%llx:%x %s \"%s\" \"%s\"", |
80548b03 DH |
854 | __entry->call, |
855 | __entry->fid.vid, | |
856 | __entry->fid.vnode, | |
857 | __entry->fid.unique, | |
858 | __print_symbolic(__entry->op, afs_fs_operations), | |
859 | __entry->name, | |
860 | __entry->name2) | |
861 | ); | |
862 | ||
025db80c DH |
863 | TRACE_EVENT(afs_make_vl_call, |
864 | TP_PROTO(struct afs_call *call), | |
865 | ||
866 | TP_ARGS(call), | |
867 | ||
868 | TP_STRUCT__entry( | |
a790c258 DH |
869 | __field(unsigned int, call) |
870 | __field(enum afs_vl_operation, op) | |
025db80c DH |
871 | ), |
872 | ||
873 | TP_fast_assign( | |
a25e21f0 | 874 | __entry->call = call->debug_id; |
025db80c DH |
875 | __entry->op = call->operation_ID; |
876 | ), | |
877 | ||
a25e21f0 | 878 | TP_printk("c=%08x %s", |
025db80c DH |
879 | __entry->call, |
880 | __print_symbolic(__entry->op, afs_vl_operations)) | |
881 | ); | |
882 | ||
883 | TRACE_EVENT(afs_call_done, | |
884 | TP_PROTO(struct afs_call *call), | |
885 | ||
886 | TP_ARGS(call), | |
887 | ||
888 | TP_STRUCT__entry( | |
a790c258 DH |
889 | __field(unsigned int, call) |
890 | __field(struct rxrpc_call *, rx_call) | |
891 | __field(int, ret) | |
892 | __field(u32, abort_code) | |
025db80c DH |
893 | ), |
894 | ||
895 | TP_fast_assign( | |
a25e21f0 | 896 | __entry->call = call->debug_id; |
025db80c DH |
897 | __entry->rx_call = call->rxcall; |
898 | __entry->ret = call->error; | |
899 | __entry->abort_code = call->abort_code; | |
900 | ), | |
901 | ||
a25e21f0 | 902 | TP_printk(" c=%08x ret=%d ab=%d [%p]", |
025db80c DH |
903 | __entry->call, |
904 | __entry->ret, | |
905 | __entry->abort_code, | |
906 | __entry->rx_call) | |
907 | ); | |
908 | ||
bd80d8a8 DH |
909 | TRACE_EVENT(afs_send_data, |
910 | TP_PROTO(struct afs_call *call, struct msghdr *msg), | |
2c099014 | 911 | |
bd80d8a8 | 912 | TP_ARGS(call, msg), |
2c099014 DH |
913 | |
914 | TP_STRUCT__entry( | |
a790c258 DH |
915 | __field(unsigned int, call) |
916 | __field(unsigned int, flags) | |
917 | __field(loff_t, offset) | |
918 | __field(loff_t, count) | |
2c099014 DH |
919 | ), |
920 | ||
921 | TP_fast_assign( | |
a25e21f0 | 922 | __entry->call = call->debug_id; |
2c099014 | 923 | __entry->flags = msg->msg_flags; |
bd80d8a8 DH |
924 | __entry->offset = msg->msg_iter.xarray_start + msg->msg_iter.iov_offset; |
925 | __entry->count = iov_iter_count(&msg->msg_iter); | |
2c099014 DH |
926 | ), |
927 | ||
bd80d8a8 DH |
928 | TP_printk(" c=%08x o=%llx n=%llx f=%x", |
929 | __entry->call, __entry->offset, __entry->count, | |
2c099014 DH |
930 | __entry->flags) |
931 | ); | |
932 | ||
bd80d8a8 DH |
933 | TRACE_EVENT(afs_sent_data, |
934 | TP_PROTO(struct afs_call *call, struct msghdr *msg, int ret), | |
2c099014 | 935 | |
bd80d8a8 | 936 | TP_ARGS(call, msg, ret), |
2c099014 DH |
937 | |
938 | TP_STRUCT__entry( | |
a790c258 DH |
939 | __field(unsigned int, call) |
940 | __field(int, ret) | |
941 | __field(loff_t, offset) | |
942 | __field(loff_t, count) | |
2c099014 DH |
943 | ), |
944 | ||
945 | TP_fast_assign( | |
a25e21f0 | 946 | __entry->call = call->debug_id; |
2c099014 | 947 | __entry->ret = ret; |
bd80d8a8 DH |
948 | __entry->offset = msg->msg_iter.xarray_start + msg->msg_iter.iov_offset; |
949 | __entry->count = iov_iter_count(&msg->msg_iter); | |
2c099014 DH |
950 | ), |
951 | ||
bd80d8a8 DH |
952 | TP_printk(" c=%08x o=%llx n=%llx r=%x", |
953 | __entry->call, __entry->offset, __entry->count, | |
954 | __entry->ret) | |
2c099014 DH |
955 | ); |
956 | ||
dab17c1a | 957 | TRACE_EVENT(afs_dir_check_failed, |
6dd80936 | 958 | TP_PROTO(struct afs_vnode *vnode, loff_t off), |
dab17c1a | 959 | |
6dd80936 | 960 | TP_ARGS(vnode, off), |
dab17c1a DH |
961 | |
962 | TP_STRUCT__entry( | |
a790c258 DH |
963 | __field(struct afs_vnode *, vnode) |
964 | __field(loff_t, off) | |
965 | __field(loff_t, i_size) | |
dab17c1a DH |
966 | ), |
967 | ||
968 | TP_fast_assign( | |
969 | __entry->vnode = vnode; | |
970 | __entry->off = off; | |
6dd80936 | 971 | __entry->i_size = i_size_read(&vnode->netfs.inode); |
dab17c1a DH |
972 | ), |
973 | ||
974 | TP_printk("vn=%p %llx/%llx", | |
975 | __entry->vnode, __entry->off, __entry->i_size) | |
976 | ); | |
977 | ||
98bf40cd DH |
978 | TRACE_EVENT(afs_call_state, |
979 | TP_PROTO(struct afs_call *call, | |
980 | enum afs_call_state from, | |
981 | enum afs_call_state to, | |
982 | int ret, u32 remote_abort), | |
983 | ||
984 | TP_ARGS(call, from, to, ret, remote_abort), | |
985 | ||
986 | TP_STRUCT__entry( | |
a790c258 DH |
987 | __field(unsigned int, call) |
988 | __field(enum afs_call_state, from) | |
989 | __field(enum afs_call_state, to) | |
990 | __field(int, ret) | |
991 | __field(u32, abort) | |
98bf40cd DH |
992 | ), |
993 | ||
994 | TP_fast_assign( | |
a25e21f0 | 995 | __entry->call = call->debug_id; |
98bf40cd DH |
996 | __entry->from = from; |
997 | __entry->to = to; | |
998 | __entry->ret = ret; | |
999 | __entry->abort = remote_abort; | |
1000 | ), | |
1001 | ||
a25e21f0 | 1002 | TP_printk("c=%08x %u->%u r=%d ab=%d", |
98bf40cd DH |
1003 | __entry->call, |
1004 | __entry->from, __entry->to, | |
1005 | __entry->ret, __entry->abort) | |
1006 | ); | |
1007 | ||
80548b03 DH |
1008 | TRACE_EVENT(afs_lookup, |
1009 | TP_PROTO(struct afs_vnode *dvnode, const struct qstr *name, | |
40a708bd | 1010 | struct afs_fid *fid), |
80548b03 | 1011 | |
40a708bd | 1012 | TP_ARGS(dvnode, name, fid), |
80548b03 DH |
1013 | |
1014 | TP_STRUCT__entry( | |
a790c258 DH |
1015 | __field_struct(struct afs_fid, dfid) |
1016 | __field_struct(struct afs_fid, fid) | |
1017 | __array(char, name, 24) | |
80548b03 DH |
1018 | ), |
1019 | ||
1020 | TP_fast_assign( | |
1021 | int __len = min_t(int, name->len, 23); | |
1022 | __entry->dfid = dvnode->fid; | |
40a708bd | 1023 | __entry->fid = *fid; |
80548b03 DH |
1024 | memcpy(__entry->name, name->name, __len); |
1025 | __entry->name[__len] = 0; | |
1026 | ), | |
1027 | ||
1028 | TP_printk("d=%llx:%llx:%x \"%s\" f=%llx:%x", | |
1029 | __entry->dfid.vid, __entry->dfid.vnode, __entry->dfid.unique, | |
1030 | __entry->name, | |
1031 | __entry->fid.vnode, __entry->fid.unique) | |
1032 | ); | |
1033 | ||
63a4681f DH |
1034 | TRACE_EVENT(afs_edit_dir, |
1035 | TP_PROTO(struct afs_vnode *dvnode, | |
1036 | enum afs_edit_dir_reason why, | |
1037 | enum afs_edit_dir_op op, | |
1038 | unsigned int block, | |
1039 | unsigned int slot, | |
1040 | unsigned int f_vnode, | |
1041 | unsigned int f_unique, | |
1042 | const char *name), | |
1043 | ||
1044 | TP_ARGS(dvnode, why, op, block, slot, f_vnode, f_unique, name), | |
1045 | ||
1046 | TP_STRUCT__entry( | |
a790c258 DH |
1047 | __field(unsigned int, vnode) |
1048 | __field(unsigned int, unique) | |
1049 | __field(enum afs_edit_dir_reason, why) | |
1050 | __field(enum afs_edit_dir_op, op) | |
1051 | __field(unsigned int, block) | |
1052 | __field(unsigned short, slot) | |
1053 | __field(unsigned int, f_vnode) | |
1054 | __field(unsigned int, f_unique) | |
1055 | __array(char, name, 24) | |
63a4681f DH |
1056 | ), |
1057 | ||
1058 | TP_fast_assign( | |
1059 | int __len = strlen(name); | |
80548b03 | 1060 | __len = min(__len, 23); |
63a4681f DH |
1061 | __entry->vnode = dvnode->fid.vnode; |
1062 | __entry->unique = dvnode->fid.unique; | |
1063 | __entry->why = why; | |
1064 | __entry->op = op; | |
1065 | __entry->block = block; | |
1066 | __entry->slot = slot; | |
1067 | __entry->f_vnode = f_vnode; | |
1068 | __entry->f_unique = f_unique; | |
1069 | memcpy(__entry->name, name, __len); | |
1070 | __entry->name[__len] = 0; | |
1071 | ), | |
1072 | ||
9e705016 | 1073 | TP_printk("di=%x:%x %s %s %u[%u] fi=%x:%x \"%s\"", |
63a4681f DH |
1074 | __entry->vnode, __entry->unique, |
1075 | __print_symbolic(__entry->why, afs_edit_dir_reasons), | |
1076 | __print_symbolic(__entry->op, afs_edit_dir_ops), | |
1077 | __entry->block, __entry->slot, | |
1078 | __entry->f_vnode, __entry->f_unique, | |
1079 | __entry->name) | |
1080 | ); | |
1081 | ||
9e705016 DH |
1082 | TRACE_EVENT(afs_dir_invalid, |
1083 | TP_PROTO(const struct afs_vnode *dvnode, enum afs_dir_invalid_trace trace), | |
1084 | ||
1085 | TP_ARGS(dvnode, trace), | |
1086 | ||
1087 | TP_STRUCT__entry( | |
1088 | __field(unsigned int, vnode) | |
1089 | __field(unsigned int, unique) | |
1090 | __field(enum afs_dir_invalid_trace, trace) | |
1091 | ), | |
1092 | ||
1093 | TP_fast_assign( | |
1094 | __entry->vnode = dvnode->fid.vnode; | |
1095 | __entry->unique = dvnode->fid.unique; | |
1096 | __entry->trace = trace; | |
1097 | ), | |
1098 | ||
1099 | TP_printk("di=%x:%x %s", | |
1100 | __entry->vnode, __entry->unique, | |
1101 | __print_symbolic(__entry->trace, afs_dir_invalid_traces)) | |
1102 | ); | |
1103 | ||
1104 | TRACE_EVENT(afs_cb_promise, | |
1105 | TP_PROTO(const struct afs_vnode *vnode, enum afs_cb_promise_trace trace), | |
1106 | ||
1107 | TP_ARGS(vnode, trace), | |
1108 | ||
1109 | TP_STRUCT__entry( | |
1110 | __field(unsigned int, vnode) | |
1111 | __field(unsigned int, unique) | |
1112 | __field(enum afs_cb_promise_trace, trace) | |
1113 | ), | |
1114 | ||
1115 | TP_fast_assign( | |
1116 | __entry->vnode = vnode->fid.vnode; | |
1117 | __entry->unique = vnode->fid.unique; | |
1118 | __entry->trace = trace; | |
1119 | ), | |
1120 | ||
1121 | TP_printk("di=%x:%x %s", | |
1122 | __entry->vnode, __entry->unique, | |
1123 | __print_symbolic(__entry->trace, afs_cb_promise_traces)) | |
1124 | ); | |
1125 | ||
1126 | TRACE_EVENT(afs_vnode_invalid, | |
1127 | TP_PROTO(const struct afs_vnode *vnode, enum afs_vnode_invalid_trace trace), | |
1128 | ||
1129 | TP_ARGS(vnode, trace), | |
1130 | ||
1131 | TP_STRUCT__entry( | |
1132 | __field(unsigned int, vnode) | |
1133 | __field(unsigned int, unique) | |
1134 | __field(enum afs_vnode_invalid_trace, trace) | |
1135 | ), | |
1136 | ||
1137 | TP_fast_assign( | |
1138 | __entry->vnode = vnode->fid.vnode; | |
1139 | __entry->unique = vnode->fid.unique; | |
1140 | __entry->trace = trace; | |
1141 | ), | |
1142 | ||
1143 | TP_printk("di=%x:%x %s", | |
1144 | __entry->vnode, __entry->unique, | |
1145 | __print_symbolic(__entry->trace, afs_vnode_invalid_traces)) | |
1146 | ); | |
1147 | ||
1148 | TRACE_EVENT(afs_set_dv, | |
1149 | TP_PROTO(const struct afs_vnode *dvnode, u64 new_dv), | |
1150 | ||
1151 | TP_ARGS(dvnode, new_dv), | |
1152 | ||
1153 | TP_STRUCT__entry( | |
1154 | __field(unsigned int, vnode) | |
1155 | __field(unsigned int, unique) | |
1156 | __field(u64, old_dv) | |
1157 | __field(u64, new_dv) | |
1158 | ), | |
1159 | ||
1160 | TP_fast_assign( | |
1161 | __entry->vnode = dvnode->fid.vnode; | |
1162 | __entry->unique = dvnode->fid.unique; | |
1163 | __entry->old_dv = dvnode->status.data_version; | |
1164 | __entry->new_dv = new_dv; | |
1165 | ), | |
1166 | ||
1167 | TP_printk("di=%x:%x dv=%llx -> dv=%llx", | |
1168 | __entry->vnode, __entry->unique, | |
1169 | __entry->old_dv, __entry->new_dv) | |
1170 | ); | |
1171 | ||
1172 | TRACE_EVENT(afs_dv_mismatch, | |
1173 | TP_PROTO(const struct afs_vnode *dvnode, u64 before_dv, int delta, u64 new_dv), | |
1174 | ||
1175 | TP_ARGS(dvnode, before_dv, delta, new_dv), | |
1176 | ||
1177 | TP_STRUCT__entry( | |
1178 | __field(unsigned int, vnode) | |
1179 | __field(unsigned int, unique) | |
1180 | __field(int, delta) | |
1181 | __field(u64, before_dv) | |
1182 | __field(u64, new_dv) | |
1183 | ), | |
1184 | ||
1185 | TP_fast_assign( | |
1186 | __entry->vnode = dvnode->fid.vnode; | |
1187 | __entry->unique = dvnode->fid.unique; | |
1188 | __entry->delta = delta; | |
1189 | __entry->before_dv = before_dv; | |
1190 | __entry->new_dv = new_dv; | |
1191 | ), | |
1192 | ||
1193 | TP_printk("di=%x:%x xdv=%llx+%d dv=%llx", | |
1194 | __entry->vnode, __entry->unique, | |
1195 | __entry->before_dv, __entry->delta, __entry->new_dv) | |
1196 | ); | |
1197 | ||
5f702c8e | 1198 | TRACE_EVENT(afs_protocol_error, |
7126ead9 | 1199 | TP_PROTO(struct afs_call *call, enum afs_eproto_cause cause), |
5f702c8e | 1200 | |
7126ead9 | 1201 | TP_ARGS(call, cause), |
5f702c8e DH |
1202 | |
1203 | TP_STRUCT__entry( | |
a790c258 DH |
1204 | __field(unsigned int, call) |
1205 | __field(enum afs_eproto_cause, cause) | |
5f702c8e DH |
1206 | ), |
1207 | ||
1208 | TP_fast_assign( | |
1209 | __entry->call = call ? call->debug_id : 0; | |
160cb957 | 1210 | __entry->cause = cause; |
5f702c8e DH |
1211 | ), |
1212 | ||
7126ead9 DH |
1213 | TP_printk("c=%08x %s", |
1214 | __entry->call, | |
160cb957 | 1215 | __print_symbolic(__entry->cause, afs_eproto_causes)) |
5f702c8e DH |
1216 | ); |
1217 | ||
f51375cd DH |
1218 | TRACE_EVENT(afs_io_error, |
1219 | TP_PROTO(unsigned int call, int error, enum afs_io_error where), | |
1220 | ||
1221 | TP_ARGS(call, error, where), | |
1222 | ||
1223 | TP_STRUCT__entry( | |
a790c258 DH |
1224 | __field(unsigned int, call) |
1225 | __field(int, error) | |
1226 | __field(enum afs_io_error, where) | |
f51375cd DH |
1227 | ), |
1228 | ||
1229 | TP_fast_assign( | |
1230 | __entry->call = call; | |
1231 | __entry->error = error; | |
1232 | __entry->where = where; | |
1233 | ), | |
1234 | ||
1235 | TP_printk("c=%08x r=%d %s", | |
1236 | __entry->call, __entry->error, | |
1237 | __print_symbolic(__entry->where, afs_io_errors)) | |
1238 | ); | |
1239 | ||
1240 | TRACE_EVENT(afs_file_error, | |
1241 | TP_PROTO(struct afs_vnode *vnode, int error, enum afs_file_error where), | |
1242 | ||
1243 | TP_ARGS(vnode, error, where), | |
1244 | ||
1245 | TP_STRUCT__entry( | |
a790c258 DH |
1246 | __field_struct(struct afs_fid, fid) |
1247 | __field(int, error) | |
1248 | __field(enum afs_file_error, where) | |
f51375cd DH |
1249 | ), |
1250 | ||
1251 | TP_fast_assign( | |
1252 | __entry->fid = vnode->fid; | |
1253 | __entry->error = error; | |
1254 | __entry->where = where; | |
1255 | ), | |
1256 | ||
3b6492df | 1257 | TP_printk("%llx:%llx:%x r=%d %s", |
f51375cd DH |
1258 | __entry->fid.vid, __entry->fid.vnode, __entry->fid.unique, |
1259 | __entry->error, | |
1260 | __print_symbolic(__entry->where, afs_file_errors)) | |
1261 | ); | |
1262 | ||
17ba6f0b DH |
1263 | TRACE_EVENT(afs_bulkstat_error, |
1264 | TP_PROTO(struct afs_operation *op, struct afs_fid *fid, unsigned int index, s32 abort), | |
1265 | ||
1266 | TP_ARGS(op, fid, index, abort), | |
1267 | ||
1268 | TP_STRUCT__entry( | |
1269 | __field_struct(struct afs_fid, fid) | |
1270 | __field(unsigned int, op) | |
1271 | __field(unsigned int, index) | |
1272 | __field(s32, abort) | |
1273 | ), | |
1274 | ||
1275 | TP_fast_assign( | |
1276 | __entry->op = op->debug_id; | |
1277 | __entry->fid = *fid; | |
1278 | __entry->index = index; | |
1279 | __entry->abort = abort; | |
1280 | ), | |
1281 | ||
1282 | TP_printk("OP=%08x[%02x] %llx:%llx:%x a=%d", | |
1283 | __entry->op, __entry->index, | |
1284 | __entry->fid.vid, __entry->fid.vnode, __entry->fid.unique, | |
1285 | __entry->abort) | |
1286 | ); | |
1287 | ||
3709a399 | 1288 | TRACE_EVENT(afs_cm_no_server, |
40e8b52f | 1289 | TP_PROTO(struct afs_call *call, const struct sockaddr_rxrpc *srx), |
3709a399 DH |
1290 | |
1291 | TP_ARGS(call, srx), | |
1292 | ||
1293 | TP_STRUCT__entry( | |
a790c258 DH |
1294 | __field(unsigned int, call) |
1295 | __field(unsigned int, op_id) | |
1296 | __field_struct(struct sockaddr_rxrpc, srx) | |
3709a399 DH |
1297 | ), |
1298 | ||
1299 | TP_fast_assign( | |
1300 | __entry->call = call->debug_id; | |
1301 | __entry->op_id = call->operation_ID; | |
1302 | memcpy(&__entry->srx, srx, sizeof(__entry->srx)); | |
1303 | ), | |
1304 | ||
1305 | TP_printk("c=%08x op=%u %pISpc", | |
1306 | __entry->call, __entry->op_id, &__entry->srx.transport) | |
1307 | ); | |
1308 | ||
1309 | TRACE_EVENT(afs_cm_no_server_u, | |
1310 | TP_PROTO(struct afs_call *call, const uuid_t *uuid), | |
1311 | ||
1312 | TP_ARGS(call, uuid), | |
1313 | ||
1314 | TP_STRUCT__entry( | |
a790c258 DH |
1315 | __field(unsigned int, call) |
1316 | __field(unsigned int, op_id) | |
1317 | __field_struct(uuid_t, uuid) | |
3709a399 DH |
1318 | ), |
1319 | ||
1320 | TP_fast_assign( | |
1321 | __entry->call = call->debug_id; | |
1322 | __entry->op_id = call->operation_ID; | |
1323 | memcpy(&__entry->uuid, uuid, sizeof(__entry->uuid)); | |
1324 | ), | |
1325 | ||
1326 | TP_printk("c=%08x op=%u %pU", | |
1327 | __entry->call, __entry->op_id, &__entry->uuid) | |
1328 | ); | |
1329 | ||
d4696601 DH |
1330 | TRACE_EVENT(afs_flock_ev, |
1331 | TP_PROTO(struct afs_vnode *vnode, struct file_lock *fl, | |
1332 | enum afs_flock_event event, int error), | |
1333 | ||
1334 | TP_ARGS(vnode, fl, event, error), | |
1335 | ||
1336 | TP_STRUCT__entry( | |
a790c258 DH |
1337 | __field_struct(struct afs_fid, fid) |
1338 | __field(enum afs_flock_event, event) | |
1339 | __field(enum afs_lock_state, state) | |
1340 | __field(int, error) | |
1341 | __field(unsigned int, debug_id) | |
d4696601 DH |
1342 | ), |
1343 | ||
1344 | TP_fast_assign( | |
1345 | __entry->fid = vnode->fid; | |
1346 | __entry->event = event; | |
1347 | __entry->state = vnode->lock_state; | |
1348 | __entry->error = error; | |
1349 | __entry->debug_id = fl ? fl->fl_u.afs.debug_id : 0; | |
1350 | ), | |
1351 | ||
1352 | TP_printk("%llx:%llx:%x %04x %s s=%s e=%d", | |
1353 | __entry->fid.vid, __entry->fid.vnode, __entry->fid.unique, | |
1354 | __entry->debug_id, | |
1355 | __print_symbolic(__entry->event, afs_flock_events), | |
1356 | __print_symbolic(__entry->state, afs_flock_states), | |
1357 | __entry->error) | |
1358 | ); | |
1359 | ||
1360 | TRACE_EVENT(afs_flock_op, | |
1361 | TP_PROTO(struct afs_vnode *vnode, struct file_lock *fl, | |
1362 | enum afs_flock_operation op), | |
1363 | ||
1364 | TP_ARGS(vnode, fl, op), | |
1365 | ||
1366 | TP_STRUCT__entry( | |
a790c258 DH |
1367 | __field_struct(struct afs_fid, fid) |
1368 | __field(loff_t, from) | |
1369 | __field(loff_t, len) | |
1370 | __field(enum afs_flock_operation, op) | |
1371 | __field(unsigned char, type) | |
1372 | __field(unsigned int, flags) | |
1373 | __field(unsigned int, debug_id) | |
d4696601 DH |
1374 | ), |
1375 | ||
1376 | TP_fast_assign( | |
1377 | __entry->fid = vnode->fid; | |
1378 | __entry->from = fl->fl_start; | |
1379 | __entry->len = fl->fl_end - fl->fl_start + 1; | |
1380 | __entry->op = op; | |
82a8cb96 JL |
1381 | __entry->type = fl->c.flc_type; |
1382 | __entry->flags = fl->c.flc_flags; | |
d4696601 DH |
1383 | __entry->debug_id = fl->fl_u.afs.debug_id; |
1384 | ), | |
1385 | ||
1386 | TP_printk("%llx:%llx:%x %04x %s t=%s R=%llx/%llx f=%x", | |
1387 | __entry->fid.vid, __entry->fid.vnode, __entry->fid.unique, | |
1388 | __entry->debug_id, | |
1389 | __print_symbolic(__entry->op, afs_flock_operations), | |
1390 | __print_symbolic(__entry->type, afs_flock_types), | |
1391 | __entry->from, __entry->len, __entry->flags) | |
1392 | ); | |
1393 | ||
99987c56 DH |
1394 | TRACE_EVENT(afs_reload_dir, |
1395 | TP_PROTO(struct afs_vnode *vnode), | |
1396 | ||
1397 | TP_ARGS(vnode), | |
1398 | ||
1399 | TP_STRUCT__entry( | |
a790c258 | 1400 | __field_struct(struct afs_fid, fid) |
99987c56 DH |
1401 | ), |
1402 | ||
1403 | TP_fast_assign( | |
1404 | __entry->fid = vnode->fid; | |
1405 | ), | |
1406 | ||
1407 | TP_printk("%llx:%llx:%x", | |
1408 | __entry->fid.vid, __entry->fid.vnode, __entry->fid.unique) | |
1409 | ); | |
1410 | ||
79ddbfa5 DH |
1411 | TRACE_EVENT(afs_silly_rename, |
1412 | TP_PROTO(struct afs_vnode *vnode, bool done), | |
1413 | ||
1414 | TP_ARGS(vnode, done), | |
1415 | ||
1416 | TP_STRUCT__entry( | |
a790c258 DH |
1417 | __field_struct(struct afs_fid, fid) |
1418 | __field(bool, done) | |
79ddbfa5 DH |
1419 | ), |
1420 | ||
1421 | TP_fast_assign( | |
1422 | __entry->fid = vnode->fid; | |
1423 | __entry->done = done; | |
1424 | ), | |
1425 | ||
1426 | TP_printk("%llx:%llx:%x done=%u", | |
1427 | __entry->fid.vid, __entry->fid.vnode, __entry->fid.unique, | |
1428 | __entry->done) | |
1429 | ); | |
1430 | ||
80548b03 DH |
1431 | TRACE_EVENT(afs_get_tree, |
1432 | TP_PROTO(struct afs_cell *cell, struct afs_volume *volume), | |
1433 | ||
1434 | TP_ARGS(cell, volume), | |
1435 | ||
1436 | TP_STRUCT__entry( | |
a790c258 DH |
1437 | __field(u64, vid) |
1438 | __array(char, cell, 24) | |
1439 | __array(char, volume, 24) | |
80548b03 DH |
1440 | ), |
1441 | ||
1442 | TP_fast_assign( | |
1443 | int __len; | |
1444 | __entry->vid = volume->vid; | |
1445 | __len = min_t(int, cell->name_len, 23); | |
1446 | memcpy(__entry->cell, cell->name, __len); | |
1447 | __entry->cell[__len] = 0; | |
1448 | __len = min_t(int, volume->name_len, 23); | |
1449 | memcpy(__entry->volume, volume->name, __len); | |
1450 | __entry->volume[__len] = 0; | |
1451 | ), | |
1452 | ||
1453 | TP_printk("--- MOUNT %s:%s %llx", | |
1454 | __entry->cell, __entry->volume, __entry->vid) | |
1455 | ); | |
1456 | ||
16069e13 DH |
1457 | TRACE_EVENT(afs_cb_v_break, |
1458 | TP_PROTO(afs_volid_t vid, unsigned int cb_v_break, | |
1459 | enum afs_cb_break_reason reason), | |
1460 | ||
1461 | TP_ARGS(vid, cb_v_break, reason), | |
1462 | ||
1463 | TP_STRUCT__entry( | |
1464 | __field(afs_volid_t, vid) | |
1465 | __field(unsigned int, cb_v_break) | |
1466 | __field(enum afs_cb_break_reason, reason) | |
1467 | ), | |
1468 | ||
1469 | TP_fast_assign( | |
1470 | __entry->vid = vid; | |
1471 | __entry->cb_v_break = cb_v_break; | |
1472 | __entry->reason = reason; | |
1473 | ), | |
1474 | ||
1475 | TP_printk("%llx vb=%x %s", | |
1476 | __entry->vid, | |
1477 | __entry->cb_v_break, | |
1478 | __print_symbolic(__entry->reason, afs_cb_break_reasons)) | |
1479 | ); | |
1480 | ||
051d2525 DH |
1481 | TRACE_EVENT(afs_cb_break, |
1482 | TP_PROTO(struct afs_fid *fid, unsigned int cb_break, | |
1483 | enum afs_cb_break_reason reason, bool skipped), | |
1484 | ||
1485 | TP_ARGS(fid, cb_break, reason, skipped), | |
1486 | ||
1487 | TP_STRUCT__entry( | |
a790c258 DH |
1488 | __field_struct(struct afs_fid, fid) |
1489 | __field(unsigned int, cb_break) | |
1490 | __field(enum afs_cb_break_reason, reason) | |
1491 | __field(bool, skipped) | |
051d2525 DH |
1492 | ), |
1493 | ||
1494 | TP_fast_assign( | |
1495 | __entry->fid = *fid; | |
1496 | __entry->cb_break = cb_break; | |
1497 | __entry->reason = reason; | |
1498 | __entry->skipped = skipped; | |
1499 | ), | |
1500 | ||
1501 | TP_printk("%llx:%llx:%x b=%x s=%u %s", | |
1502 | __entry->fid.vid, __entry->fid.vnode, __entry->fid.unique, | |
1503 | __entry->cb_break, | |
1504 | __entry->skipped, | |
1505 | __print_symbolic(__entry->reason, afs_cb_break_reasons)) | |
1506 | ); | |
1507 | ||
1508 | TRACE_EVENT(afs_cb_miss, | |
1509 | TP_PROTO(struct afs_fid *fid, enum afs_cb_break_reason reason), | |
1510 | ||
1511 | TP_ARGS(fid, reason), | |
1512 | ||
1513 | TP_STRUCT__entry( | |
a790c258 DH |
1514 | __field_struct(struct afs_fid, fid) |
1515 | __field(enum afs_cb_break_reason, reason) | |
051d2525 DH |
1516 | ), |
1517 | ||
1518 | TP_fast_assign( | |
1519 | __entry->fid = *fid; | |
1520 | __entry->reason = reason; | |
1521 | ), | |
1522 | ||
1523 | TP_printk(" %llx:%llx:%x %s", | |
1524 | __entry->fid.vid, __entry->fid.vnode, __entry->fid.unique, | |
1525 | __print_symbolic(__entry->reason, afs_cb_break_reasons)) | |
1526 | ); | |
1527 | ||
45218193 | 1528 | TRACE_EVENT(afs_server, |
2757a4dc | 1529 | TP_PROTO(unsigned int server_debug_id, int ref, int active, |
977e5f8e | 1530 | enum afs_server_trace reason), |
45218193 | 1531 | |
2757a4dc | 1532 | TP_ARGS(server_debug_id, ref, active, reason), |
45218193 DH |
1533 | |
1534 | TP_STRUCT__entry( | |
a790c258 DH |
1535 | __field(unsigned int, server) |
1536 | __field(int, ref) | |
1537 | __field(int, active) | |
1538 | __field(int, reason) | |
45218193 DH |
1539 | ), |
1540 | ||
1541 | TP_fast_assign( | |
2757a4dc | 1542 | __entry->server = server_debug_id; |
977e5f8e DH |
1543 | __entry->ref = ref; |
1544 | __entry->active = active; | |
45218193 DH |
1545 | __entry->reason = reason; |
1546 | ), | |
1547 | ||
76daa300 | 1548 | TP_printk("s=%08x %s r=%d a=%d", |
45218193 DH |
1549 | __entry->server, |
1550 | __print_symbolic(__entry->reason, afs_server_traces), | |
977e5f8e DH |
1551 | __entry->ref, |
1552 | __entry->active) | |
45218193 DH |
1553 | ); |
1554 | ||
cca37d45 | 1555 | TRACE_EVENT(afs_volume, |
4f67bcf6 DH |
1556 | TP_PROTO(unsigned int debug_id, afs_volid_t vid, int ref, |
1557 | enum afs_volume_trace reason), | |
cca37d45 | 1558 | |
4f67bcf6 | 1559 | TP_ARGS(debug_id, vid, ref, reason), |
cca37d45 DH |
1560 | |
1561 | TP_STRUCT__entry( | |
4f67bcf6 | 1562 | __field(unsigned int, debug_id) |
a790c258 DH |
1563 | __field(afs_volid_t, vid) |
1564 | __field(int, ref) | |
1565 | __field(enum afs_volume_trace, reason) | |
cca37d45 DH |
1566 | ), |
1567 | ||
1568 | TP_fast_assign( | |
4f67bcf6 DH |
1569 | __entry->debug_id = debug_id; |
1570 | __entry->vid = vid; | |
1571 | __entry->ref = ref; | |
1572 | __entry->reason = reason; | |
cca37d45 DH |
1573 | ), |
1574 | ||
4f67bcf6 DH |
1575 | TP_printk("V=%08x %s vid=%llx r=%d", |
1576 | __entry->debug_id, | |
cca37d45 | 1577 | __print_symbolic(__entry->reason, afs_volume_traces), |
4f67bcf6 | 1578 | __entry->vid, |
cca37d45 DH |
1579 | __entry->ref) |
1580 | ); | |
1581 | ||
dca54a7b | 1582 | TRACE_EVENT(afs_cell, |
c56f9ec8 | 1583 | TP_PROTO(unsigned int cell_debug_id, int ref, int active, |
dca54a7b DH |
1584 | enum afs_cell_trace reason), |
1585 | ||
c56f9ec8 | 1586 | TP_ARGS(cell_debug_id, ref, active, reason), |
dca54a7b DH |
1587 | |
1588 | TP_STRUCT__entry( | |
a790c258 DH |
1589 | __field(unsigned int, cell) |
1590 | __field(int, ref) | |
1591 | __field(int, active) | |
1592 | __field(int, reason) | |
dca54a7b DH |
1593 | ), |
1594 | ||
1595 | TP_fast_assign( | |
1596 | __entry->cell = cell_debug_id; | |
c56f9ec8 | 1597 | __entry->ref = ref; |
dca54a7b DH |
1598 | __entry->active = active; |
1599 | __entry->reason = reason; | |
1600 | ), | |
1601 | ||
c56f9ec8 | 1602 | TP_printk("L=%08x %s r=%d a=%d", |
dca54a7b DH |
1603 | __entry->cell, |
1604 | __print_symbolic(__entry->reason, afs_cell_traces), | |
c56f9ec8 | 1605 | __entry->ref, |
dca54a7b DH |
1606 | __entry->active) |
1607 | ); | |
1608 | ||
1e5d8493 DH |
1609 | TRACE_EVENT(afs_alist, |
1610 | TP_PROTO(unsigned int alist_debug_id, int ref, enum afs_alist_trace reason), | |
1611 | ||
1612 | TP_ARGS(alist_debug_id, ref, reason), | |
1613 | ||
1614 | TP_STRUCT__entry( | |
1615 | __field(unsigned int, alist) | |
1616 | __field(int, ref) | |
1617 | __field(int, active) | |
1618 | __field(int, reason) | |
1619 | ), | |
1620 | ||
1621 | TP_fast_assign( | |
1622 | __entry->alist = alist_debug_id; | |
1623 | __entry->ref = ref; | |
1624 | __entry->reason = reason; | |
1625 | ), | |
1626 | ||
1627 | TP_printk("AL=%08x %s r=%d", | |
1628 | __entry->alist, | |
1629 | __print_symbolic(__entry->reason, afs_alist_traces), | |
1630 | __entry->ref) | |
1631 | ); | |
1632 | ||
f49b594d DH |
1633 | TRACE_EVENT(afs_estate, |
1634 | TP_PROTO(unsigned int server_debug_id, unsigned int estate_debug_id, | |
1635 | int ref, enum afs_estate_trace reason), | |
1636 | ||
1637 | TP_ARGS(server_debug_id, estate_debug_id, ref, reason), | |
1638 | ||
1639 | TP_STRUCT__entry( | |
1640 | __field(unsigned int, server) | |
1641 | __field(unsigned int, estate) | |
1642 | __field(int, ref) | |
1643 | __field(int, active) | |
1644 | __field(int, reason) | |
1645 | ), | |
1646 | ||
1647 | TP_fast_assign( | |
1648 | __entry->server = server_debug_id; | |
1649 | __entry->estate = estate_debug_id; | |
1650 | __entry->ref = ref; | |
1651 | __entry->reason = reason; | |
1652 | ), | |
1653 | ||
1654 | TP_printk("ES=%08x[%x] %s r=%d", | |
1655 | __entry->server, | |
1656 | __entry->estate, | |
1657 | __print_symbolic(__entry->reason, afs_estate_traces), | |
1658 | __entry->ref) | |
1659 | ); | |
1660 | ||
92f091cd | 1661 | TRACE_EVENT(afs_fs_probe, |
f49b594d | 1662 | TP_PROTO(struct afs_server *server, bool tx, struct afs_endpoint_state *estate, |
92f091cd DH |
1663 | unsigned int addr_index, int error, s32 abort_code, unsigned int rtt_us), |
1664 | ||
f49b594d | 1665 | TP_ARGS(server, tx, estate, addr_index, error, abort_code, rtt_us), |
92f091cd DH |
1666 | |
1667 | TP_STRUCT__entry( | |
1668 | __field(unsigned int, server) | |
f49b594d | 1669 | __field(unsigned int, estate) |
92f091cd DH |
1670 | __field(bool, tx) |
1671 | __field(u16, addr_index) | |
1672 | __field(short, error) | |
1673 | __field(s32, abort_code) | |
1674 | __field(unsigned int, rtt_us) | |
1675 | __field_struct(struct sockaddr_rxrpc, srx) | |
1676 | ), | |
1677 | ||
1678 | TP_fast_assign( | |
f49b594d | 1679 | struct afs_addr_list *alist = estate->addresses; |
92f091cd | 1680 | __entry->server = server->debug_id; |
f49b594d | 1681 | __entry->estate = estate->probe_seq; |
92f091cd DH |
1682 | __entry->tx = tx; |
1683 | __entry->addr_index = addr_index; | |
1684 | __entry->error = error; | |
1685 | __entry->abort_code = abort_code; | |
1686 | __entry->rtt_us = rtt_us; | |
1687 | memcpy(&__entry->srx, rxrpc_kernel_remote_srx(alist->addrs[addr_index].peer), | |
1688 | sizeof(__entry->srx)); | |
1689 | ), | |
1690 | ||
f49b594d DH |
1691 | TP_printk("s=%08x %s pq=%x ax=%u e=%d ac=%d rtt=%d %pISpc", |
1692 | __entry->server, __entry->tx ? "tx" : "rx", __entry->estate, | |
1693 | __entry->addr_index, __entry->error, __entry->abort_code, __entry->rtt_us, | |
92f091cd DH |
1694 | &__entry->srx.transport) |
1695 | ); | |
1696 | ||
e6a7d7f7 DH |
1697 | TRACE_EVENT(afs_vl_probe, |
1698 | TP_PROTO(struct afs_vlserver *server, bool tx, struct afs_addr_list *alist, | |
1699 | unsigned int addr_index, int error, s32 abort_code, unsigned int rtt_us), | |
1700 | ||
1701 | TP_ARGS(server, tx, alist, addr_index, error, abort_code, rtt_us), | |
1702 | ||
1703 | TP_STRUCT__entry( | |
1704 | __field(unsigned int, server) | |
1705 | __field(bool, tx) | |
1706 | __field(unsigned short, flags) | |
1707 | __field(u16, addr_index) | |
1708 | __field(short, error) | |
1709 | __field(s32, abort_code) | |
1710 | __field(unsigned int, rtt_us) | |
1711 | __field_struct(struct sockaddr_rxrpc, srx) | |
1712 | ), | |
1713 | ||
1714 | TP_fast_assign( | |
1715 | __entry->server = server->debug_id; | |
1716 | __entry->tx = tx; | |
1717 | __entry->addr_index = addr_index; | |
1718 | __entry->error = error; | |
1719 | __entry->abort_code = abort_code; | |
1720 | __entry->rtt_us = rtt_us; | |
1721 | memcpy(&__entry->srx, rxrpc_kernel_remote_srx(alist->addrs[addr_index].peer), | |
1722 | sizeof(__entry->srx)); | |
1723 | ), | |
1724 | ||
1725 | TP_printk("vl=%08x %s ax=%u e=%d ac=%d rtt=%d %pISpc", | |
1726 | __entry->server, __entry->tx ? "tx" : "rx", __entry->addr_index, | |
1727 | __entry->error, __entry->abort_code, __entry->rtt_us, | |
1728 | &__entry->srx.transport) | |
1729 | ); | |
1730 | ||
495f2ae9 DH |
1731 | TRACE_EVENT(afs_rotate, |
1732 | TP_PROTO(struct afs_operation *op, enum afs_rotate_trace reason, unsigned int extra), | |
1733 | ||
1734 | TP_ARGS(op, reason, extra), | |
1735 | ||
1736 | TP_STRUCT__entry( | |
1737 | __field(unsigned int, op) | |
1738 | __field(unsigned int, flags) | |
1739 | __field(unsigned int, extra) | |
1740 | __field(unsigned short, iteration) | |
1741 | __field(short, server_index) | |
1742 | __field(short, addr_index) | |
1743 | __field(enum afs_rotate_trace, reason) | |
1744 | ), | |
1745 | ||
1746 | TP_fast_assign( | |
1747 | __entry->op = op->debug_id; | |
1748 | __entry->flags = op->flags; | |
1749 | __entry->iteration = op->nr_iterations; | |
1750 | __entry->server_index = op->server_index; | |
1751 | __entry->addr_index = op->addr_index; | |
1752 | __entry->reason = reason; | |
1753 | __entry->extra = extra; | |
1754 | ), | |
1755 | ||
1756 | TP_printk("OP=%08x it=%02x %s fl=%x sx=%d ax=%d ext=%d", | |
1757 | __entry->op, | |
1758 | __entry->iteration, | |
1759 | __print_symbolic(__entry->reason, afs_rotate_traces), | |
1760 | __entry->flags, | |
1761 | __entry->server_index, | |
1762 | __entry->addr_index, | |
1763 | __entry->extra) | |
1764 | ); | |
1765 | ||
abcbd3bf DH |
1766 | TRACE_EVENT(afs_make_call, |
1767 | TP_PROTO(struct afs_call *call), | |
1768 | ||
1769 | TP_ARGS(call), | |
1770 | ||
1771 | TP_STRUCT__entry( | |
1772 | __field(unsigned int, call) | |
1773 | __field(bool, is_vl) | |
1774 | __field(enum afs_fs_operation, op) | |
1775 | __field_struct(struct afs_fid, fid) | |
1776 | __field_struct(struct sockaddr_rxrpc, srx) | |
1777 | ), | |
1778 | ||
1779 | TP_fast_assign( | |
1780 | __entry->call = call->debug_id; | |
1781 | __entry->op = call->operation_ID; | |
1782 | __entry->fid = call->fid; | |
1783 | memcpy(&__entry->srx, rxrpc_kernel_remote_srx(call->peer), | |
1784 | sizeof(__entry->srx)); | |
1785 | __entry->srx.srx_service = call->service_id; | |
1786 | __entry->is_vl = (__entry->srx.srx_service == VL_SERVICE || | |
1787 | __entry->srx.srx_service == YFS_VL_SERVICE); | |
1788 | ), | |
1789 | ||
1790 | TP_printk("c=%08x %pISpc+%u %s %llx:%llx:%x", | |
1791 | __entry->call, | |
1792 | &__entry->srx.transport, | |
1793 | __entry->srx.srx_service, | |
1794 | __entry->is_vl ? | |
1795 | __print_symbolic(__entry->op, afs_vl_operations) : | |
1796 | __print_symbolic(__entry->op, afs_fs_operations), | |
1797 | __entry->fid.vid, | |
1798 | __entry->fid.vnode, | |
1799 | __entry->fid.unique) | |
1800 | ); | |
1801 | ||
3c49e529 DH |
1802 | TRACE_EVENT(afs_read_recv, |
1803 | TP_PROTO(const struct afs_operation *op, const struct afs_call *call), | |
1804 | ||
1805 | TP_ARGS(op, call), | |
1806 | ||
1807 | TP_STRUCT__entry( | |
1808 | __field(unsigned int, rreq) | |
1809 | __field(unsigned int, sreq) | |
1810 | __field(unsigned int, op) | |
1811 | __field(unsigned int, op_flags) | |
1812 | __field(unsigned int, call) | |
1813 | __field(enum afs_call_state, call_state) | |
1814 | ), | |
1815 | ||
1816 | TP_fast_assign( | |
1817 | __entry->op = op->debug_id; | |
1818 | __entry->sreq = op->fetch.subreq->debug_index; | |
1819 | __entry->rreq = op->fetch.subreq->rreq->debug_id; | |
1820 | __entry->op_flags = op->flags; | |
1821 | __entry->call = call->debug_id; | |
1822 | __entry->call_state = call->state; | |
1823 | ), | |
1824 | ||
1825 | TP_printk("R=%08x[%x] OP=%08x c=%08x cs=%x of=%x", | |
1826 | __entry->rreq, __entry->sreq, | |
1827 | __entry->op, | |
1828 | __entry->call, __entry->call_state, | |
1829 | __entry->op_flags) | |
1830 | ); | |
1831 | ||
8e8d7f13 DH |
1832 | #endif /* _TRACE_AFS_H */ |
1833 | ||
1834 | /* This part must be outside protection */ | |
1835 | #include <trace/define_trace.h> |