1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #undef TRACE_SYSTEM 3 #define TRACE_SYSTEM ocfs2 4 5 #if !defined(_TRACE_OCFS2_H) || defined(TRACE_HEADER_MULTI_READ) 6 #define _TRACE_OCFS2_H 7 8 #include <linux/tracepoint.h> 9 10 DECLARE_EVENT_CLASS(ocfs2__int, 11 TP_PROTO(int num), 12 TP_ARGS(num), 13 TP_STRUCT__entry( 14 __field(int, num) 15 ), 16 TP_fast_assign( 17 __entry->num = num; 18 ), 19 TP_printk("%d", __entry->num) 20 ); 21 22 #define DEFINE_OCFS2_INT_EVENT(name) \ 23 DEFINE_EVENT(ocfs2__int, name, \ 24 TP_PROTO(int num), \ 25 TP_ARGS(num)) 26 27 DECLARE_EVENT_CLASS(ocfs2__uint, 28 TP_PROTO(unsigned int num), 29 TP_ARGS(num), 30 TP_STRUCT__entry( 31 __field( unsigned int, num ) 32 ), 33 TP_fast_assign( 34 __entry->num = num; 35 ), 36 TP_printk("%u", __entry->num) 37 ); 38 39 #define DEFINE_OCFS2_UINT_EVENT(name) \ 40 DEFINE_EVENT(ocfs2__uint, name, \ 41 TP_PROTO(unsigned int num), \ 42 TP_ARGS(num)) 43 44 DECLARE_EVENT_CLASS(ocfs2__ull, 45 TP_PROTO(unsigned long long blkno), 46 TP_ARGS(blkno), 47 TP_STRUCT__entry( 48 __field(unsigned long long, blkno) 49 ), 50 TP_fast_assign( 51 __entry->blkno = blkno; 52 ), 53 TP_printk("%llu", __entry->blkno) 54 ); 55 56 #define DEFINE_OCFS2_ULL_EVENT(name) \ 57 DEFINE_EVENT(ocfs2__ull, name, \ 58 TP_PROTO(unsigned long long num), \ 59 TP_ARGS(num)) 60 61 DECLARE_EVENT_CLASS(ocfs2__pointer, 62 TP_PROTO(void *pointer), 63 TP_ARGS(pointer), 64 TP_STRUCT__entry( 65 __field(void *, pointer) 66 ), 67 TP_fast_assign( 68 __entry->pointer = pointer; 69 ), 70 TP_printk("%p", __entry->pointer) 71 ); 72 73 #define DEFINE_OCFS2_POINTER_EVENT(name) \ 74 DEFINE_EVENT(ocfs2__pointer, name, \ 75 TP_PROTO(void *pointer), \ 76 TP_ARGS(pointer)) 77 78 DECLARE_EVENT_CLASS(ocfs2__string, 79 TP_PROTO(const char *name), 80 TP_ARGS(name), 81 TP_STRUCT__entry( 82 __string(name,name) 83 ), 84 TP_fast_assign( 85 __assign_str(name, name); 86 ), 87 TP_printk("%s", __get_str(name)) 88 ); 89 90 #define DEFINE_OCFS2_STRING_EVENT(name) \ 91 DEFINE_EVENT(ocfs2__string, name, \ 92 TP_PROTO(const char *name), \ 93 TP_ARGS(name)) 94 95 DECLARE_EVENT_CLASS(ocfs2__int_int, 96 TP_PROTO(int value1, int value2), 97 TP_ARGS(value1, value2), 98 TP_STRUCT__entry( 99 __field(int, value1) 100 __field(int, value2) 101 ), 102 TP_fast_assign( 103 __entry->value1 = value1; 104 __entry->value2 = value2; 105 ), 106 TP_printk("%d %d", __entry->value1, __entry->value2) 107 ); 108 109 #define DEFINE_OCFS2_INT_INT_EVENT(name) \ 110 DEFINE_EVENT(ocfs2__int_int, name, \ 111 TP_PROTO(int val1, int val2), \ 112 TP_ARGS(val1, val2)) 113 114 DECLARE_EVENT_CLASS(ocfs2__uint_int, 115 TP_PROTO(unsigned int value1, int value2), 116 TP_ARGS(value1, value2), 117 TP_STRUCT__entry( 118 __field(unsigned int, value1) 119 __field(int, value2) 120 ), 121 TP_fast_assign( 122 __entry->value1 = value1; 123 __entry->value2 = value2; 124 ), 125 TP_printk("%u %d", __entry->value1, __entry->value2) 126 ); 127 128 #define DEFINE_OCFS2_UINT_INT_EVENT(name) \ 129 DEFINE_EVENT(ocfs2__uint_int, name, \ 130 TP_PROTO(unsigned int val1, int val2), \ 131 TP_ARGS(val1, val2)) 132 133 DECLARE_EVENT_CLASS(ocfs2__uint_uint, 134 TP_PROTO(unsigned int value1, unsigned int value2), 135 TP_ARGS(value1, value2), 136 TP_STRUCT__entry( 137 __field(unsigned int, value1) 138 __field(unsigned int, value2) 139 ), 140 TP_fast_assign( 141 __entry->value1 = value1; 142 __entry->value2 = value2; 143 ), 144 TP_printk("%u %u", __entry->value1, __entry->value2) 145 ); 146 147 #define DEFINE_OCFS2_UINT_UINT_EVENT(name) \ 148 DEFINE_EVENT(ocfs2__uint_uint, name, \ 149 TP_PROTO(unsigned int val1, unsigned int val2), \ 150 TP_ARGS(val1, val2)) 151 152 DECLARE_EVENT_CLASS(ocfs2__ull_uint, 153 TP_PROTO(unsigned long long value1, unsigned int value2), 154 TP_ARGS(value1, value2), 155 TP_STRUCT__entry( 156 __field(unsigned long long, value1) 157 __field(unsigned int, value2) 158 ), 159 TP_fast_assign( 160 __entry->value1 = value1; 161 __entry->value2 = value2; 162 ), 163 TP_printk("%llu %u", __entry->value1, __entry->value2) 164 ); 165 166 #define DEFINE_OCFS2_ULL_UINT_EVENT(name) \ 167 DEFINE_EVENT(ocfs2__ull_uint, name, \ 168 TP_PROTO(unsigned long long val1, unsigned int val2), \ 169 TP_ARGS(val1, val2)) 170 171 DECLARE_EVENT_CLASS(ocfs2__ull_int, 172 TP_PROTO(unsigned long long value1, int value2), 173 TP_ARGS(value1, value2), 174 TP_STRUCT__entry( 175 __field(unsigned long long, value1) 176 __field(int, value2) 177 ), 178 TP_fast_assign( 179 __entry->value1 = value1; 180 __entry->value2 = value2; 181 ), 182 TP_printk("%llu %d", __entry->value1, __entry->value2) 183 ); 184 185 #define DEFINE_OCFS2_ULL_INT_EVENT(name) \ 186 DEFINE_EVENT(ocfs2__ull_int, name, \ 187 TP_PROTO(unsigned long long val1, int val2), \ 188 TP_ARGS(val1, val2)) 189 190 DECLARE_EVENT_CLASS(ocfs2__ull_ull, 191 TP_PROTO(unsigned long long value1, unsigned long long value2), 192 TP_ARGS(value1, value2), 193 TP_STRUCT__entry( 194 __field(unsigned long long, value1) 195 __field(unsigned long long, value2) 196 ), 197 TP_fast_assign( 198 __entry->value1 = value1; 199 __entry->value2 = value2; 200 ), 201 TP_printk("%llu %llu", __entry->value1, __entry->value2) 202 ); 203 204 #define DEFINE_OCFS2_ULL_ULL_EVENT(name) \ 205 DEFINE_EVENT(ocfs2__ull_ull, name, \ 206 TP_PROTO(unsigned long long val1, unsigned long long val2), \ 207 TP_ARGS(val1, val2)) 208 209 DECLARE_EVENT_CLASS(ocfs2__ull_ull_uint, 210 TP_PROTO(unsigned long long value1, 211 unsigned long long value2, unsigned int value3), 212 TP_ARGS(value1, value2, value3), 213 TP_STRUCT__entry( 214 __field(unsigned long long, value1) 215 __field(unsigned long long, value2) 216 __field(unsigned int, value3) 217 ), 218 TP_fast_assign( 219 __entry->value1 = value1; 220 __entry->value2 = value2; 221 __entry->value3 = value3; 222 ), 223 TP_printk("%llu %llu %u", 224 __entry->value1, __entry->value2, __entry->value3) 225 ); 226 227 #define DEFINE_OCFS2_ULL_ULL_UINT_EVENT(name) \ 228 DEFINE_EVENT(ocfs2__ull_ull_uint, name, \ 229 TP_PROTO(unsigned long long val1, \ 230 unsigned long long val2, unsigned int val3), \ 231 TP_ARGS(val1, val2, val3)) 232 233 DECLARE_EVENT_CLASS(ocfs2__ull_uint_uint, 234 TP_PROTO(unsigned long long value1, 235 unsigned int value2, unsigned int value3), 236 TP_ARGS(value1, value2, value3), 237 TP_STRUCT__entry( 238 __field(unsigned long long, value1) 239 __field(unsigned int, value2) 240 __field(unsigned int, value3) 241 ), 242 TP_fast_assign( 243 __entry->value1 = value1; 244 __entry->value2 = value2; 245 __entry->value3 = value3; 246 ), 247 TP_printk("%llu %u %u", __entry->value1, 248 __entry->value2, __entry->value3) 249 ); 250 251 #define DEFINE_OCFS2_ULL_UINT_UINT_EVENT(name) \ 252 DEFINE_EVENT(ocfs2__ull_uint_uint, name, \ 253 TP_PROTO(unsigned long long val1, \ 254 unsigned int val2, unsigned int val3), \ 255 TP_ARGS(val1, val2, val3)) 256 257 DECLARE_EVENT_CLASS(ocfs2__uint_uint_uint, 258 TP_PROTO(unsigned int value1, unsigned int value2, 259 unsigned int value3), 260 TP_ARGS(value1, value2, value3), 261 TP_STRUCT__entry( 262 __field( unsigned int, value1 ) 263 __field( unsigned int, value2 ) 264 __field( unsigned int, value3 ) 265 ), 266 TP_fast_assign( 267 __entry->value1 = value1; 268 __entry->value2 = value2; 269 __entry->value3 = value3; 270 ), 271 TP_printk("%u %u %u", __entry->value1, __entry->value2, __entry->value3) 272 ); 273 274 #define DEFINE_OCFS2_UINT_UINT_UINT_EVENT(name) \ 275 DEFINE_EVENT(ocfs2__uint_uint_uint, name, \ 276 TP_PROTO(unsigned int value1, unsigned int value2, \ 277 unsigned int value3), \ 278 TP_ARGS(value1, value2, value3)) 279 280 DECLARE_EVENT_CLASS(ocfs2__ull_ull_ull, 281 TP_PROTO(unsigned long long value1, 282 unsigned long long value2, unsigned long long value3), 283 TP_ARGS(value1, value2, value3), 284 TP_STRUCT__entry( 285 __field(unsigned long long, value1) 286 __field(unsigned long long, value2) 287 __field(unsigned long long, value3) 288 ), 289 TP_fast_assign( 290 __entry->value1 = value1; 291 __entry->value2 = value2; 292 __entry->value3 = value3; 293 ), 294 TP_printk("%llu %llu %llu", 295 __entry->value1, __entry->value2, __entry->value3) 296 ); 297 298 #define DEFINE_OCFS2_ULL_ULL_ULL_EVENT(name) \ 299 DEFINE_EVENT(ocfs2__ull_ull_ull, name, \ 300 TP_PROTO(unsigned long long value1, unsigned long long value2, \ 301 unsigned long long value3), \ 302 TP_ARGS(value1, value2, value3)) 303 304 DECLARE_EVENT_CLASS(ocfs2__ull_int_int_int, 305 TP_PROTO(unsigned long long ull, int value1, int value2, int value3), 306 TP_ARGS(ull, value1, value2, value3), 307 TP_STRUCT__entry( 308 __field( unsigned long long, ull ) 309 __field( int, value1 ) 310 __field( int, value2 ) 311 __field( int, value3 ) 312 ), 313 TP_fast_assign( 314 __entry->ull = ull; 315 __entry->value1 = value1; 316 __entry->value2 = value2; 317 __entry->value3 = value3; 318 ), 319 TP_printk("%llu %d %d %d", 320 __entry->ull, __entry->value1, 321 __entry->value2, __entry->value3) 322 ); 323 324 #define DEFINE_OCFS2_ULL_INT_INT_INT_EVENT(name) \ 325 DEFINE_EVENT(ocfs2__ull_int_int_int, name, \ 326 TP_PROTO(unsigned long long ull, int value1, \ 327 int value2, int value3), \ 328 TP_ARGS(ull, value1, value2, value3)) 329 330 DECLARE_EVENT_CLASS(ocfs2__ull_uint_uint_uint, 331 TP_PROTO(unsigned long long ull, unsigned int value1, 332 unsigned int value2, unsigned int value3), 333 TP_ARGS(ull, value1, value2, value3), 334 TP_STRUCT__entry( 335 __field(unsigned long long, ull) 336 __field(unsigned int, value1) 337 __field(unsigned int, value2) 338 __field(unsigned int, value3) 339 ), 340 TP_fast_assign( 341 __entry->ull = ull; 342 __entry->value1 = value1; 343 __entry->value2 = value2; 344 __entry->value3 = value3; 345 ), 346 TP_printk("%llu %u %u %u", 347 __entry->ull, __entry->value1, 348 __entry->value2, __entry->value3) 349 ); 350 351 #define DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(name) \ 352 DEFINE_EVENT(ocfs2__ull_uint_uint_uint, name, \ 353 TP_PROTO(unsigned long long ull, unsigned int value1, \ 354 unsigned int value2, unsigned int value3), \ 355 TP_ARGS(ull, value1, value2, value3)) 356 357 DECLARE_EVENT_CLASS(ocfs2__ull_ull_uint_uint, 358 TP_PROTO(unsigned long long value1, unsigned long long value2, 359 unsigned int value3, unsigned int value4), 360 TP_ARGS(value1, value2, value3, value4), 361 TP_STRUCT__entry( 362 __field(unsigned long long, value1) 363 __field(unsigned long long, value2) 364 __field(unsigned int, value3) 365 __field(unsigned int, value4) 366 ), 367 TP_fast_assign( 368 __entry->value1 = value1; 369 __entry->value2 = value2; 370 __entry->value3 = value3; 371 __entry->value4 = value4; 372 ), 373 TP_printk("%llu %llu %u %u", 374 __entry->value1, __entry->value2, 375 __entry->value3, __entry->value4) 376 ); 377 378 #define DEFINE_OCFS2_ULL_ULL_UINT_UINT_EVENT(name) \ 379 DEFINE_EVENT(ocfs2__ull_ull_uint_uint, name, \ 380 TP_PROTO(unsigned long long ull, unsigned long long ull1, \ 381 unsigned int value2, unsigned int value3), \ 382 TP_ARGS(ull, ull1, value2, value3)) 383 384 /* Trace events for fs/ocfs2/alloc.c. */ 385 DECLARE_EVENT_CLASS(ocfs2__btree_ops, 386 TP_PROTO(unsigned long long owner,\ 387 unsigned int value1, unsigned int value2), 388 TP_ARGS(owner, value1, value2), 389 TP_STRUCT__entry( 390 __field(unsigned long long, owner) 391 __field(unsigned int, value1) 392 __field(unsigned int, value2) 393 ), 394 TP_fast_assign( 395 __entry->owner = owner; 396 __entry->value1 = value1; 397 __entry->value2 = value2; 398 ), 399 TP_printk("%llu %u %u", 400 __entry->owner, __entry->value1, __entry->value2) 401 ); 402 403 #define DEFINE_OCFS2_BTREE_EVENT(name) \ 404 DEFINE_EVENT(ocfs2__btree_ops, name, \ 405 TP_PROTO(unsigned long long owner, \ 406 unsigned int value1, unsigned int value2), \ 407 TP_ARGS(owner, value1, value2)) 408 409 DEFINE_OCFS2_BTREE_EVENT(ocfs2_adjust_rightmost_branch); 410 411 DEFINE_OCFS2_BTREE_EVENT(ocfs2_rotate_tree_right); 412 413 DEFINE_OCFS2_BTREE_EVENT(ocfs2_append_rec_to_path); 414 415 DEFINE_OCFS2_BTREE_EVENT(ocfs2_insert_extent_start); 416 417 DEFINE_OCFS2_BTREE_EVENT(ocfs2_add_clusters_in_btree); 418 419 DEFINE_OCFS2_INT_EVENT(ocfs2_num_free_extents); 420 421 DEFINE_OCFS2_INT_EVENT(ocfs2_complete_edge_insert); 422 423 TRACE_EVENT(ocfs2_grow_tree, 424 TP_PROTO(unsigned long long owner, int depth), 425 TP_ARGS(owner, depth), 426 TP_STRUCT__entry( 427 __field(unsigned long long, owner) 428 __field(int, depth) 429 ), 430 TP_fast_assign( 431 __entry->owner = owner; 432 __entry->depth = depth; 433 ), 434 TP_printk("%llu %d", __entry->owner, __entry->depth) 435 ); 436 437 TRACE_EVENT(ocfs2_rotate_subtree, 438 TP_PROTO(int subtree_root, unsigned long long blkno, 439 int depth), 440 TP_ARGS(subtree_root, blkno, depth), 441 TP_STRUCT__entry( 442 __field(int, subtree_root) 443 __field(unsigned long long, blkno) 444 __field(int, depth) 445 ), 446 TP_fast_assign( 447 __entry->subtree_root = subtree_root; 448 __entry->blkno = blkno; 449 __entry->depth = depth; 450 ), 451 TP_printk("%d %llu %d", __entry->subtree_root, 452 __entry->blkno, __entry->depth) 453 ); 454 455 TRACE_EVENT(ocfs2_insert_extent, 456 TP_PROTO(unsigned int ins_appending, unsigned int ins_contig, 457 int ins_contig_index, int free_records, int ins_tree_depth), 458 TP_ARGS(ins_appending, ins_contig, ins_contig_index, free_records, 459 ins_tree_depth), 460 TP_STRUCT__entry( 461 __field(unsigned int, ins_appending) 462 __field(unsigned int, ins_contig) 463 __field(int, ins_contig_index) 464 __field(int, free_records) 465 __field(int, ins_tree_depth) 466 ), 467 TP_fast_assign( 468 __entry->ins_appending = ins_appending; 469 __entry->ins_contig = ins_contig; 470 __entry->ins_contig_index = ins_contig_index; 471 __entry->free_records = free_records; 472 __entry->ins_tree_depth = ins_tree_depth; 473 ), 474 TP_printk("%u %u %d %d %d", 475 __entry->ins_appending, __entry->ins_contig, 476 __entry->ins_contig_index, __entry->free_records, 477 __entry->ins_tree_depth) 478 ); 479 480 TRACE_EVENT(ocfs2_split_extent, 481 TP_PROTO(int split_index, unsigned int c_contig_type, 482 unsigned int c_has_empty_extent, 483 unsigned int c_split_covers_rec), 484 TP_ARGS(split_index, c_contig_type, 485 c_has_empty_extent, c_split_covers_rec), 486 TP_STRUCT__entry( 487 __field(int, split_index) 488 __field(unsigned int, c_contig_type) 489 __field(unsigned int, c_has_empty_extent) 490 __field(unsigned int, c_split_covers_rec) 491 ), 492 TP_fast_assign( 493 __entry->split_index = split_index; 494 __entry->c_contig_type = c_contig_type; 495 __entry->c_has_empty_extent = c_has_empty_extent; 496 __entry->c_split_covers_rec = c_split_covers_rec; 497 ), 498 TP_printk("%d %u %u %u", __entry->split_index, __entry->c_contig_type, 499 __entry->c_has_empty_extent, __entry->c_split_covers_rec) 500 ); 501 502 TRACE_EVENT(ocfs2_remove_extent, 503 TP_PROTO(unsigned long long owner, unsigned int cpos, 504 unsigned int len, int index, 505 unsigned int e_cpos, unsigned int clusters), 506 TP_ARGS(owner, cpos, len, index, e_cpos, clusters), 507 TP_STRUCT__entry( 508 __field(unsigned long long, owner) 509 __field(unsigned int, cpos) 510 __field(unsigned int, len) 511 __field(int, index) 512 __field(unsigned int, e_cpos) 513 __field(unsigned int, clusters) 514 ), 515 TP_fast_assign( 516 __entry->owner = owner; 517 __entry->cpos = cpos; 518 __entry->len = len; 519 __entry->index = index; 520 __entry->e_cpos = e_cpos; 521 __entry->clusters = clusters; 522 ), 523 TP_printk("%llu %u %u %d %u %u", 524 __entry->owner, __entry->cpos, __entry->len, __entry->index, 525 __entry->e_cpos, __entry->clusters) 526 ); 527 528 TRACE_EVENT(ocfs2_commit_truncate, 529 TP_PROTO(unsigned long long ino, unsigned int new_cpos, 530 unsigned int clusters, unsigned int depth), 531 TP_ARGS(ino, new_cpos, clusters, depth), 532 TP_STRUCT__entry( 533 __field(unsigned long long, ino) 534 __field(unsigned int, new_cpos) 535 __field(unsigned int, clusters) 536 __field(unsigned int, depth) 537 ), 538 TP_fast_assign( 539 __entry->ino = ino; 540 __entry->new_cpos = new_cpos; 541 __entry->clusters = clusters; 542 __entry->depth = depth; 543 ), 544 TP_printk("%llu %u %u %u", 545 __entry->ino, __entry->new_cpos, 546 __entry->clusters, __entry->depth) 547 ); 548 549 TRACE_EVENT(ocfs2_validate_extent_block, 550 TP_PROTO(unsigned long long blkno), 551 TP_ARGS(blkno), 552 TP_STRUCT__entry( 553 __field(unsigned long long, blkno) 554 ), 555 TP_fast_assign( 556 __entry->blkno = blkno; 557 ), 558 TP_printk("%llu ", __entry->blkno) 559 ); 560 561 TRACE_EVENT(ocfs2_rotate_leaf, 562 TP_PROTO(unsigned int insert_cpos, int insert_index, 563 int has_empty, int next_free, 564 unsigned int l_count), 565 TP_ARGS(insert_cpos, insert_index, has_empty, 566 next_free, l_count), 567 TP_STRUCT__entry( 568 __field(unsigned int, insert_cpos) 569 __field(int, insert_index) 570 __field(int, has_empty) 571 __field(int, next_free) 572 __field(unsigned int, l_count) 573 ), 574 TP_fast_assign( 575 __entry->insert_cpos = insert_cpos; 576 __entry->insert_index = insert_index; 577 __entry->has_empty = has_empty; 578 __entry->next_free = next_free; 579 __entry->l_count = l_count; 580 ), 581 TP_printk("%u %d %d %d %u", __entry->insert_cpos, 582 __entry->insert_index, __entry->has_empty, 583 __entry->next_free, __entry->l_count) 584 ); 585 586 TRACE_EVENT(ocfs2_add_clusters_in_btree_ret, 587 TP_PROTO(int status, int reason, int err), 588 TP_ARGS(status, reason, err), 589 TP_STRUCT__entry( 590 __field(int, status) 591 __field(int, reason) 592 __field(int, err) 593 ), 594 TP_fast_assign( 595 __entry->status = status; 596 __entry->reason = reason; 597 __entry->err = err; 598 ), 599 TP_printk("%d %d %d", __entry->status, 600 __entry->reason, __entry->err) 601 ); 602 603 TRACE_EVENT(ocfs2_mark_extent_written, 604 TP_PROTO(unsigned long long owner, unsigned int cpos, 605 unsigned int len, unsigned int phys), 606 TP_ARGS(owner, cpos, len, phys), 607 TP_STRUCT__entry( 608 __field(unsigned long long, owner) 609 __field(unsigned int, cpos) 610 __field(unsigned int, len) 611 __field(unsigned int, phys) 612 ), 613 TP_fast_assign( 614 __entry->owner = owner; 615 __entry->cpos = cpos; 616 __entry->len = len; 617 __entry->phys = phys; 618 ), 619 TP_printk("%llu %u %u %u", 620 __entry->owner, __entry->cpos, 621 __entry->len, __entry->phys) 622 ); 623 624 DECLARE_EVENT_CLASS(ocfs2__truncate_log_ops, 625 TP_PROTO(unsigned long long blkno, int index, 626 unsigned int start, unsigned int num), 627 TP_ARGS(blkno, index, start, num), 628 TP_STRUCT__entry( 629 __field(unsigned long long, blkno) 630 __field(int, index) 631 __field(unsigned int, start) 632 __field(unsigned int, num) 633 ), 634 TP_fast_assign( 635 __entry->blkno = blkno; 636 __entry->index = index; 637 __entry->start = start; 638 __entry->num = num; 639 ), 640 TP_printk("%llu %d %u %u", 641 __entry->blkno, __entry->index, 642 __entry->start, __entry->num) 643 ); 644 645 #define DEFINE_OCFS2_TRUNCATE_LOG_OPS_EVENT(name) \ 646 DEFINE_EVENT(ocfs2__truncate_log_ops, name, \ 647 TP_PROTO(unsigned long long blkno, int index, \ 648 unsigned int start, unsigned int num), \ 649 TP_ARGS(blkno, index, start, num)) 650 651 DEFINE_OCFS2_TRUNCATE_LOG_OPS_EVENT(ocfs2_truncate_log_append); 652 653 DEFINE_OCFS2_TRUNCATE_LOG_OPS_EVENT(ocfs2_replay_truncate_records); 654 655 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_flush_truncate_log); 656 657 DEFINE_OCFS2_INT_EVENT(ocfs2_begin_truncate_log_recovery); 658 659 DEFINE_OCFS2_INT_EVENT(ocfs2_truncate_log_recovery_num); 660 661 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_complete_truncate_log_recovery); 662 663 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_free_cached_blocks); 664 665 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_cache_cluster_dealloc); 666 667 DEFINE_OCFS2_INT_INT_EVENT(ocfs2_run_deallocs); 668 669 TRACE_EVENT(ocfs2_cache_block_dealloc, 670 TP_PROTO(int type, int slot, unsigned long long suballoc, 671 unsigned long long blkno, unsigned int bit), 672 TP_ARGS(type, slot, suballoc, blkno, bit), 673 TP_STRUCT__entry( 674 __field(int, type) 675 __field(int, slot) 676 __field(unsigned long long, suballoc) 677 __field(unsigned long long, blkno) 678 __field(unsigned int, bit) 679 ), 680 TP_fast_assign( 681 __entry->type = type; 682 __entry->slot = slot; 683 __entry->suballoc = suballoc; 684 __entry->blkno = blkno; 685 __entry->bit = bit; 686 ), 687 TP_printk("%d %d %llu %llu %u", 688 __entry->type, __entry->slot, __entry->suballoc, 689 __entry->blkno, __entry->bit) 690 ); 691 692 TRACE_EVENT(ocfs2_trim_extent, 693 TP_PROTO(struct super_block *sb, unsigned long long blk, 694 unsigned long long count), 695 TP_ARGS(sb, blk, count), 696 TP_STRUCT__entry( 697 __field(int, dev_major) 698 __field(int, dev_minor) 699 __field(unsigned long long, blk) 700 __field(__u64, count) 701 ), 702 TP_fast_assign( 703 __entry->dev_major = MAJOR(sb->s_dev); 704 __entry->dev_minor = MINOR(sb->s_dev); 705 __entry->blk = blk; 706 __entry->count = count; 707 ), 708 TP_printk("%d %d %llu %llu", 709 __entry->dev_major, __entry->dev_minor, 710 __entry->blk, __entry->count) 711 ); 712 713 DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_trim_group); 714 715 DEFINE_OCFS2_ULL_ULL_ULL_EVENT(ocfs2_trim_mainbm); 716 717 DEFINE_OCFS2_ULL_ULL_ULL_EVENT(ocfs2_trim_fs); 718 719 /* End of trace events for fs/ocfs2/alloc.c. */ 720 721 /* Trace events for fs/ocfs2/localalloc.c. */ 722 723 DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_la_set_sizes); 724 725 DEFINE_OCFS2_ULL_INT_INT_INT_EVENT(ocfs2_alloc_should_use_local); 726 727 DEFINE_OCFS2_INT_EVENT(ocfs2_load_local_alloc); 728 729 DEFINE_OCFS2_INT_EVENT(ocfs2_begin_local_alloc_recovery); 730 731 DEFINE_OCFS2_ULL_INT_INT_INT_EVENT(ocfs2_reserve_local_alloc_bits); 732 733 DEFINE_OCFS2_UINT_EVENT(ocfs2_local_alloc_count_bits); 734 735 DEFINE_OCFS2_INT_INT_EVENT(ocfs2_local_alloc_find_clear_bits_search_bitmap); 736 737 DEFINE_OCFS2_ULL_INT_INT_INT_EVENT(ocfs2_local_alloc_find_clear_bits); 738 739 DEFINE_OCFS2_INT_INT_EVENT(ocfs2_sync_local_to_main); 740 741 TRACE_EVENT(ocfs2_sync_local_to_main_free, 742 TP_PROTO(int count, int bit, unsigned long long start_blk, 743 unsigned long long blkno), 744 TP_ARGS(count, bit, start_blk, blkno), 745 TP_STRUCT__entry( 746 __field(int, count) 747 __field(int, bit) 748 __field(unsigned long long, start_blk) 749 __field(unsigned long long, blkno) 750 ), 751 TP_fast_assign( 752 __entry->count = count; 753 __entry->bit = bit; 754 __entry->start_blk = start_blk; 755 __entry->blkno = blkno; 756 ), 757 TP_printk("%d %d %llu %llu", 758 __entry->count, __entry->bit, __entry->start_blk, 759 __entry->blkno) 760 ); 761 762 DEFINE_OCFS2_INT_INT_EVENT(ocfs2_local_alloc_new_window); 763 764 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_local_alloc_new_window_result); 765 766 /* End of trace events for fs/ocfs2/localalloc.c. */ 767 768 /* Trace events for fs/ocfs2/resize.c. */ 769 770 DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_update_last_group_and_inode); 771 772 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_group_extend); 773 774 DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_group_add); 775 776 /* End of trace events for fs/ocfs2/resize.c. */ 777 778 /* Trace events for fs/ocfs2/suballoc.c. */ 779 780 DEFINE_OCFS2_ULL_EVENT(ocfs2_validate_group_descriptor); 781 782 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_block_group_alloc_contig); 783 784 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_block_group_alloc_discontig); 785 786 DEFINE_OCFS2_ULL_EVENT(ocfs2_block_group_alloc); 787 788 DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_reserve_suballoc_bits_nospc); 789 790 DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_reserve_suballoc_bits_no_new_group); 791 792 DEFINE_OCFS2_ULL_EVENT(ocfs2_reserve_new_inode_new_group); 793 794 DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_block_group_set_bits); 795 796 TRACE_EVENT(ocfs2_relink_block_group, 797 TP_PROTO(unsigned long long i_blkno, unsigned int chain, 798 unsigned long long bg_blkno, 799 unsigned long long prev_blkno), 800 TP_ARGS(i_blkno, chain, bg_blkno, prev_blkno), 801 TP_STRUCT__entry( 802 __field(unsigned long long, i_blkno) 803 __field(unsigned int, chain) 804 __field(unsigned long long, bg_blkno) 805 __field(unsigned long long, prev_blkno) 806 ), 807 TP_fast_assign( 808 __entry->i_blkno = i_blkno; 809 __entry->chain = chain; 810 __entry->bg_blkno = bg_blkno; 811 __entry->prev_blkno = prev_blkno; 812 ), 813 TP_printk("%llu %u %llu %llu", 814 __entry->i_blkno, __entry->chain, __entry->bg_blkno, 815 __entry->prev_blkno) 816 ); 817 818 DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_cluster_group_search_wrong_max_bits); 819 820 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_cluster_group_search_max_block); 821 822 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_block_group_search_max_block); 823 824 DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_search_chain_begin); 825 826 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_search_chain_succ); 827 828 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_search_chain_end); 829 830 DEFINE_OCFS2_UINT_EVENT(ocfs2_claim_suballoc_bits); 831 832 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_claim_new_inode_at_loc); 833 834 DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_block_group_clear_bits); 835 836 TRACE_EVENT(ocfs2_free_suballoc_bits, 837 TP_PROTO(unsigned long long inode, unsigned long long group, 838 unsigned int start_bit, unsigned int count), 839 TP_ARGS(inode, group, start_bit, count), 840 TP_STRUCT__entry( 841 __field(unsigned long long, inode) 842 __field(unsigned long long, group) 843 __field(unsigned int, start_bit) 844 __field(unsigned int, count) 845 ), 846 TP_fast_assign( 847 __entry->inode = inode; 848 __entry->group = group; 849 __entry->start_bit = start_bit; 850 __entry->count = count; 851 ), 852 TP_printk("%llu %llu %u %u", __entry->inode, __entry->group, 853 __entry->start_bit, __entry->count) 854 ); 855 856 TRACE_EVENT(ocfs2_free_clusters, 857 TP_PROTO(unsigned long long bg_blkno, unsigned long long start_blk, 858 unsigned int start_bit, unsigned int count), 859 TP_ARGS(bg_blkno, start_blk, start_bit, count), 860 TP_STRUCT__entry( 861 __field(unsigned long long, bg_blkno) 862 __field(unsigned long long, start_blk) 863 __field(unsigned int, start_bit) 864 __field(unsigned int, count) 865 ), 866 TP_fast_assign( 867 __entry->bg_blkno = bg_blkno; 868 __entry->start_blk = start_blk; 869 __entry->start_bit = start_bit; 870 __entry->count = count; 871 ), 872 TP_printk("%llu %llu %u %u", __entry->bg_blkno, __entry->start_blk, 873 __entry->start_bit, __entry->count) 874 ); 875 876 DEFINE_OCFS2_ULL_EVENT(ocfs2_get_suballoc_slot_bit); 877 878 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_test_suballoc_bit); 879 880 DEFINE_OCFS2_ULL_EVENT(ocfs2_test_inode_bit); 881 882 /* End of trace events for fs/ocfs2/suballoc.c. */ 883 884 /* Trace events for fs/ocfs2/refcounttree.c. */ 885 886 DEFINE_OCFS2_ULL_EVENT(ocfs2_validate_refcount_block); 887 888 DEFINE_OCFS2_ULL_EVENT(ocfs2_purge_refcount_trees); 889 890 DEFINE_OCFS2_ULL_EVENT(ocfs2_create_refcount_tree); 891 892 DEFINE_OCFS2_ULL_EVENT(ocfs2_create_refcount_tree_blkno); 893 894 DEFINE_OCFS2_ULL_INT_INT_INT_EVENT(ocfs2_change_refcount_rec); 895 896 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_expand_inline_ref_root); 897 898 DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_divide_leaf_refcount_block); 899 900 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_new_leaf_refcount_block); 901 902 DECLARE_EVENT_CLASS(ocfs2__refcount_tree_ops, 903 TP_PROTO(unsigned long long blkno, int index, 904 unsigned long long cpos, 905 unsigned int clusters, unsigned int refcount), 906 TP_ARGS(blkno, index, cpos, clusters, refcount), 907 TP_STRUCT__entry( 908 __field(unsigned long long, blkno) 909 __field(int, index) 910 __field(unsigned long long, cpos) 911 __field(unsigned int, clusters) 912 __field(unsigned int, refcount) 913 ), 914 TP_fast_assign( 915 __entry->blkno = blkno; 916 __entry->index = index; 917 __entry->cpos = cpos; 918 __entry->clusters = clusters; 919 __entry->refcount = refcount; 920 ), 921 TP_printk("%llu %d %llu %u %u", __entry->blkno, __entry->index, 922 __entry->cpos, __entry->clusters, __entry->refcount) 923 ); 924 925 #define DEFINE_OCFS2_REFCOUNT_TREE_OPS_EVENT(name) \ 926 DEFINE_EVENT(ocfs2__refcount_tree_ops, name, \ 927 TP_PROTO(unsigned long long blkno, int index, \ 928 unsigned long long cpos, \ 929 unsigned int count, unsigned int refcount), \ 930 TP_ARGS(blkno, index, cpos, count, refcount)) 931 932 DEFINE_OCFS2_REFCOUNT_TREE_OPS_EVENT(ocfs2_insert_refcount_rec); 933 934 TRACE_EVENT(ocfs2_split_refcount_rec, 935 TP_PROTO(unsigned long long cpos, 936 unsigned int clusters, unsigned int refcount, 937 unsigned long long split_cpos, 938 unsigned int split_clusters, unsigned int split_refcount), 939 TP_ARGS(cpos, clusters, refcount, 940 split_cpos, split_clusters, split_refcount), 941 TP_STRUCT__entry( 942 __field(unsigned long long, cpos) 943 __field(unsigned int, clusters) 944 __field(unsigned int, refcount) 945 __field(unsigned long long, split_cpos) 946 __field(unsigned int, split_clusters) 947 __field(unsigned int, split_refcount) 948 ), 949 TP_fast_assign( 950 __entry->cpos = cpos; 951 __entry->clusters = clusters; 952 __entry->refcount = refcount; 953 __entry->split_cpos = split_cpos; 954 __entry->split_clusters = split_clusters; 955 __entry->split_refcount = split_refcount; 956 ), 957 TP_printk("%llu %u %u %llu %u %u", 958 __entry->cpos, __entry->clusters, __entry->refcount, 959 __entry->split_cpos, __entry->split_clusters, 960 __entry->split_refcount) 961 ); 962 963 DEFINE_OCFS2_REFCOUNT_TREE_OPS_EVENT(ocfs2_split_refcount_rec_insert); 964 965 DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_increase_refcount_begin); 966 967 DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_increase_refcount_change); 968 969 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_increase_refcount_insert); 970 971 DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_increase_refcount_split); 972 973 DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_remove_refcount_extent); 974 975 DEFINE_OCFS2_ULL_EVENT(ocfs2_restore_refcount_block); 976 977 DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_decrease_refcount_rec); 978 979 TRACE_EVENT(ocfs2_decrease_refcount, 980 TP_PROTO(unsigned long long owner, 981 unsigned long long cpos, 982 unsigned int len, int delete), 983 TP_ARGS(owner, cpos, len, delete), 984 TP_STRUCT__entry( 985 __field(unsigned long long, owner) 986 __field(unsigned long long, cpos) 987 __field(unsigned int, len) 988 __field(int, delete) 989 ), 990 TP_fast_assign( 991 __entry->owner = owner; 992 __entry->cpos = cpos; 993 __entry->len = len; 994 __entry->delete = delete; 995 ), 996 TP_printk("%llu %llu %u %d", 997 __entry->owner, __entry->cpos, __entry->len, __entry->delete) 998 ); 999 1000 DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_mark_extent_refcounted); 1001 1002 DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_calc_refcount_meta_credits); 1003 1004 TRACE_EVENT(ocfs2_calc_refcount_meta_credits_iterate, 1005 TP_PROTO(int recs_add, unsigned long long cpos, 1006 unsigned int clusters, unsigned long long r_cpos, 1007 unsigned int r_clusters, unsigned int refcount, int index), 1008 TP_ARGS(recs_add, cpos, clusters, r_cpos, r_clusters, refcount, index), 1009 TP_STRUCT__entry( 1010 __field(int, recs_add) 1011 __field(unsigned long long, cpos) 1012 __field(unsigned int, clusters) 1013 __field(unsigned long long, r_cpos) 1014 __field(unsigned int, r_clusters) 1015 __field(unsigned int, refcount) 1016 __field(int, index) 1017 ), 1018 TP_fast_assign( 1019 __entry->recs_add = recs_add; 1020 __entry->cpos = cpos; 1021 __entry->clusters = clusters; 1022 __entry->r_cpos = r_cpos; 1023 __entry->r_clusters = r_clusters; 1024 __entry->refcount = refcount; 1025 __entry->index = index; 1026 ), 1027 TP_printk("%d %llu %u %llu %u %u %d", 1028 __entry->recs_add, __entry->cpos, __entry->clusters, 1029 __entry->r_cpos, __entry->r_clusters, 1030 __entry->refcount, __entry->index) 1031 ); 1032 1033 DEFINE_OCFS2_INT_INT_EVENT(ocfs2_add_refcount_flag); 1034 1035 DEFINE_OCFS2_INT_INT_EVENT(ocfs2_prepare_refcount_change_for_del); 1036 1037 DEFINE_OCFS2_INT_INT_EVENT(ocfs2_lock_refcount_allocators); 1038 1039 DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_duplicate_clusters_by_page); 1040 1041 DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_duplicate_clusters_by_jbd); 1042 1043 TRACE_EVENT(ocfs2_clear_ext_refcount, 1044 TP_PROTO(unsigned long long ino, unsigned int cpos, 1045 unsigned int len, unsigned int p_cluster, 1046 unsigned int ext_flags), 1047 TP_ARGS(ino, cpos, len, p_cluster, ext_flags), 1048 TP_STRUCT__entry( 1049 __field(unsigned long long, ino) 1050 __field(unsigned int, cpos) 1051 __field(unsigned int, len) 1052 __field(unsigned int, p_cluster) 1053 __field(unsigned int, ext_flags) 1054 ), 1055 TP_fast_assign( 1056 __entry->ino = ino; 1057 __entry->cpos = cpos; 1058 __entry->len = len; 1059 __entry->p_cluster = p_cluster; 1060 __entry->ext_flags = ext_flags; 1061 ), 1062 TP_printk("%llu %u %u %u %u", 1063 __entry->ino, __entry->cpos, __entry->len, 1064 __entry->p_cluster, __entry->ext_flags) 1065 ); 1066 1067 TRACE_EVENT(ocfs2_replace_clusters, 1068 TP_PROTO(unsigned long long ino, unsigned int cpos, 1069 unsigned int old, unsigned int new, unsigned int len, 1070 unsigned int ext_flags), 1071 TP_ARGS(ino, cpos, old, new, len, ext_flags), 1072 TP_STRUCT__entry( 1073 __field(unsigned long long, ino) 1074 __field(unsigned int, cpos) 1075 __field(unsigned int, old) 1076 __field(unsigned int, new) 1077 __field(unsigned int, len) 1078 __field(unsigned int, ext_flags) 1079 ), 1080 TP_fast_assign( 1081 __entry->ino = ino; 1082 __entry->cpos = cpos; 1083 __entry->old = old; 1084 __entry->new = new; 1085 __entry->len = len; 1086 __entry->ext_flags = ext_flags; 1087 ), 1088 TP_printk("%llu %u %u %u %u %u", 1089 __entry->ino, __entry->cpos, __entry->old, __entry->new, 1090 __entry->len, __entry->ext_flags) 1091 ); 1092 1093 DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_make_clusters_writable); 1094 1095 TRACE_EVENT(ocfs2_refcount_cow_hunk, 1096 TP_PROTO(unsigned long long ino, unsigned int cpos, 1097 unsigned int write_len, unsigned int max_cpos, 1098 unsigned int cow_start, unsigned int cow_len), 1099 TP_ARGS(ino, cpos, write_len, max_cpos, cow_start, cow_len), 1100 TP_STRUCT__entry( 1101 __field(unsigned long long, ino) 1102 __field(unsigned int, cpos) 1103 __field(unsigned int, write_len) 1104 __field(unsigned int, max_cpos) 1105 __field(unsigned int, cow_start) 1106 __field(unsigned int, cow_len) 1107 ), 1108 TP_fast_assign( 1109 __entry->ino = ino; 1110 __entry->cpos = cpos; 1111 __entry->write_len = write_len; 1112 __entry->max_cpos = max_cpos; 1113 __entry->cow_start = cow_start; 1114 __entry->cow_len = cow_len; 1115 ), 1116 TP_printk("%llu %u %u %u %u %u", 1117 __entry->ino, __entry->cpos, __entry->write_len, 1118 __entry->max_cpos, __entry->cow_start, __entry->cow_len) 1119 ); 1120 1121 /* End of trace events for fs/ocfs2/refcounttree.c. */ 1122 1123 /* Trace events for fs/ocfs2/aops.c. */ 1124 1125 DECLARE_EVENT_CLASS(ocfs2__get_block, 1126 TP_PROTO(unsigned long long ino, unsigned long long iblock, 1127 void *bh_result, int create), 1128 TP_ARGS(ino, iblock, bh_result, create), 1129 TP_STRUCT__entry( 1130 __field(unsigned long long, ino) 1131 __field(unsigned long long, iblock) 1132 __field(void *, bh_result) 1133 __field(int, create) 1134 ), 1135 TP_fast_assign( 1136 __entry->ino = ino; 1137 __entry->iblock = iblock; 1138 __entry->bh_result = bh_result; 1139 __entry->create = create; 1140 ), 1141 TP_printk("%llu %llu %p %d", 1142 __entry->ino, __entry->iblock, 1143 __entry->bh_result, __entry->create) 1144 ); 1145 1146 #define DEFINE_OCFS2_GET_BLOCK_EVENT(name) \ 1147 DEFINE_EVENT(ocfs2__get_block, name, \ 1148 TP_PROTO(unsigned long long ino, unsigned long long iblock, \ 1149 void *bh_result, int create), \ 1150 TP_ARGS(ino, iblock, bh_result, create)) 1151 1152 DEFINE_OCFS2_GET_BLOCK_EVENT(ocfs2_symlink_get_block); 1153 1154 DEFINE_OCFS2_GET_BLOCK_EVENT(ocfs2_get_block); 1155 1156 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_get_block_end); 1157 1158 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_readpage); 1159 1160 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_writepage); 1161 1162 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_bmap); 1163 1164 TRACE_EVENT(ocfs2_try_to_write_inline_data, 1165 TP_PROTO(unsigned long long ino, unsigned int len, 1166 unsigned long long pos, unsigned int flags), 1167 TP_ARGS(ino, len, pos, flags), 1168 TP_STRUCT__entry( 1169 __field(unsigned long long, ino) 1170 __field(unsigned int, len) 1171 __field(unsigned long long, pos) 1172 __field(unsigned int, flags) 1173 ), 1174 TP_fast_assign( 1175 __entry->ino = ino; 1176 __entry->len = len; 1177 __entry->pos = pos; 1178 __entry->flags = flags; 1179 ), 1180 TP_printk("%llu %u %llu 0x%x", 1181 __entry->ino, __entry->len, __entry->pos, __entry->flags) 1182 ); 1183 1184 TRACE_EVENT(ocfs2_write_begin_nolock, 1185 TP_PROTO(unsigned long long ino, 1186 long long i_size, unsigned int i_clusters, 1187 unsigned long long pos, unsigned int len, 1188 unsigned int flags, void *page, 1189 unsigned int clusters, unsigned int extents_to_split), 1190 TP_ARGS(ino, i_size, i_clusters, pos, len, flags, 1191 page, clusters, extents_to_split), 1192 TP_STRUCT__entry( 1193 __field(unsigned long long, ino) 1194 __field(long long, i_size) 1195 __field(unsigned int, i_clusters) 1196 __field(unsigned long long, pos) 1197 __field(unsigned int, len) 1198 __field(unsigned int, flags) 1199 __field(void *, page) 1200 __field(unsigned int, clusters) 1201 __field(unsigned int, extents_to_split) 1202 ), 1203 TP_fast_assign( 1204 __entry->ino = ino; 1205 __entry->i_size = i_size; 1206 __entry->i_clusters = i_clusters; 1207 __entry->pos = pos; 1208 __entry->len = len; 1209 __entry->flags = flags; 1210 __entry->page = page; 1211 __entry->clusters = clusters; 1212 __entry->extents_to_split = extents_to_split; 1213 ), 1214 TP_printk("%llu %lld %u %llu %u %u %p %u %u", 1215 __entry->ino, __entry->i_size, __entry->i_clusters, 1216 __entry->pos, __entry->len, 1217 __entry->flags, __entry->page, __entry->clusters, 1218 __entry->extents_to_split) 1219 ); 1220 1221 TRACE_EVENT(ocfs2_write_end_inline, 1222 TP_PROTO(unsigned long long ino, 1223 unsigned long long pos, unsigned int copied, 1224 unsigned int id_count, unsigned int features), 1225 TP_ARGS(ino, pos, copied, id_count, features), 1226 TP_STRUCT__entry( 1227 __field(unsigned long long, ino) 1228 __field(unsigned long long, pos) 1229 __field(unsigned int, copied) 1230 __field(unsigned int, id_count) 1231 __field(unsigned int, features) 1232 ), 1233 TP_fast_assign( 1234 __entry->ino = ino; 1235 __entry->pos = pos; 1236 __entry->copied = copied; 1237 __entry->id_count = id_count; 1238 __entry->features = features; 1239 ), 1240 TP_printk("%llu %llu %u %u %u", 1241 __entry->ino, __entry->pos, __entry->copied, 1242 __entry->id_count, __entry->features) 1243 ); 1244 1245 /* End of trace events for fs/ocfs2/aops.c. */ 1246 1247 /* Trace events for fs/ocfs2/mmap.c. */ 1248 1249 TRACE_EVENT(ocfs2_fault, 1250 TP_PROTO(unsigned long long ino, 1251 void *area, void *page, unsigned long pgoff), 1252 TP_ARGS(ino, area, page, pgoff), 1253 TP_STRUCT__entry( 1254 __field(unsigned long long, ino) 1255 __field(void *, area) 1256 __field(void *, page) 1257 __field(unsigned long, pgoff) 1258 ), 1259 TP_fast_assign( 1260 __entry->ino = ino; 1261 __entry->area = area; 1262 __entry->page = page; 1263 __entry->pgoff = pgoff; 1264 ), 1265 TP_printk("%llu %p %p %lu", 1266 __entry->ino, __entry->area, __entry->page, __entry->pgoff) 1267 ); 1268 1269 /* End of trace events for fs/ocfs2/mmap.c. */ 1270 1271 /* Trace events for fs/ocfs2/file.c. */ 1272 1273 DECLARE_EVENT_CLASS(ocfs2__file_ops, 1274 TP_PROTO(void *inode, void *file, void *dentry, 1275 unsigned long long ino, 1276 unsigned int d_len, const unsigned char *d_name, 1277 unsigned long long para), 1278 TP_ARGS(inode, file, dentry, ino, d_len, d_name, para), 1279 TP_STRUCT__entry( 1280 __field(void *, inode) 1281 __field(void *, file) 1282 __field(void *, dentry) 1283 __field(unsigned long long, ino) 1284 __field(unsigned int, d_len) 1285 __string(d_name, d_name) 1286 __field(unsigned long long, para) 1287 ), 1288 TP_fast_assign( 1289 __entry->inode = inode; 1290 __entry->file = file; 1291 __entry->dentry = dentry; 1292 __entry->ino = ino; 1293 __entry->d_len = d_len; 1294 __assign_str(d_name, d_name); 1295 __entry->para = para; 1296 ), 1297 TP_printk("%p %p %p %llu %llu %.*s", __entry->inode, __entry->file, 1298 __entry->dentry, __entry->ino, __entry->para, 1299 __entry->d_len, __get_str(d_name)) 1300 ); 1301 1302 #define DEFINE_OCFS2_FILE_OPS(name) \ 1303 DEFINE_EVENT(ocfs2__file_ops, name, \ 1304 TP_PROTO(void *inode, void *file, void *dentry, \ 1305 unsigned long long ino, \ 1306 unsigned int d_len, const unsigned char *d_name, \ 1307 unsigned long long mode), \ 1308 TP_ARGS(inode, file, dentry, ino, d_len, d_name, mode)) 1309 1310 DEFINE_OCFS2_FILE_OPS(ocfs2_file_open); 1311 1312 DEFINE_OCFS2_FILE_OPS(ocfs2_file_release); 1313 1314 DEFINE_OCFS2_FILE_OPS(ocfs2_sync_file); 1315 1316 DEFINE_OCFS2_FILE_OPS(ocfs2_file_write_iter); 1317 1318 DEFINE_OCFS2_FILE_OPS(ocfs2_file_read_iter); 1319 1320 DEFINE_OCFS2_FILE_OPS(ocfs2_file_splice_read); 1321 1322 DEFINE_OCFS2_ULL_ULL_ULL_EVENT(ocfs2_truncate_file); 1323 1324 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_truncate_file_error); 1325 1326 TRACE_EVENT(ocfs2_extend_allocation, 1327 TP_PROTO(unsigned long long ip_blkno, unsigned long long size, 1328 unsigned int clusters, unsigned int clusters_to_add, 1329 int why, int restart_func), 1330 TP_ARGS(ip_blkno, size, clusters, clusters_to_add, why, restart_func), 1331 TP_STRUCT__entry( 1332 __field(unsigned long long, ip_blkno) 1333 __field(unsigned long long, size) 1334 __field(unsigned int, clusters) 1335 __field(unsigned int, clusters_to_add) 1336 __field(int, why) 1337 __field(int, restart_func) 1338 ), 1339 TP_fast_assign( 1340 __entry->ip_blkno = ip_blkno; 1341 __entry->size = size; 1342 __entry->clusters = clusters; 1343 __entry->clusters_to_add = clusters_to_add; 1344 __entry->why = why; 1345 __entry->restart_func = restart_func; 1346 ), 1347 TP_printk("%llu %llu %u %u %d %d", 1348 __entry->ip_blkno, __entry->size, __entry->clusters, 1349 __entry->clusters_to_add, __entry->why, __entry->restart_func) 1350 ); 1351 1352 TRACE_EVENT(ocfs2_extend_allocation_end, 1353 TP_PROTO(unsigned long long ino, 1354 unsigned int di_clusters, unsigned long long di_size, 1355 unsigned int ip_clusters, unsigned long long i_size), 1356 TP_ARGS(ino, di_clusters, di_size, ip_clusters, i_size), 1357 TP_STRUCT__entry( 1358 __field(unsigned long long, ino) 1359 __field(unsigned int, di_clusters) 1360 __field(unsigned long long, di_size) 1361 __field(unsigned int, ip_clusters) 1362 __field(unsigned long long, i_size) 1363 ), 1364 TP_fast_assign( 1365 __entry->ino = ino; 1366 __entry->di_clusters = di_clusters; 1367 __entry->di_size = di_size; 1368 __entry->ip_clusters = ip_clusters; 1369 __entry->i_size = i_size; 1370 ), 1371 TP_printk("%llu %u %llu %u %llu", __entry->ino, __entry->di_clusters, 1372 __entry->di_size, __entry->ip_clusters, __entry->i_size) 1373 ); 1374 1375 TRACE_EVENT(ocfs2_write_zero_page, 1376 TP_PROTO(unsigned long long ino, 1377 unsigned long long abs_from, unsigned long long abs_to, 1378 unsigned long index, unsigned int zero_from, 1379 unsigned int zero_to), 1380 TP_ARGS(ino, abs_from, abs_to, index, zero_from, zero_to), 1381 TP_STRUCT__entry( 1382 __field(unsigned long long, ino) 1383 __field(unsigned long long, abs_from) 1384 __field(unsigned long long, abs_to) 1385 __field(unsigned long, index) 1386 __field(unsigned int, zero_from) 1387 __field(unsigned int, zero_to) 1388 ), 1389 TP_fast_assign( 1390 __entry->ino = ino; 1391 __entry->abs_from = abs_from; 1392 __entry->abs_to = abs_to; 1393 __entry->index = index; 1394 __entry->zero_from = zero_from; 1395 __entry->zero_to = zero_to; 1396 ), 1397 TP_printk("%llu %llu %llu %lu %u %u", __entry->ino, 1398 __entry->abs_from, __entry->abs_to, 1399 __entry->index, __entry->zero_from, __entry->zero_to) 1400 ); 1401 1402 DEFINE_OCFS2_ULL_ULL_ULL_EVENT(ocfs2_zero_extend_range); 1403 1404 DEFINE_OCFS2_ULL_ULL_ULL_EVENT(ocfs2_zero_extend); 1405 1406 TRACE_EVENT(ocfs2_setattr, 1407 TP_PROTO(void *inode, void *dentry, 1408 unsigned long long ino, 1409 unsigned int d_len, const unsigned char *d_name, 1410 unsigned int ia_valid, unsigned int ia_mode, 1411 unsigned int ia_uid, unsigned int ia_gid), 1412 TP_ARGS(inode, dentry, ino, d_len, d_name, 1413 ia_valid, ia_mode, ia_uid, ia_gid), 1414 TP_STRUCT__entry( 1415 __field(void *, inode) 1416 __field(void *, dentry) 1417 __field(unsigned long long, ino) 1418 __field(unsigned int, d_len) 1419 __string(d_name, d_name) 1420 __field(unsigned int, ia_valid) 1421 __field(unsigned int, ia_mode) 1422 __field(unsigned int, ia_uid) 1423 __field(unsigned int, ia_gid) 1424 ), 1425 TP_fast_assign( 1426 __entry->inode = inode; 1427 __entry->dentry = dentry; 1428 __entry->ino = ino; 1429 __entry->d_len = d_len; 1430 __assign_str(d_name, d_name); 1431 __entry->ia_valid = ia_valid; 1432 __entry->ia_mode = ia_mode; 1433 __entry->ia_uid = ia_uid; 1434 __entry->ia_gid = ia_gid; 1435 ), 1436 TP_printk("%p %p %llu %.*s %u %u %u %u", __entry->inode, 1437 __entry->dentry, __entry->ino, __entry->d_len, 1438 __get_str(d_name), __entry->ia_valid, __entry->ia_mode, 1439 __entry->ia_uid, __entry->ia_gid) 1440 ); 1441 1442 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_write_remove_suid); 1443 1444 DEFINE_OCFS2_ULL_ULL_ULL_EVENT(ocfs2_zero_partial_clusters); 1445 1446 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_zero_partial_clusters_range1); 1447 1448 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_zero_partial_clusters_range2); 1449 1450 DEFINE_OCFS2_ULL_ULL_ULL_EVENT(ocfs2_remove_inode_range); 1451 1452 TRACE_EVENT(ocfs2_prepare_inode_for_write, 1453 TP_PROTO(unsigned long long ino, unsigned long long saved_pos, 1454 unsigned long count, int wait), 1455 TP_ARGS(ino, saved_pos, count, wait), 1456 TP_STRUCT__entry( 1457 __field(unsigned long long, ino) 1458 __field(unsigned long long, saved_pos) 1459 __field(unsigned long, count) 1460 __field(int, wait) 1461 ), 1462 TP_fast_assign( 1463 __entry->ino = ino; 1464 __entry->saved_pos = saved_pos; 1465 __entry->count = count; 1466 __entry->wait = wait; 1467 ), 1468 TP_printk("%llu %llu %lu %d", __entry->ino, 1469 __entry->saved_pos, __entry->count, __entry->wait) 1470 ); 1471 1472 DEFINE_OCFS2_INT_EVENT(generic_file_read_iter_ret); 1473 DEFINE_OCFS2_INT_EVENT(filemap_splice_read_ret); 1474 1475 /* End of trace events for fs/ocfs2/file.c. */ 1476 1477 /* Trace events for fs/ocfs2/inode.c. */ 1478 1479 TRACE_EVENT(ocfs2_iget_begin, 1480 TP_PROTO(unsigned long long ino, unsigned int flags, int sysfile_type), 1481 TP_ARGS(ino, flags, sysfile_type), 1482 TP_STRUCT__entry( 1483 __field(unsigned long long, ino) 1484 __field(unsigned int, flags) 1485 __field(int, sysfile_type) 1486 ), 1487 TP_fast_assign( 1488 __entry->ino = ino; 1489 __entry->flags = flags; 1490 __entry->sysfile_type = sysfile_type; 1491 ), 1492 TP_printk("%llu %u %d", __entry->ino, 1493 __entry->flags, __entry->sysfile_type) 1494 ); 1495 1496 DEFINE_OCFS2_ULL_EVENT(ocfs2_iget5_locked); 1497 1498 TRACE_EVENT(ocfs2_iget_end, 1499 TP_PROTO(void *inode, unsigned long long ino), 1500 TP_ARGS(inode, ino), 1501 TP_STRUCT__entry( 1502 __field(void *, inode) 1503 __field(unsigned long long, ino) 1504 ), 1505 TP_fast_assign( 1506 __entry->inode = inode; 1507 __entry->ino = ino; 1508 ), 1509 TP_printk("%p %llu", __entry->inode, __entry->ino) 1510 ); 1511 1512 TRACE_EVENT(ocfs2_find_actor, 1513 TP_PROTO(void *inode, unsigned long long ino, 1514 void *args, unsigned long long fi_blkno), 1515 TP_ARGS(inode, ino, args, fi_blkno), 1516 TP_STRUCT__entry( 1517 __field(void *, inode) 1518 __field(unsigned long long, ino) 1519 __field(void *, args) 1520 __field(unsigned long long, fi_blkno) 1521 ), 1522 TP_fast_assign( 1523 __entry->inode = inode; 1524 __entry->ino = ino; 1525 __entry->args = args; 1526 __entry->fi_blkno = fi_blkno; 1527 ), 1528 TP_printk("%p %llu %p %llu", __entry->inode, __entry->ino, 1529 __entry->args, __entry->fi_blkno) 1530 ); 1531 1532 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_populate_inode); 1533 1534 DEFINE_OCFS2_ULL_INT_EVENT(ocfs2_read_locked_inode); 1535 1536 DEFINE_OCFS2_INT_INT_EVENT(ocfs2_check_orphan_recovery_state); 1537 1538 DEFINE_OCFS2_ULL_EVENT(ocfs2_validate_inode_block); 1539 DEFINE_OCFS2_ULL_EVENT(ocfs2_filecheck_validate_inode_block); 1540 DEFINE_OCFS2_ULL_EVENT(ocfs2_filecheck_repair_inode_block); 1541 1542 TRACE_EVENT(ocfs2_inode_is_valid_to_delete, 1543 TP_PROTO(void *task, void *dc_task, unsigned long long ino, 1544 unsigned int flags), 1545 TP_ARGS(task, dc_task, ino, flags), 1546 TP_STRUCT__entry( 1547 __field(void *, task) 1548 __field(void *, dc_task) 1549 __field(unsigned long long, ino) 1550 __field(unsigned int, flags) 1551 ), 1552 TP_fast_assign( 1553 __entry->task = task; 1554 __entry->dc_task = dc_task; 1555 __entry->ino = ino; 1556 __entry->flags = flags; 1557 ), 1558 TP_printk("%p %p %llu %u", __entry->task, __entry->dc_task, 1559 __entry->ino, __entry->flags) 1560 ); 1561 1562 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_query_inode_wipe_begin); 1563 1564 DEFINE_OCFS2_UINT_EVENT(ocfs2_query_inode_wipe_succ); 1565 1566 DEFINE_OCFS2_INT_INT_EVENT(ocfs2_query_inode_wipe_end); 1567 1568 DEFINE_OCFS2_ULL_INT_EVENT(ocfs2_cleanup_delete_inode); 1569 1570 DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_delete_inode); 1571 1572 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_clear_inode); 1573 1574 DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_drop_inode); 1575 1576 TRACE_EVENT(ocfs2_inode_revalidate, 1577 TP_PROTO(void *inode, unsigned long long ino, 1578 unsigned int flags), 1579 TP_ARGS(inode, ino, flags), 1580 TP_STRUCT__entry( 1581 __field(void *, inode) 1582 __field(unsigned long long, ino) 1583 __field(unsigned int, flags) 1584 ), 1585 TP_fast_assign( 1586 __entry->inode = inode; 1587 __entry->ino = ino; 1588 __entry->flags = flags; 1589 ), 1590 TP_printk("%p %llu %u", __entry->inode, __entry->ino, __entry->flags) 1591 ); 1592 1593 DEFINE_OCFS2_ULL_EVENT(ocfs2_mark_inode_dirty); 1594 1595 /* End of trace events for fs/ocfs2/inode.c. */ 1596 1597 /* Trace events for fs/ocfs2/extent_map.c. */ 1598 1599 TRACE_EVENT(ocfs2_read_virt_blocks, 1600 TP_PROTO(void *inode, unsigned long long vblock, int nr, 1601 void *bhs, unsigned int flags, void *validate), 1602 TP_ARGS(inode, vblock, nr, bhs, flags, validate), 1603 TP_STRUCT__entry( 1604 __field(void *, inode) 1605 __field(unsigned long long, vblock) 1606 __field(int, nr) 1607 __field(void *, bhs) 1608 __field(unsigned int, flags) 1609 __field(void *, validate) 1610 ), 1611 TP_fast_assign( 1612 __entry->inode = inode; 1613 __entry->vblock = vblock; 1614 __entry->nr = nr; 1615 __entry->bhs = bhs; 1616 __entry->flags = flags; 1617 __entry->validate = validate; 1618 ), 1619 TP_printk("%p %llu %d %p %x %p", __entry->inode, __entry->vblock, 1620 __entry->nr, __entry->bhs, __entry->flags, __entry->validate) 1621 ); 1622 1623 /* End of trace events for fs/ocfs2/extent_map.c. */ 1624 1625 /* Trace events for fs/ocfs2/slot_map.c. */ 1626 1627 DEFINE_OCFS2_UINT_EVENT(ocfs2_refresh_slot_info); 1628 1629 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_map_slot_buffers); 1630 1631 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_map_slot_buffers_block); 1632 1633 DEFINE_OCFS2_INT_EVENT(ocfs2_find_slot); 1634 1635 /* End of trace events for fs/ocfs2/slot_map.c. */ 1636 1637 /* Trace events for fs/ocfs2/heartbeat.c. */ 1638 1639 DEFINE_OCFS2_INT_EVENT(ocfs2_do_node_down); 1640 1641 /* End of trace events for fs/ocfs2/heartbeat.c. */ 1642 1643 /* Trace events for fs/ocfs2/super.c. */ 1644 1645 TRACE_EVENT(ocfs2_remount, 1646 TP_PROTO(unsigned long s_flags, unsigned long osb_flags, int flags), 1647 TP_ARGS(s_flags, osb_flags, flags), 1648 TP_STRUCT__entry( 1649 __field(unsigned long, s_flags) 1650 __field(unsigned long, osb_flags) 1651 __field(int, flags) 1652 ), 1653 TP_fast_assign( 1654 __entry->s_flags = s_flags; 1655 __entry->osb_flags = osb_flags; 1656 __entry->flags = flags; 1657 ), 1658 TP_printk("%lu %lu %d", __entry->s_flags, 1659 __entry->osb_flags, __entry->flags) 1660 ); 1661 1662 TRACE_EVENT(ocfs2_fill_super, 1663 TP_PROTO(void *sb, void *data, int silent), 1664 TP_ARGS(sb, data, silent), 1665 TP_STRUCT__entry( 1666 __field(void *, sb) 1667 __field(void *, data) 1668 __field(int, silent) 1669 ), 1670 TP_fast_assign( 1671 __entry->sb = sb; 1672 __entry->data = data; 1673 __entry->silent = silent; 1674 ), 1675 TP_printk("%p %p %d", __entry->sb, 1676 __entry->data, __entry->silent) 1677 ); 1678 1679 TRACE_EVENT(ocfs2_parse_options, 1680 TP_PROTO(int is_remount, char *options), 1681 TP_ARGS(is_remount, options), 1682 TP_STRUCT__entry( 1683 __field(int, is_remount) 1684 __string(options, options) 1685 ), 1686 TP_fast_assign( 1687 __entry->is_remount = is_remount; 1688 __assign_str(options, options); 1689 ), 1690 TP_printk("%d %s", __entry->is_remount, __get_str(options)) 1691 ); 1692 1693 DEFINE_OCFS2_POINTER_EVENT(ocfs2_put_super); 1694 1695 TRACE_EVENT(ocfs2_statfs, 1696 TP_PROTO(void *sb, void *buf), 1697 TP_ARGS(sb, buf), 1698 TP_STRUCT__entry( 1699 __field(void *, sb) 1700 __field(void *, buf) 1701 ), 1702 TP_fast_assign( 1703 __entry->sb = sb; 1704 __entry->buf = buf; 1705 ), 1706 TP_printk("%p %p", __entry->sb, __entry->buf) 1707 ); 1708 1709 DEFINE_OCFS2_POINTER_EVENT(ocfs2_dismount_volume); 1710 1711 TRACE_EVENT(ocfs2_initialize_super, 1712 TP_PROTO(char *label, char *uuid_str, unsigned long long root_dir, 1713 unsigned long long system_dir, int cluster_bits), 1714 TP_ARGS(label, uuid_str, root_dir, system_dir, cluster_bits), 1715 TP_STRUCT__entry( 1716 __string(label, label) 1717 __string(uuid_str, uuid_str) 1718 __field(unsigned long long, root_dir) 1719 __field(unsigned long long, system_dir) 1720 __field(int, cluster_bits) 1721 ), 1722 TP_fast_assign( 1723 __assign_str(label, label); 1724 __assign_str(uuid_str, uuid_str); 1725 __entry->root_dir = root_dir; 1726 __entry->system_dir = system_dir; 1727 __entry->cluster_bits = cluster_bits; 1728 ), 1729 TP_printk("%s %s %llu %llu %d", __get_str(label), __get_str(uuid_str), 1730 __entry->root_dir, __entry->system_dir, __entry->cluster_bits) 1731 ); 1732 1733 /* End of trace events for fs/ocfs2/super.c. */ 1734 1735 /* Trace events for fs/ocfs2/xattr.c. */ 1736 1737 DEFINE_OCFS2_ULL_EVENT(ocfs2_validate_xattr_block); 1738 1739 DEFINE_OCFS2_UINT_EVENT(ocfs2_xattr_extend_allocation); 1740 1741 TRACE_EVENT(ocfs2_init_xattr_set_ctxt, 1742 TP_PROTO(const char *name, int meta, int clusters, int credits), 1743 TP_ARGS(name, meta, clusters, credits), 1744 TP_STRUCT__entry( 1745 __string(name, name) 1746 __field(int, meta) 1747 __field(int, clusters) 1748 __field(int, credits) 1749 ), 1750 TP_fast_assign( 1751 __assign_str(name, name); 1752 __entry->meta = meta; 1753 __entry->clusters = clusters; 1754 __entry->credits = credits; 1755 ), 1756 TP_printk("%s %d %d %d", __get_str(name), __entry->meta, 1757 __entry->clusters, __entry->credits) 1758 ); 1759 1760 DECLARE_EVENT_CLASS(ocfs2__xattr_find, 1761 TP_PROTO(unsigned long long ino, const char *name, int name_index, 1762 unsigned int hash, unsigned long long location, 1763 int xe_index), 1764 TP_ARGS(ino, name, name_index, hash, location, xe_index), 1765 TP_STRUCT__entry( 1766 __field(unsigned long long, ino) 1767 __string(name, name) 1768 __field(int, name_index) 1769 __field(unsigned int, hash) 1770 __field(unsigned long long, location) 1771 __field(int, xe_index) 1772 ), 1773 TP_fast_assign( 1774 __entry->ino = ino; 1775 __assign_str(name, name); 1776 __entry->name_index = name_index; 1777 __entry->hash = hash; 1778 __entry->location = location; 1779 __entry->xe_index = xe_index; 1780 ), 1781 TP_printk("%llu %s %d %u %llu %d", __entry->ino, __get_str(name), 1782 __entry->name_index, __entry->hash, __entry->location, 1783 __entry->xe_index) 1784 ); 1785 1786 #define DEFINE_OCFS2_XATTR_FIND_EVENT(name) \ 1787 DEFINE_EVENT(ocfs2__xattr_find, name, \ 1788 TP_PROTO(unsigned long long ino, const char *name, int name_index, \ 1789 unsigned int hash, unsigned long long bucket, \ 1790 int xe_index), \ 1791 TP_ARGS(ino, name, name_index, hash, bucket, xe_index)) 1792 1793 DEFINE_OCFS2_XATTR_FIND_EVENT(ocfs2_xattr_bucket_find); 1794 1795 DEFINE_OCFS2_XATTR_FIND_EVENT(ocfs2_xattr_index_block_find); 1796 1797 DEFINE_OCFS2_XATTR_FIND_EVENT(ocfs2_xattr_index_block_find_rec); 1798 1799 DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_iterate_xattr_buckets); 1800 1801 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_iterate_xattr_bucket); 1802 1803 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_cp_xattr_block_to_bucket_begin); 1804 1805 DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_cp_xattr_block_to_bucket_end); 1806 1807 DEFINE_OCFS2_ULL_EVENT(ocfs2_xattr_create_index_block_begin); 1808 1809 DEFINE_OCFS2_ULL_EVENT(ocfs2_xattr_create_index_block); 1810 1811 DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_defrag_xattr_bucket); 1812 1813 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_mv_xattr_bucket_cross_cluster); 1814 1815 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_divide_xattr_bucket_begin); 1816 1817 DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_divide_xattr_bucket_move); 1818 1819 DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_cp_xattr_bucket); 1820 1821 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_mv_xattr_buckets); 1822 1823 DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_adjust_xattr_cross_cluster); 1824 1825 DEFINE_OCFS2_ULL_ULL_UINT_UINT_EVENT(ocfs2_add_new_xattr_cluster_begin); 1826 1827 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_add_new_xattr_cluster); 1828 1829 DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_add_new_xattr_cluster_insert); 1830 1831 DEFINE_OCFS2_ULL_ULL_UINT_UINT_EVENT(ocfs2_extend_xattr_bucket); 1832 1833 DEFINE_OCFS2_ULL_EVENT(ocfs2_add_new_xattr_bucket); 1834 1835 DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_xattr_bucket_value_truncate); 1836 1837 DEFINE_OCFS2_ULL_ULL_UINT_UINT_EVENT(ocfs2_rm_xattr_cluster); 1838 1839 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_reflink_xattr_header); 1840 1841 DEFINE_OCFS2_ULL_INT_EVENT(ocfs2_create_empty_xattr_block); 1842 1843 DEFINE_OCFS2_STRING_EVENT(ocfs2_xattr_set_entry_bucket); 1844 1845 DEFINE_OCFS2_STRING_EVENT(ocfs2_xattr_set_entry_index_block); 1846 1847 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_xattr_bucket_value_refcount); 1848 1849 DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_reflink_xattr_buckets); 1850 1851 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_reflink_xattr_rec); 1852 1853 /* End of trace events for fs/ocfs2/xattr.c. */ 1854 1855 /* Trace events for fs/ocfs2/reservations.c. */ 1856 1857 DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_resv_insert); 1858 1859 DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_resmap_find_free_bits_begin); 1860 1861 DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_resmap_find_free_bits_end); 1862 1863 TRACE_EVENT(ocfs2_resv_find_window_begin, 1864 TP_PROTO(unsigned int r_start, unsigned int r_end, unsigned int goal, 1865 unsigned int wanted, int empty_root), 1866 TP_ARGS(r_start, r_end, goal, wanted, empty_root), 1867 TP_STRUCT__entry( 1868 __field(unsigned int, r_start) 1869 __field(unsigned int, r_end) 1870 __field(unsigned int, goal) 1871 __field(unsigned int, wanted) 1872 __field(int, empty_root) 1873 ), 1874 TP_fast_assign( 1875 __entry->r_start = r_start; 1876 __entry->r_end = r_end; 1877 __entry->goal = goal; 1878 __entry->wanted = wanted; 1879 __entry->empty_root = empty_root; 1880 ), 1881 TP_printk("%u %u %u %u %d", __entry->r_start, __entry->r_end, 1882 __entry->goal, __entry->wanted, __entry->empty_root) 1883 ); 1884 1885 DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_resv_find_window_prev); 1886 1887 DEFINE_OCFS2_INT_INT_EVENT(ocfs2_resv_find_window_next); 1888 1889 DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_cannibalize_resv_begin); 1890 1891 TRACE_EVENT(ocfs2_cannibalize_resv_end, 1892 TP_PROTO(unsigned int start, unsigned int end, unsigned int len, 1893 unsigned int last_start, unsigned int last_len), 1894 TP_ARGS(start, end, len, last_start, last_len), 1895 TP_STRUCT__entry( 1896 __field(unsigned int, start) 1897 __field(unsigned int, end) 1898 __field(unsigned int, len) 1899 __field(unsigned int, last_start) 1900 __field(unsigned int, last_len) 1901 ), 1902 TP_fast_assign( 1903 __entry->start = start; 1904 __entry->end = end; 1905 __entry->len = len; 1906 __entry->last_start = last_start; 1907 __entry->last_len = last_len; 1908 ), 1909 TP_printk("%u %u %u %u %u", __entry->start, __entry->end, 1910 __entry->len, __entry->last_start, __entry->last_len) 1911 ); 1912 1913 DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_resmap_resv_bits); 1914 1915 TRACE_EVENT(ocfs2_resmap_claimed_bits_begin, 1916 TP_PROTO(unsigned int cstart, unsigned int cend, unsigned int clen, 1917 unsigned int r_start, unsigned int r_end, unsigned int r_len, 1918 unsigned int last_start, unsigned int last_len), 1919 TP_ARGS(cstart, cend, clen, r_start, r_end, 1920 r_len, last_start, last_len), 1921 TP_STRUCT__entry( 1922 __field(unsigned int, cstart) 1923 __field(unsigned int, cend) 1924 __field(unsigned int, clen) 1925 __field(unsigned int, r_start) 1926 __field(unsigned int, r_end) 1927 __field(unsigned int, r_len) 1928 __field(unsigned int, last_start) 1929 __field(unsigned int, last_len) 1930 ), 1931 TP_fast_assign( 1932 __entry->cstart = cstart; 1933 __entry->cend = cend; 1934 __entry->clen = clen; 1935 __entry->r_start = r_start; 1936 __entry->r_end = r_end; 1937 __entry->r_len = r_len; 1938 __entry->last_start = last_start; 1939 __entry->last_len = last_len; 1940 ), 1941 TP_printk("%u %u %u %u %u %u %u %u", 1942 __entry->cstart, __entry->cend, __entry->clen, 1943 __entry->r_start, __entry->r_end, __entry->r_len, 1944 __entry->last_start, __entry->last_len) 1945 ); 1946 1947 TRACE_EVENT(ocfs2_resmap_claimed_bits_end, 1948 TP_PROTO(unsigned int start, unsigned int end, unsigned int len, 1949 unsigned int last_start, unsigned int last_len), 1950 TP_ARGS(start, end, len, last_start, last_len), 1951 TP_STRUCT__entry( 1952 __field(unsigned int, start) 1953 __field(unsigned int, end) 1954 __field(unsigned int, len) 1955 __field(unsigned int, last_start) 1956 __field(unsigned int, last_len) 1957 ), 1958 TP_fast_assign( 1959 __entry->start = start; 1960 __entry->end = end; 1961 __entry->len = len; 1962 __entry->last_start = last_start; 1963 __entry->last_len = last_len; 1964 ), 1965 TP_printk("%u %u %u %u %u", __entry->start, __entry->end, 1966 __entry->len, __entry->last_start, __entry->last_len) 1967 ); 1968 1969 /* End of trace events for fs/ocfs2/reservations.c. */ 1970 1971 /* Trace events for fs/ocfs2/quota_local.c. */ 1972 1973 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_recover_local_quota_file); 1974 1975 DEFINE_OCFS2_INT_EVENT(ocfs2_finish_quota_recovery); 1976 1977 DEFINE_OCFS2_ULL_ULL_UINT_EVENT(olq_set_dquot); 1978 1979 /* End of trace events for fs/ocfs2/quota_local.c. */ 1980 1981 /* Trace events for fs/ocfs2/quota_global.c. */ 1982 1983 DEFINE_OCFS2_ULL_EVENT(ocfs2_validate_quota_block); 1984 1985 TRACE_EVENT(ocfs2_sync_dquot, 1986 TP_PROTO(unsigned int dq_id, long long dqb_curspace, 1987 long long spacechange, long long curinodes, 1988 long long inodechange), 1989 TP_ARGS(dq_id, dqb_curspace, spacechange, curinodes, inodechange), 1990 TP_STRUCT__entry( 1991 __field(unsigned int, dq_id) 1992 __field(long long, dqb_curspace) 1993 __field(long long, spacechange) 1994 __field(long long, curinodes) 1995 __field(long long, inodechange) 1996 ), 1997 TP_fast_assign( 1998 __entry->dq_id = dq_id; 1999 __entry->dqb_curspace = dqb_curspace; 2000 __entry->spacechange = spacechange; 2001 __entry->curinodes = curinodes; 2002 __entry->inodechange = inodechange; 2003 ), 2004 TP_printk("%u %lld %lld %lld %lld", __entry->dq_id, 2005 __entry->dqb_curspace, __entry->spacechange, 2006 __entry->curinodes, __entry->inodechange) 2007 ); 2008 2009 TRACE_EVENT(ocfs2_sync_dquot_helper, 2010 TP_PROTO(unsigned int dq_id, unsigned int dq_type, unsigned long type, 2011 const char *s_id), 2012 TP_ARGS(dq_id, dq_type, type, s_id), 2013 2014 TP_STRUCT__entry( 2015 __field(unsigned int, dq_id) 2016 __field(unsigned int, dq_type) 2017 __field(unsigned long, type) 2018 __string(s_id, s_id) 2019 ), 2020 TP_fast_assign( 2021 __entry->dq_id = dq_id; 2022 __entry->dq_type = dq_type; 2023 __entry->type = type; 2024 __assign_str(s_id, s_id); 2025 ), 2026 TP_printk("%u %u %lu %s", __entry->dq_id, __entry->dq_type, 2027 __entry->type, __get_str(s_id)) 2028 ); 2029 2030 DEFINE_OCFS2_UINT_INT_EVENT(ocfs2_write_dquot); 2031 2032 DEFINE_OCFS2_UINT_INT_EVENT(ocfs2_release_dquot); 2033 2034 DEFINE_OCFS2_UINT_INT_EVENT(ocfs2_acquire_dquot); 2035 2036 DEFINE_OCFS2_UINT_INT_EVENT(ocfs2_get_next_id); 2037 2038 DEFINE_OCFS2_UINT_INT_EVENT(ocfs2_mark_dquot_dirty); 2039 2040 /* End of trace events for fs/ocfs2/quota_global.c. */ 2041 2042 /* Trace events for fs/ocfs2/dir.c. */ 2043 DEFINE_OCFS2_INT_EVENT(ocfs2_search_dirblock); 2044 2045 DEFINE_OCFS2_ULL_EVENT(ocfs2_validate_dir_block); 2046 2047 DEFINE_OCFS2_POINTER_EVENT(ocfs2_find_entry_el); 2048 2049 TRACE_EVENT(ocfs2_dx_dir_search, 2050 TP_PROTO(unsigned long long ino, int namelen, const char *name, 2051 unsigned int major_hash, unsigned int minor_hash, 2052 unsigned long long blkno), 2053 TP_ARGS(ino, namelen, name, major_hash, minor_hash, blkno), 2054 TP_STRUCT__entry( 2055 __field(unsigned long long, ino) 2056 __field(int, namelen) 2057 __string(name, name) 2058 __field(unsigned int, major_hash) 2059 __field(unsigned int,minor_hash) 2060 __field(unsigned long long, blkno) 2061 ), 2062 TP_fast_assign( 2063 __entry->ino = ino; 2064 __entry->namelen = namelen; 2065 __assign_str(name, name); 2066 __entry->major_hash = major_hash; 2067 __entry->minor_hash = minor_hash; 2068 __entry->blkno = blkno; 2069 ), 2070 TP_printk("%llu %.*s %u %u %llu", __entry->ino, 2071 __entry->namelen, __get_str(name), 2072 __entry->major_hash, __entry->minor_hash, __entry->blkno) 2073 ); 2074 2075 DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_dx_dir_search_leaf_info); 2076 2077 DEFINE_OCFS2_ULL_INT_EVENT(ocfs2_delete_entry_dx); 2078 2079 DEFINE_OCFS2_ULL_EVENT(ocfs2_readdir); 2080 2081 TRACE_EVENT(ocfs2_find_files_on_disk, 2082 TP_PROTO(int namelen, const char *name, void *blkno, 2083 unsigned long long dir), 2084 TP_ARGS(namelen, name, blkno, dir), 2085 TP_STRUCT__entry( 2086 __field(int, namelen) 2087 __string(name, name) 2088 __field(void *, blkno) 2089 __field(unsigned long long, dir) 2090 ), 2091 TP_fast_assign( 2092 __entry->namelen = namelen; 2093 __assign_str(name, name); 2094 __entry->blkno = blkno; 2095 __entry->dir = dir; 2096 ), 2097 TP_printk("%.*s %p %llu", __entry->namelen, __get_str(name), 2098 __entry->blkno, __entry->dir) 2099 ); 2100 2101 TRACE_EVENT(ocfs2_check_dir_for_entry, 2102 TP_PROTO(unsigned long long dir, int namelen, const char *name), 2103 TP_ARGS(dir, namelen, name), 2104 TP_STRUCT__entry( 2105 __field(unsigned long long, dir) 2106 __field(int, namelen) 2107 __string(name, name) 2108 ), 2109 TP_fast_assign( 2110 __entry->dir = dir; 2111 __entry->namelen = namelen; 2112 __assign_str(name, name); 2113 ), 2114 TP_printk("%llu %.*s", __entry->dir, 2115 __entry->namelen, __get_str(name)) 2116 ); 2117 2118 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_dx_dir_attach_index); 2119 2120 DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_dx_dir_format_cluster); 2121 2122 TRACE_EVENT(ocfs2_dx_dir_index_root_block, 2123 TP_PROTO(unsigned long long dir, 2124 unsigned int major_hash, unsigned int minor_hash, 2125 int namelen, const char *name, unsigned int num_used), 2126 TP_ARGS(dir, major_hash, minor_hash, namelen, name, num_used), 2127 TP_STRUCT__entry( 2128 __field(unsigned long long, dir) 2129 __field(unsigned int, major_hash) 2130 __field(unsigned int, minor_hash) 2131 __field(int, namelen) 2132 __string(name, name) 2133 __field(unsigned int, num_used) 2134 ), 2135 TP_fast_assign( 2136 __entry->dir = dir; 2137 __entry->major_hash = major_hash; 2138 __entry->minor_hash = minor_hash; 2139 __entry->namelen = namelen; 2140 __assign_str(name, name); 2141 __entry->num_used = num_used; 2142 ), 2143 TP_printk("%llu %x %x %.*s %u", __entry->dir, 2144 __entry->major_hash, __entry->minor_hash, 2145 __entry->namelen, __get_str(name), __entry->num_used) 2146 ); 2147 2148 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_extend_dir); 2149 2150 DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_dx_dir_rebalance); 2151 2152 DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_dx_dir_rebalance_split); 2153 2154 DEFINE_OCFS2_ULL_INT_EVENT(ocfs2_prepare_dir_for_insert); 2155 2156 /* End of trace events for fs/ocfs2/dir.c. */ 2157 2158 /* Trace events for fs/ocfs2/namei.c. */ 2159 2160 DECLARE_EVENT_CLASS(ocfs2__dentry_ops, 2161 TP_PROTO(void *dir, void *dentry, int name_len, const char *name, 2162 unsigned long long dir_blkno, unsigned long long extra), 2163 TP_ARGS(dir, dentry, name_len, name, dir_blkno, extra), 2164 TP_STRUCT__entry( 2165 __field(void *, dir) 2166 __field(void *, dentry) 2167 __field(int, name_len) 2168 __string(name, name) 2169 __field(unsigned long long, dir_blkno) 2170 __field(unsigned long long, extra) 2171 ), 2172 TP_fast_assign( 2173 __entry->dir = dir; 2174 __entry->dentry = dentry; 2175 __entry->name_len = name_len; 2176 __assign_str(name, name); 2177 __entry->dir_blkno = dir_blkno; 2178 __entry->extra = extra; 2179 ), 2180 TP_printk("%p %p %.*s %llu %llu", __entry->dir, __entry->dentry, 2181 __entry->name_len, __get_str(name), 2182 __entry->dir_blkno, __entry->extra) 2183 ); 2184 2185 #define DEFINE_OCFS2_DENTRY_OPS(name) \ 2186 DEFINE_EVENT(ocfs2__dentry_ops, name, \ 2187 TP_PROTO(void *dir, void *dentry, int name_len, const char *name, \ 2188 unsigned long long dir_blkno, unsigned long long extra), \ 2189 TP_ARGS(dir, dentry, name_len, name, dir_blkno, extra)) 2190 2191 DEFINE_OCFS2_DENTRY_OPS(ocfs2_lookup); 2192 2193 DEFINE_OCFS2_DENTRY_OPS(ocfs2_mkdir); 2194 2195 DEFINE_OCFS2_DENTRY_OPS(ocfs2_create); 2196 2197 DEFINE_OCFS2_DENTRY_OPS(ocfs2_unlink); 2198 2199 DEFINE_OCFS2_DENTRY_OPS(ocfs2_symlink_create); 2200 2201 DEFINE_OCFS2_DENTRY_OPS(ocfs2_mv_orphaned_inode_to_new); 2202 2203 DEFINE_OCFS2_POINTER_EVENT(ocfs2_lookup_ret); 2204 2205 TRACE_EVENT(ocfs2_mknod, 2206 TP_PROTO(void *dir, void *dentry, int name_len, const char *name, 2207 unsigned long long dir_blkno, unsigned long dev, int mode), 2208 TP_ARGS(dir, dentry, name_len, name, dir_blkno, dev, mode), 2209 TP_STRUCT__entry( 2210 __field(void *, dir) 2211 __field(void *, dentry) 2212 __field(int, name_len) 2213 __string(name, name) 2214 __field(unsigned long long, dir_blkno) 2215 __field(unsigned long, dev) 2216 __field(int, mode) 2217 ), 2218 TP_fast_assign( 2219 __entry->dir = dir; 2220 __entry->dentry = dentry; 2221 __entry->name_len = name_len; 2222 __assign_str(name, name); 2223 __entry->dir_blkno = dir_blkno; 2224 __entry->dev = dev; 2225 __entry->mode = mode; 2226 ), 2227 TP_printk("%p %p %.*s %llu %lu %d", __entry->dir, __entry->dentry, 2228 __entry->name_len, __get_str(name), 2229 __entry->dir_blkno, __entry->dev, __entry->mode) 2230 ); 2231 2232 TRACE_EVENT(ocfs2_link, 2233 TP_PROTO(unsigned long long ino, int old_len, const char *old_name, 2234 int name_len, const char *name), 2235 TP_ARGS(ino, old_len, old_name, name_len, name), 2236 TP_STRUCT__entry( 2237 __field(unsigned long long, ino) 2238 __field(int, old_len) 2239 __string(old_name, old_name) 2240 __field(int, name_len) 2241 __string(name, name) 2242 ), 2243 TP_fast_assign( 2244 __entry->ino = ino; 2245 __entry->old_len = old_len; 2246 __assign_str(old_name, old_name); 2247 __entry->name_len = name_len; 2248 __assign_str(name, name); 2249 ), 2250 TP_printk("%llu %.*s %.*s", __entry->ino, 2251 __entry->old_len, __get_str(old_name), 2252 __entry->name_len, __get_str(name)) 2253 ); 2254 2255 DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_unlink_noent); 2256 2257 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_double_lock); 2258 2259 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_double_lock_end); 2260 2261 TRACE_EVENT(ocfs2_rename, 2262 TP_PROTO(void *old_dir, void *old_dentry, 2263 void *new_dir, void *new_dentry, 2264 int old_len, const char *old_name, 2265 int new_len, const char *new_name), 2266 TP_ARGS(old_dir, old_dentry, new_dir, new_dentry, 2267 old_len, old_name, new_len, new_name), 2268 TP_STRUCT__entry( 2269 __field(void *, old_dir) 2270 __field(void *, old_dentry) 2271 __field(void *, new_dir) 2272 __field(void *, new_dentry) 2273 __field(int, old_len) 2274 __string(old_name, old_name) 2275 __field(int, new_len) 2276 __string(new_name, new_name) 2277 ), 2278 TP_fast_assign( 2279 __entry->old_dir = old_dir; 2280 __entry->old_dentry = old_dentry; 2281 __entry->new_dir = new_dir; 2282 __entry->new_dentry = new_dentry; 2283 __entry->old_len = old_len; 2284 __assign_str(old_name, old_name); 2285 __entry->new_len = new_len; 2286 __assign_str(new_name, new_name); 2287 ), 2288 TP_printk("%p %p %p %p %.*s %.*s", 2289 __entry->old_dir, __entry->old_dentry, 2290 __entry->new_dir, __entry->new_dentry, 2291 __entry->old_len, __get_str(old_name), 2292 __entry->new_len, __get_str(new_name)) 2293 ); 2294 2295 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_rename_not_permitted); 2296 2297 TRACE_EVENT(ocfs2_rename_target_exists, 2298 TP_PROTO(int new_len, const char *new_name), 2299 TP_ARGS(new_len, new_name), 2300 TP_STRUCT__entry( 2301 __field(int, new_len) 2302 __string(new_name, new_name) 2303 ), 2304 TP_fast_assign( 2305 __entry->new_len = new_len; 2306 __assign_str(new_name, new_name); 2307 ), 2308 TP_printk("%.*s", __entry->new_len, __get_str(new_name)) 2309 ); 2310 2311 DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_rename_disagree); 2312 2313 TRACE_EVENT(ocfs2_rename_over_existing, 2314 TP_PROTO(unsigned long long new_blkno, void *new_bh, 2315 unsigned long long newdi_blkno), 2316 TP_ARGS(new_blkno, new_bh, newdi_blkno), 2317 TP_STRUCT__entry( 2318 __field(unsigned long long, new_blkno) 2319 __field(void *, new_bh) 2320 __field(unsigned long long, newdi_blkno) 2321 ), 2322 TP_fast_assign( 2323 __entry->new_blkno = new_blkno; 2324 __entry->new_bh = new_bh; 2325 __entry->newdi_blkno = newdi_blkno; 2326 ), 2327 TP_printk("%llu %p %llu", __entry->new_blkno, __entry->new_bh, 2328 __entry->newdi_blkno) 2329 ); 2330 2331 DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_create_symlink_data); 2332 2333 TRACE_EVENT(ocfs2_symlink_begin, 2334 TP_PROTO(void *dir, void *dentry, const char *symname, 2335 int len, const char *name), 2336 TP_ARGS(dir, dentry, symname, len, name), 2337 TP_STRUCT__entry( 2338 __field(void *, dir) 2339 __field(void *, dentry) 2340 __field(const char *, symname) 2341 __field(int, len) 2342 __string(name, name) 2343 ), 2344 TP_fast_assign( 2345 __entry->dir = dir; 2346 __entry->dentry = dentry; 2347 __entry->symname = symname; 2348 __entry->len = len; 2349 __assign_str(name, name); 2350 ), 2351 TP_printk("%p %p %s %.*s", __entry->dir, __entry->dentry, 2352 __entry->symname, __entry->len, __get_str(name)) 2353 ); 2354 2355 TRACE_EVENT(ocfs2_blkno_stringify, 2356 TP_PROTO(unsigned long long blkno, const char *name, int namelen), 2357 TP_ARGS(blkno, name, namelen), 2358 TP_STRUCT__entry( 2359 __field(unsigned long long, blkno) 2360 __string(name, name) 2361 __field(int, namelen) 2362 ), 2363 TP_fast_assign( 2364 __entry->blkno = blkno; 2365 __assign_str(name, name); 2366 __entry->namelen = namelen; 2367 ), 2368 TP_printk("%llu %s %d", __entry->blkno, __get_str(name), 2369 __entry->namelen) 2370 ); 2371 2372 DEFINE_OCFS2_ULL_EVENT(ocfs2_orphan_add_begin); 2373 2374 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_orphan_add_end); 2375 2376 TRACE_EVENT(ocfs2_orphan_del, 2377 TP_PROTO(unsigned long long dir, const char *name, int namelen), 2378 TP_ARGS(dir, name, namelen), 2379 TP_STRUCT__entry( 2380 __field(unsigned long long, dir) 2381 __string(name, name) 2382 __field(int, namelen) 2383 ), 2384 TP_fast_assign( 2385 __entry->dir = dir; 2386 __assign_str(name, name); 2387 __entry->namelen = namelen; 2388 ), 2389 TP_printk("%llu %s %d", __entry->dir, __get_str(name), 2390 __entry->namelen) 2391 ); 2392 2393 /* End of trace events for fs/ocfs2/namei.c. */ 2394 2395 /* Trace events for fs/ocfs2/dcache.c. */ 2396 2397 TRACE_EVENT(ocfs2_dentry_revalidate, 2398 TP_PROTO(void *dentry, int len, const char *name), 2399 TP_ARGS(dentry, len, name), 2400 TP_STRUCT__entry( 2401 __field(void *, dentry) 2402 __field(int, len) 2403 __string(name, name) 2404 ), 2405 TP_fast_assign( 2406 __entry->dentry = dentry; 2407 __entry->len = len; 2408 __assign_str(name, name); 2409 ), 2410 TP_printk("%p %.*s", __entry->dentry, __entry->len, __get_str(name)) 2411 ); 2412 2413 TRACE_EVENT(ocfs2_dentry_revalidate_negative, 2414 TP_PROTO(int len, const char *name, unsigned long pgen, 2415 unsigned long gen), 2416 TP_ARGS(len, name, pgen, gen), 2417 TP_STRUCT__entry( 2418 __field(int, len) 2419 __string(name, name) 2420 __field(unsigned long, pgen) 2421 __field(unsigned long, gen) 2422 ), 2423 TP_fast_assign( 2424 __entry->len = len; 2425 __assign_str(name, name); 2426 __entry->pgen = pgen; 2427 __entry->gen = gen; 2428 ), 2429 TP_printk("%.*s %lu %lu", __entry->len, __get_str(name), 2430 __entry->pgen, __entry->gen) 2431 ); 2432 2433 DEFINE_OCFS2_ULL_EVENT(ocfs2_dentry_revalidate_delete); 2434 2435 DEFINE_OCFS2_ULL_INT_EVENT(ocfs2_dentry_revalidate_orphaned); 2436 2437 DEFINE_OCFS2_ULL_EVENT(ocfs2_dentry_revalidate_nofsdata); 2438 2439 DEFINE_OCFS2_INT_EVENT(ocfs2_dentry_revalidate_ret); 2440 2441 TRACE_EVENT(ocfs2_find_local_alias, 2442 TP_PROTO(int len, const char *name), 2443 TP_ARGS(len, name), 2444 TP_STRUCT__entry( 2445 __field(int, len) 2446 __string(name, name) 2447 ), 2448 TP_fast_assign( 2449 __entry->len = len; 2450 __assign_str(name, name); 2451 ), 2452 TP_printk("%.*s", __entry->len, __get_str(name)) 2453 ); 2454 2455 TRACE_EVENT(ocfs2_dentry_attach_lock, 2456 TP_PROTO(int len, const char *name, 2457 unsigned long long parent, void *fsdata), 2458 TP_ARGS(len, name, parent, fsdata), 2459 TP_STRUCT__entry( 2460 __field(int, len) 2461 __string(name, name) 2462 __field(unsigned long long, parent) 2463 __field(void *, fsdata) 2464 ), 2465 TP_fast_assign( 2466 __entry->len = len; 2467 __assign_str(name, name); 2468 __entry->parent = parent; 2469 __entry->fsdata = fsdata; 2470 ), 2471 TP_printk("%.*s %llu %p", __entry->len, __get_str(name), 2472 __entry->parent, __entry->fsdata) 2473 ); 2474 2475 TRACE_EVENT(ocfs2_dentry_attach_lock_found, 2476 TP_PROTO(const char *name, unsigned long long parent, 2477 unsigned long long ino), 2478 TP_ARGS(name, parent, ino), 2479 TP_STRUCT__entry( 2480 __string(name, name) 2481 __field(unsigned long long, parent) 2482 __field(unsigned long long, ino) 2483 ), 2484 TP_fast_assign( 2485 __assign_str(name, name); 2486 __entry->parent = parent; 2487 __entry->ino = ino; 2488 ), 2489 TP_printk("%s %llu %llu", __get_str(name), __entry->parent, __entry->ino) 2490 ); 2491 /* End of trace events for fs/ocfs2/dcache.c. */ 2492 2493 /* Trace events for fs/ocfs2/export.c. */ 2494 2495 TRACE_EVENT(ocfs2_get_dentry_begin, 2496 TP_PROTO(void *sb, void *handle, unsigned long long blkno), 2497 TP_ARGS(sb, handle, blkno), 2498 TP_STRUCT__entry( 2499 __field(void *, sb) 2500 __field(void *, handle) 2501 __field(unsigned long long, blkno) 2502 ), 2503 TP_fast_assign( 2504 __entry->sb = sb; 2505 __entry->handle = handle; 2506 __entry->blkno = blkno; 2507 ), 2508 TP_printk("%p %p %llu", __entry->sb, __entry->handle, __entry->blkno) 2509 ); 2510 2511 DEFINE_OCFS2_INT_INT_EVENT(ocfs2_get_dentry_test_bit); 2512 2513 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_get_dentry_stale); 2514 2515 DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_get_dentry_generation); 2516 2517 DEFINE_OCFS2_POINTER_EVENT(ocfs2_get_dentry_end); 2518 2519 TRACE_EVENT(ocfs2_get_parent, 2520 TP_PROTO(void *child, int len, const char *name, 2521 unsigned long long ino), 2522 TP_ARGS(child, len, name, ino), 2523 TP_STRUCT__entry( 2524 __field(void *, child) 2525 __field(int, len) 2526 __string(name, name) 2527 __field(unsigned long long, ino) 2528 ), 2529 TP_fast_assign( 2530 __entry->child = child; 2531 __entry->len = len; 2532 __assign_str(name, name); 2533 __entry->ino = ino; 2534 ), 2535 TP_printk("%p %.*s %llu", __entry->child, __entry->len, 2536 __get_str(name), __entry->ino) 2537 ); 2538 2539 DEFINE_OCFS2_POINTER_EVENT(ocfs2_get_parent_end); 2540 2541 TRACE_EVENT(ocfs2_encode_fh_begin, 2542 TP_PROTO(void *dentry, int name_len, const char *name, 2543 void *fh, int len, int connectable), 2544 TP_ARGS(dentry, name_len, name, fh, len, connectable), 2545 TP_STRUCT__entry( 2546 __field(void *, dentry) 2547 __field(int, name_len) 2548 __string(name, name) 2549 __field(void *, fh) 2550 __field(int, len) 2551 __field(int, connectable) 2552 ), 2553 TP_fast_assign( 2554 __entry->dentry = dentry; 2555 __entry->name_len = name_len; 2556 __assign_str(name, name); 2557 __entry->fh = fh; 2558 __entry->len = len; 2559 __entry->connectable = connectable; 2560 ), 2561 TP_printk("%p %.*s %p %d %d", __entry->dentry, __entry->name_len, 2562 __get_str(name), __entry->fh, __entry->len, 2563 __entry->connectable) 2564 ); 2565 2566 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_encode_fh_self); 2567 2568 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_encode_fh_parent); 2569 2570 DEFINE_OCFS2_INT_EVENT(ocfs2_encode_fh_type); 2571 2572 /* End of trace events for fs/ocfs2/export.c. */ 2573 2574 /* Trace events for fs/ocfs2/journal.c. */ 2575 2576 DEFINE_OCFS2_UINT_EVENT(ocfs2_commit_cache_begin); 2577 2578 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_commit_cache_end); 2579 2580 DEFINE_OCFS2_INT_INT_EVENT(ocfs2_extend_trans); 2581 2582 DEFINE_OCFS2_INT_EVENT(ocfs2_assure_trans_credits); 2583 2584 DEFINE_OCFS2_INT_EVENT(ocfs2_extend_trans_restart); 2585 2586 DEFINE_OCFS2_INT_INT_EVENT(ocfs2_allocate_extend_trans); 2587 2588 DEFINE_OCFS2_ULL_ULL_UINT_UINT_EVENT(ocfs2_journal_access); 2589 2590 DEFINE_OCFS2_ULL_EVENT(ocfs2_journal_dirty); 2591 2592 DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_journal_init); 2593 2594 DEFINE_OCFS2_UINT_EVENT(ocfs2_journal_init_maxlen); 2595 2596 DEFINE_OCFS2_INT_EVENT(ocfs2_journal_shutdown); 2597 2598 DEFINE_OCFS2_POINTER_EVENT(ocfs2_journal_shutdown_wait); 2599 2600 DEFINE_OCFS2_ULL_EVENT(ocfs2_complete_recovery); 2601 2602 DEFINE_OCFS2_INT_EVENT(ocfs2_complete_recovery_end); 2603 2604 TRACE_EVENT(ocfs2_complete_recovery_slot, 2605 TP_PROTO(int slot, unsigned long long la_ino, 2606 unsigned long long tl_ino, void *qrec), 2607 TP_ARGS(slot, la_ino, tl_ino, qrec), 2608 TP_STRUCT__entry( 2609 __field(int, slot) 2610 __field(unsigned long long, la_ino) 2611 __field(unsigned long long, tl_ino) 2612 __field(void *, qrec) 2613 ), 2614 TP_fast_assign( 2615 __entry->slot = slot; 2616 __entry->la_ino = la_ino; 2617 __entry->tl_ino = tl_ino; 2618 __entry->qrec = qrec; 2619 ), 2620 TP_printk("%d %llu %llu %p", __entry->slot, __entry->la_ino, 2621 __entry->tl_ino, __entry->qrec) 2622 ); 2623 2624 DEFINE_OCFS2_INT_INT_EVENT(ocfs2_recovery_thread_node); 2625 2626 DEFINE_OCFS2_INT_EVENT(ocfs2_recovery_thread_end); 2627 2628 TRACE_EVENT(ocfs2_recovery_thread, 2629 TP_PROTO(int node_num, int osb_node_num, int disable, 2630 void *recovery_thread, int map_set), 2631 TP_ARGS(node_num, osb_node_num, disable, recovery_thread, map_set), 2632 TP_STRUCT__entry( 2633 __field(int, node_num) 2634 __field(int, osb_node_num) 2635 __field(int,disable) 2636 __field(void *, recovery_thread) 2637 __field(int,map_set) 2638 ), 2639 TP_fast_assign( 2640 __entry->node_num = node_num; 2641 __entry->osb_node_num = osb_node_num; 2642 __entry->disable = disable; 2643 __entry->recovery_thread = recovery_thread; 2644 __entry->map_set = map_set; 2645 ), 2646 TP_printk("%d %d %d %p %d", __entry->node_num, 2647 __entry->osb_node_num, __entry->disable, 2648 __entry->recovery_thread, __entry->map_set) 2649 ); 2650 2651 DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_replay_journal_recovered); 2652 2653 DEFINE_OCFS2_INT_EVENT(ocfs2_replay_journal_lock_err); 2654 2655 DEFINE_OCFS2_INT_EVENT(ocfs2_replay_journal_skip); 2656 2657 DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_recover_node); 2658 2659 DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_recover_node_skip); 2660 2661 DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_mark_dead_nodes); 2662 2663 DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_queue_orphan_scan_begin); 2664 2665 DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_queue_orphan_scan_end); 2666 2667 DEFINE_OCFS2_ULL_EVENT(ocfs2_orphan_filldir); 2668 2669 DEFINE_OCFS2_INT_EVENT(ocfs2_recover_orphans); 2670 2671 DEFINE_OCFS2_ULL_EVENT(ocfs2_recover_orphans_iput); 2672 2673 DEFINE_OCFS2_INT_EVENT(ocfs2_wait_on_mount); 2674 2675 /* End of trace events for fs/ocfs2/journal.c. */ 2676 2677 /* Trace events for fs/ocfs2/buffer_head_io.c. */ 2678 2679 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_read_blocks_sync); 2680 2681 DEFINE_OCFS2_ULL_EVENT(ocfs2_read_blocks_sync_jbd); 2682 2683 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_read_blocks_from_disk); 2684 2685 DEFINE_OCFS2_ULL_INT_INT_INT_EVENT(ocfs2_read_blocks_bh); 2686 2687 DEFINE_OCFS2_ULL_INT_INT_INT_EVENT(ocfs2_read_blocks_end); 2688 2689 TRACE_EVENT(ocfs2_write_block, 2690 TP_PROTO(unsigned long long block, void *ci), 2691 TP_ARGS(block, ci), 2692 TP_STRUCT__entry( 2693 __field(unsigned long long, block) 2694 __field(void *, ci) 2695 ), 2696 TP_fast_assign( 2697 __entry->block = block; 2698 __entry->ci = ci; 2699 ), 2700 TP_printk("%llu %p", __entry->block, __entry->ci) 2701 ); 2702 2703 TRACE_EVENT(ocfs2_read_blocks_begin, 2704 TP_PROTO(void *ci, unsigned long long block, 2705 unsigned int nr, int flags), 2706 TP_ARGS(ci, block, nr, flags), 2707 TP_STRUCT__entry( 2708 __field(void *, ci) 2709 __field(unsigned long long, block) 2710 __field(unsigned int, nr) 2711 __field(int, flags) 2712 ), 2713 TP_fast_assign( 2714 __entry->ci = ci; 2715 __entry->block = block; 2716 __entry->nr = nr; 2717 __entry->flags = flags; 2718 ), 2719 TP_printk("%p %llu %u %d", __entry->ci, __entry->block, 2720 __entry->nr, __entry->flags) 2721 ); 2722 2723 /* End of trace events for fs/ocfs2/buffer_head_io.c. */ 2724 2725 /* Trace events for fs/ocfs2/uptodate.c. */ 2726 2727 DEFINE_OCFS2_ULL_EVENT(ocfs2_purge_copied_metadata_tree); 2728 2729 DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_metadata_cache_purge); 2730 2731 DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_buffer_cached_begin); 2732 2733 TRACE_EVENT(ocfs2_buffer_cached_end, 2734 TP_PROTO(int index, void *item), 2735 TP_ARGS(index, item), 2736 TP_STRUCT__entry( 2737 __field(int, index) 2738 __field(void *, item) 2739 ), 2740 TP_fast_assign( 2741 __entry->index = index; 2742 __entry->item = item; 2743 ), 2744 TP_printk("%d %p", __entry->index, __entry->item) 2745 ); 2746 2747 DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_append_cache_array); 2748 2749 DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_insert_cache_tree); 2750 2751 DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_expand_cache); 2752 2753 DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_set_buffer_uptodate); 2754 2755 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_set_buffer_uptodate_begin); 2756 2757 DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_remove_metadata_array); 2758 2759 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_remove_metadata_tree); 2760 2761 DEFINE_OCFS2_ULL_ULL_UINT_UINT_EVENT(ocfs2_remove_block_from_cache); 2762 2763 /* End of trace events for fs/ocfs2/uptodate.c. */ 2764 #endif /* _TRACE_OCFS2_H */ 2765 2766 /* This part must be outside protection */ 2767 #undef TRACE_INCLUDE_PATH 2768 #define TRACE_INCLUDE_PATH . 2769 #define TRACE_INCLUDE_FILE ocfs2_trace 2770 #include <trace/define_trace.h> 2771