1 #undef TRACE_SYSTEM 2 #define TRACE_SYSTEM ext4 3 4 #if !defined(_TRACE_EXT4_H) || defined(TRACE_HEADER_MULTI_READ) 5 #define _TRACE_EXT4_H 6 7 #include <linux/writeback.h> 8 #include <linux/tracepoint.h> 9 10 struct ext4_allocation_context; 11 struct ext4_allocation_request; 12 struct ext4_extent; 13 struct ext4_prealloc_space; 14 struct ext4_inode_info; 15 struct mpage_da_data; 16 struct ext4_map_blocks; 17 struct ext4_extent; 18 struct extent_status; 19 20 #define EXT4_I(inode) (container_of(inode, struct ext4_inode_info, vfs_inode)) 21 22 TRACE_EVENT(ext4_free_inode, 23 TP_PROTO(struct inode *inode), 24 25 TP_ARGS(inode), 26 27 TP_STRUCT__entry( 28 __field( dev_t, dev ) 29 __field( ino_t, ino ) 30 __field( uid_t, uid ) 31 __field( gid_t, gid ) 32 __field( __u64, blocks ) 33 __field( __u16, mode ) 34 ), 35 36 TP_fast_assign( 37 __entry->dev = inode->i_sb->s_dev; 38 __entry->ino = inode->i_ino; 39 __entry->uid = i_uid_read(inode); 40 __entry->gid = i_gid_read(inode); 41 __entry->blocks = inode->i_blocks; 42 __entry->mode = inode->i_mode; 43 ), 44 45 TP_printk("dev %d,%d ino %lu mode 0%o uid %u gid %u blocks %llu", 46 MAJOR(__entry->dev), MINOR(__entry->dev), 47 (unsigned long) __entry->ino, __entry->mode, 48 __entry->uid, __entry->gid, __entry->blocks) 49 ); 50 51 TRACE_EVENT(ext4_request_inode, 52 TP_PROTO(struct inode *dir, int mode), 53 54 TP_ARGS(dir, mode), 55 56 TP_STRUCT__entry( 57 __field( dev_t, dev ) 58 __field( ino_t, dir ) 59 __field( __u16, mode ) 60 ), 61 62 TP_fast_assign( 63 __entry->dev = dir->i_sb->s_dev; 64 __entry->dir = dir->i_ino; 65 __entry->mode = mode; 66 ), 67 68 TP_printk("dev %d,%d dir %lu mode 0%o", 69 MAJOR(__entry->dev), MINOR(__entry->dev), 70 (unsigned long) __entry->dir, __entry->mode) 71 ); 72 73 TRACE_EVENT(ext4_allocate_inode, 74 TP_PROTO(struct inode *inode, struct inode *dir, int mode), 75 76 TP_ARGS(inode, dir, mode), 77 78 TP_STRUCT__entry( 79 __field( dev_t, dev ) 80 __field( ino_t, ino ) 81 __field( ino_t, dir ) 82 __field( __u16, mode ) 83 ), 84 85 TP_fast_assign( 86 __entry->dev = inode->i_sb->s_dev; 87 __entry->ino = inode->i_ino; 88 __entry->dir = dir->i_ino; 89 __entry->mode = mode; 90 ), 91 92 TP_printk("dev %d,%d ino %lu dir %lu mode 0%o", 93 MAJOR(__entry->dev), MINOR(__entry->dev), 94 (unsigned long) __entry->ino, 95 (unsigned long) __entry->dir, __entry->mode) 96 ); 97 98 TRACE_EVENT(ext4_evict_inode, 99 TP_PROTO(struct inode *inode), 100 101 TP_ARGS(inode), 102 103 TP_STRUCT__entry( 104 __field( dev_t, dev ) 105 __field( ino_t, ino ) 106 __field( int, nlink ) 107 ), 108 109 TP_fast_assign( 110 __entry->dev = inode->i_sb->s_dev; 111 __entry->ino = inode->i_ino; 112 __entry->nlink = inode->i_nlink; 113 ), 114 115 TP_printk("dev %d,%d ino %lu nlink %d", 116 MAJOR(__entry->dev), MINOR(__entry->dev), 117 (unsigned long) __entry->ino, __entry->nlink) 118 ); 119 120 TRACE_EVENT(ext4_drop_inode, 121 TP_PROTO(struct inode *inode, int drop), 122 123 TP_ARGS(inode, drop), 124 125 TP_STRUCT__entry( 126 __field( dev_t, dev ) 127 __field( ino_t, ino ) 128 __field( int, drop ) 129 ), 130 131 TP_fast_assign( 132 __entry->dev = inode->i_sb->s_dev; 133 __entry->ino = inode->i_ino; 134 __entry->drop = drop; 135 ), 136 137 TP_printk("dev %d,%d ino %lu drop %d", 138 MAJOR(__entry->dev), MINOR(__entry->dev), 139 (unsigned long) __entry->ino, __entry->drop) 140 ); 141 142 TRACE_EVENT(ext4_mark_inode_dirty, 143 TP_PROTO(struct inode *inode, unsigned long IP), 144 145 TP_ARGS(inode, IP), 146 147 TP_STRUCT__entry( 148 __field( dev_t, dev ) 149 __field( ino_t, ino ) 150 __field(unsigned long, ip ) 151 ), 152 153 TP_fast_assign( 154 __entry->dev = inode->i_sb->s_dev; 155 __entry->ino = inode->i_ino; 156 __entry->ip = IP; 157 ), 158 159 TP_printk("dev %d,%d ino %lu caller %pF", 160 MAJOR(__entry->dev), MINOR(__entry->dev), 161 (unsigned long) __entry->ino, (void *)__entry->ip) 162 ); 163 164 TRACE_EVENT(ext4_begin_ordered_truncate, 165 TP_PROTO(struct inode *inode, loff_t new_size), 166 167 TP_ARGS(inode, new_size), 168 169 TP_STRUCT__entry( 170 __field( dev_t, dev ) 171 __field( ino_t, ino ) 172 __field( loff_t, new_size ) 173 ), 174 175 TP_fast_assign( 176 __entry->dev = inode->i_sb->s_dev; 177 __entry->ino = inode->i_ino; 178 __entry->new_size = new_size; 179 ), 180 181 TP_printk("dev %d,%d ino %lu new_size %lld", 182 MAJOR(__entry->dev), MINOR(__entry->dev), 183 (unsigned long) __entry->ino, 184 __entry->new_size) 185 ); 186 187 DECLARE_EVENT_CLASS(ext4__write_begin, 188 189 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, 190 unsigned int flags), 191 192 TP_ARGS(inode, pos, len, flags), 193 194 TP_STRUCT__entry( 195 __field( dev_t, dev ) 196 __field( ino_t, ino ) 197 __field( loff_t, pos ) 198 __field( unsigned int, len ) 199 __field( unsigned int, flags ) 200 ), 201 202 TP_fast_assign( 203 __entry->dev = inode->i_sb->s_dev; 204 __entry->ino = inode->i_ino; 205 __entry->pos = pos; 206 __entry->len = len; 207 __entry->flags = flags; 208 ), 209 210 TP_printk("dev %d,%d ino %lu pos %lld len %u flags %u", 211 MAJOR(__entry->dev), MINOR(__entry->dev), 212 (unsigned long) __entry->ino, 213 __entry->pos, __entry->len, __entry->flags) 214 ); 215 216 DEFINE_EVENT(ext4__write_begin, ext4_write_begin, 217 218 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, 219 unsigned int flags), 220 221 TP_ARGS(inode, pos, len, flags) 222 ); 223 224 DEFINE_EVENT(ext4__write_begin, ext4_da_write_begin, 225 226 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, 227 unsigned int flags), 228 229 TP_ARGS(inode, pos, len, flags) 230 ); 231 232 DECLARE_EVENT_CLASS(ext4__write_end, 233 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, 234 unsigned int copied), 235 236 TP_ARGS(inode, pos, len, copied), 237 238 TP_STRUCT__entry( 239 __field( dev_t, dev ) 240 __field( ino_t, ino ) 241 __field( loff_t, pos ) 242 __field( unsigned int, len ) 243 __field( unsigned int, copied ) 244 ), 245 246 TP_fast_assign( 247 __entry->dev = inode->i_sb->s_dev; 248 __entry->ino = inode->i_ino; 249 __entry->pos = pos; 250 __entry->len = len; 251 __entry->copied = copied; 252 ), 253 254 TP_printk("dev %d,%d ino %lu pos %lld len %u copied %u", 255 MAJOR(__entry->dev), MINOR(__entry->dev), 256 (unsigned long) __entry->ino, 257 __entry->pos, __entry->len, __entry->copied) 258 ); 259 260 DEFINE_EVENT(ext4__write_end, ext4_write_end, 261 262 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, 263 unsigned int copied), 264 265 TP_ARGS(inode, pos, len, copied) 266 ); 267 268 DEFINE_EVENT(ext4__write_end, ext4_journalled_write_end, 269 270 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, 271 unsigned int copied), 272 273 TP_ARGS(inode, pos, len, copied) 274 ); 275 276 DEFINE_EVENT(ext4__write_end, ext4_da_write_end, 277 278 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, 279 unsigned int copied), 280 281 TP_ARGS(inode, pos, len, copied) 282 ); 283 284 TRACE_EVENT(ext4_da_writepages, 285 TP_PROTO(struct inode *inode, struct writeback_control *wbc), 286 287 TP_ARGS(inode, wbc), 288 289 TP_STRUCT__entry( 290 __field( dev_t, dev ) 291 __field( ino_t, ino ) 292 __field( long, nr_to_write ) 293 __field( long, pages_skipped ) 294 __field( loff_t, range_start ) 295 __field( loff_t, range_end ) 296 __field( pgoff_t, writeback_index ) 297 __field( int, sync_mode ) 298 __field( char, for_kupdate ) 299 __field( char, range_cyclic ) 300 ), 301 302 TP_fast_assign( 303 __entry->dev = inode->i_sb->s_dev; 304 __entry->ino = inode->i_ino; 305 __entry->nr_to_write = wbc->nr_to_write; 306 __entry->pages_skipped = wbc->pages_skipped; 307 __entry->range_start = wbc->range_start; 308 __entry->range_end = wbc->range_end; 309 __entry->writeback_index = inode->i_mapping->writeback_index; 310 __entry->sync_mode = wbc->sync_mode; 311 __entry->for_kupdate = wbc->for_kupdate; 312 __entry->range_cyclic = wbc->range_cyclic; 313 ), 314 315 TP_printk("dev %d,%d ino %lu nr_to_write %ld pages_skipped %ld " 316 "range_start %lld range_end %lld sync_mode %d " 317 "for_kupdate %d range_cyclic %d writeback_index %lu", 318 MAJOR(__entry->dev), MINOR(__entry->dev), 319 (unsigned long) __entry->ino, __entry->nr_to_write, 320 __entry->pages_skipped, __entry->range_start, 321 __entry->range_end, __entry->sync_mode, 322 __entry->for_kupdate, __entry->range_cyclic, 323 (unsigned long) __entry->writeback_index) 324 ); 325 326 TRACE_EVENT(ext4_da_write_pages, 327 TP_PROTO(struct inode *inode, struct mpage_da_data *mpd), 328 329 TP_ARGS(inode, mpd), 330 331 TP_STRUCT__entry( 332 __field( dev_t, dev ) 333 __field( ino_t, ino ) 334 __field( __u64, b_blocknr ) 335 __field( __u32, b_size ) 336 __field( __u32, b_state ) 337 __field( unsigned long, first_page ) 338 __field( int, io_done ) 339 __field( int, pages_written ) 340 __field( int, sync_mode ) 341 ), 342 343 TP_fast_assign( 344 __entry->dev = inode->i_sb->s_dev; 345 __entry->ino = inode->i_ino; 346 __entry->b_blocknr = mpd->b_blocknr; 347 __entry->b_size = mpd->b_size; 348 __entry->b_state = mpd->b_state; 349 __entry->first_page = mpd->first_page; 350 __entry->io_done = mpd->io_done; 351 __entry->pages_written = mpd->pages_written; 352 __entry->sync_mode = mpd->wbc->sync_mode; 353 ), 354 355 TP_printk("dev %d,%d ino %lu b_blocknr %llu b_size %u b_state 0x%04x " 356 "first_page %lu io_done %d pages_written %d sync_mode %d", 357 MAJOR(__entry->dev), MINOR(__entry->dev), 358 (unsigned long) __entry->ino, 359 __entry->b_blocknr, __entry->b_size, 360 __entry->b_state, __entry->first_page, 361 __entry->io_done, __entry->pages_written, 362 __entry->sync_mode 363 ) 364 ); 365 366 TRACE_EVENT(ext4_da_writepages_result, 367 TP_PROTO(struct inode *inode, struct writeback_control *wbc, 368 int ret, int pages_written), 369 370 TP_ARGS(inode, wbc, ret, pages_written), 371 372 TP_STRUCT__entry( 373 __field( dev_t, dev ) 374 __field( ino_t, ino ) 375 __field( int, ret ) 376 __field( int, pages_written ) 377 __field( long, pages_skipped ) 378 __field( pgoff_t, writeback_index ) 379 __field( int, sync_mode ) 380 ), 381 382 TP_fast_assign( 383 __entry->dev = inode->i_sb->s_dev; 384 __entry->ino = inode->i_ino; 385 __entry->ret = ret; 386 __entry->pages_written = pages_written; 387 __entry->pages_skipped = wbc->pages_skipped; 388 __entry->writeback_index = inode->i_mapping->writeback_index; 389 __entry->sync_mode = wbc->sync_mode; 390 ), 391 392 TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld " 393 "sync_mode %d writeback_index %lu", 394 MAJOR(__entry->dev), MINOR(__entry->dev), 395 (unsigned long) __entry->ino, __entry->ret, 396 __entry->pages_written, __entry->pages_skipped, 397 __entry->sync_mode, 398 (unsigned long) __entry->writeback_index) 399 ); 400 401 DECLARE_EVENT_CLASS(ext4__page_op, 402 TP_PROTO(struct page *page), 403 404 TP_ARGS(page), 405 406 TP_STRUCT__entry( 407 __field( dev_t, dev ) 408 __field( ino_t, ino ) 409 __field( pgoff_t, index ) 410 411 ), 412 413 TP_fast_assign( 414 __entry->dev = page->mapping->host->i_sb->s_dev; 415 __entry->ino = page->mapping->host->i_ino; 416 __entry->index = page->index; 417 ), 418 419 TP_printk("dev %d,%d ino %lu page_index %lu", 420 MAJOR(__entry->dev), MINOR(__entry->dev), 421 (unsigned long) __entry->ino, 422 (unsigned long) __entry->index) 423 ); 424 425 DEFINE_EVENT(ext4__page_op, ext4_writepage, 426 427 TP_PROTO(struct page *page), 428 429 TP_ARGS(page) 430 ); 431 432 DEFINE_EVENT(ext4__page_op, ext4_readpage, 433 434 TP_PROTO(struct page *page), 435 436 TP_ARGS(page) 437 ); 438 439 DEFINE_EVENT(ext4__page_op, ext4_releasepage, 440 441 TP_PROTO(struct page *page), 442 443 TP_ARGS(page) 444 ); 445 446 DECLARE_EVENT_CLASS(ext4_invalidatepage_op, 447 TP_PROTO(struct page *page, unsigned long offset), 448 449 TP_ARGS(page, offset), 450 451 TP_STRUCT__entry( 452 __field( dev_t, dev ) 453 __field( ino_t, ino ) 454 __field( pgoff_t, index ) 455 __field( unsigned long, offset ) 456 457 ), 458 459 TP_fast_assign( 460 __entry->dev = page->mapping->host->i_sb->s_dev; 461 __entry->ino = page->mapping->host->i_ino; 462 __entry->index = page->index; 463 __entry->offset = offset; 464 ), 465 466 TP_printk("dev %d,%d ino %lu page_index %lu offset %lu", 467 MAJOR(__entry->dev), MINOR(__entry->dev), 468 (unsigned long) __entry->ino, 469 (unsigned long) __entry->index, __entry->offset) 470 ); 471 472 DEFINE_EVENT(ext4_invalidatepage_op, ext4_invalidatepage, 473 TP_PROTO(struct page *page, unsigned long offset), 474 475 TP_ARGS(page, offset) 476 ); 477 478 DEFINE_EVENT(ext4_invalidatepage_op, ext4_journalled_invalidatepage, 479 TP_PROTO(struct page *page, unsigned long offset), 480 481 TP_ARGS(page, offset) 482 ); 483 484 TRACE_EVENT(ext4_discard_blocks, 485 TP_PROTO(struct super_block *sb, unsigned long long blk, 486 unsigned long long count), 487 488 TP_ARGS(sb, blk, count), 489 490 TP_STRUCT__entry( 491 __field( dev_t, dev ) 492 __field( __u64, blk ) 493 __field( __u64, count ) 494 495 ), 496 497 TP_fast_assign( 498 __entry->dev = sb->s_dev; 499 __entry->blk = blk; 500 __entry->count = count; 501 ), 502 503 TP_printk("dev %d,%d blk %llu count %llu", 504 MAJOR(__entry->dev), MINOR(__entry->dev), 505 __entry->blk, __entry->count) 506 ); 507 508 DECLARE_EVENT_CLASS(ext4__mb_new_pa, 509 TP_PROTO(struct ext4_allocation_context *ac, 510 struct ext4_prealloc_space *pa), 511 512 TP_ARGS(ac, pa), 513 514 TP_STRUCT__entry( 515 __field( dev_t, dev ) 516 __field( ino_t, ino ) 517 __field( __u64, pa_pstart ) 518 __field( __u64, pa_lstart ) 519 __field( __u32, pa_len ) 520 521 ), 522 523 TP_fast_assign( 524 __entry->dev = ac->ac_sb->s_dev; 525 __entry->ino = ac->ac_inode->i_ino; 526 __entry->pa_pstart = pa->pa_pstart; 527 __entry->pa_lstart = pa->pa_lstart; 528 __entry->pa_len = pa->pa_len; 529 ), 530 531 TP_printk("dev %d,%d ino %lu pstart %llu len %u lstart %llu", 532 MAJOR(__entry->dev), MINOR(__entry->dev), 533 (unsigned long) __entry->ino, 534 __entry->pa_pstart, __entry->pa_len, __entry->pa_lstart) 535 ); 536 537 DEFINE_EVENT(ext4__mb_new_pa, ext4_mb_new_inode_pa, 538 539 TP_PROTO(struct ext4_allocation_context *ac, 540 struct ext4_prealloc_space *pa), 541 542 TP_ARGS(ac, pa) 543 ); 544 545 DEFINE_EVENT(ext4__mb_new_pa, ext4_mb_new_group_pa, 546 547 TP_PROTO(struct ext4_allocation_context *ac, 548 struct ext4_prealloc_space *pa), 549 550 TP_ARGS(ac, pa) 551 ); 552 553 TRACE_EVENT(ext4_mb_release_inode_pa, 554 TP_PROTO(struct ext4_prealloc_space *pa, 555 unsigned long long block, unsigned int count), 556 557 TP_ARGS(pa, block, count), 558 559 TP_STRUCT__entry( 560 __field( dev_t, dev ) 561 __field( ino_t, ino ) 562 __field( __u64, block ) 563 __field( __u32, count ) 564 565 ), 566 567 TP_fast_assign( 568 __entry->dev = pa->pa_inode->i_sb->s_dev; 569 __entry->ino = pa->pa_inode->i_ino; 570 __entry->block = block; 571 __entry->count = count; 572 ), 573 574 TP_printk("dev %d,%d ino %lu block %llu count %u", 575 MAJOR(__entry->dev), MINOR(__entry->dev), 576 (unsigned long) __entry->ino, 577 __entry->block, __entry->count) 578 ); 579 580 TRACE_EVENT(ext4_mb_release_group_pa, 581 TP_PROTO(struct super_block *sb, struct ext4_prealloc_space *pa), 582 583 TP_ARGS(sb, pa), 584 585 TP_STRUCT__entry( 586 __field( dev_t, dev ) 587 __field( __u64, pa_pstart ) 588 __field( __u32, pa_len ) 589 590 ), 591 592 TP_fast_assign( 593 __entry->dev = sb->s_dev; 594 __entry->pa_pstart = pa->pa_pstart; 595 __entry->pa_len = pa->pa_len; 596 ), 597 598 TP_printk("dev %d,%d pstart %llu len %u", 599 MAJOR(__entry->dev), MINOR(__entry->dev), 600 __entry->pa_pstart, __entry->pa_len) 601 ); 602 603 TRACE_EVENT(ext4_discard_preallocations, 604 TP_PROTO(struct inode *inode), 605 606 TP_ARGS(inode), 607 608 TP_STRUCT__entry( 609 __field( dev_t, dev ) 610 __field( ino_t, ino ) 611 612 ), 613 614 TP_fast_assign( 615 __entry->dev = inode->i_sb->s_dev; 616 __entry->ino = inode->i_ino; 617 ), 618 619 TP_printk("dev %d,%d ino %lu", 620 MAJOR(__entry->dev), MINOR(__entry->dev), 621 (unsigned long) __entry->ino) 622 ); 623 624 TRACE_EVENT(ext4_mb_discard_preallocations, 625 TP_PROTO(struct super_block *sb, int needed), 626 627 TP_ARGS(sb, needed), 628 629 TP_STRUCT__entry( 630 __field( dev_t, dev ) 631 __field( int, needed ) 632 633 ), 634 635 TP_fast_assign( 636 __entry->dev = sb->s_dev; 637 __entry->needed = needed; 638 ), 639 640 TP_printk("dev %d,%d needed %d", 641 MAJOR(__entry->dev), MINOR(__entry->dev), 642 __entry->needed) 643 ); 644 645 TRACE_EVENT(ext4_request_blocks, 646 TP_PROTO(struct ext4_allocation_request *ar), 647 648 TP_ARGS(ar), 649 650 TP_STRUCT__entry( 651 __field( dev_t, dev ) 652 __field( ino_t, ino ) 653 __field( unsigned int, len ) 654 __field( __u32, logical ) 655 __field( __u32, lleft ) 656 __field( __u32, lright ) 657 __field( __u64, goal ) 658 __field( __u64, pleft ) 659 __field( __u64, pright ) 660 __field( unsigned int, flags ) 661 ), 662 663 TP_fast_assign( 664 __entry->dev = ar->inode->i_sb->s_dev; 665 __entry->ino = ar->inode->i_ino; 666 __entry->len = ar->len; 667 __entry->logical = ar->logical; 668 __entry->goal = ar->goal; 669 __entry->lleft = ar->lleft; 670 __entry->lright = ar->lright; 671 __entry->pleft = ar->pleft; 672 __entry->pright = ar->pright; 673 __entry->flags = ar->flags; 674 ), 675 676 TP_printk("dev %d,%d ino %lu flags %u len %u lblk %u goal %llu " 677 "lleft %u lright %u pleft %llu pright %llu ", 678 MAJOR(__entry->dev), MINOR(__entry->dev), 679 (unsigned long) __entry->ino, __entry->flags, 680 __entry->len, __entry->logical, __entry->goal, 681 __entry->lleft, __entry->lright, __entry->pleft, 682 __entry->pright) 683 ); 684 685 TRACE_EVENT(ext4_allocate_blocks, 686 TP_PROTO(struct ext4_allocation_request *ar, unsigned long long block), 687 688 TP_ARGS(ar, block), 689 690 TP_STRUCT__entry( 691 __field( dev_t, dev ) 692 __field( ino_t, ino ) 693 __field( __u64, block ) 694 __field( unsigned int, len ) 695 __field( __u32, logical ) 696 __field( __u32, lleft ) 697 __field( __u32, lright ) 698 __field( __u64, goal ) 699 __field( __u64, pleft ) 700 __field( __u64, pright ) 701 __field( unsigned int, flags ) 702 ), 703 704 TP_fast_assign( 705 __entry->dev = ar->inode->i_sb->s_dev; 706 __entry->ino = ar->inode->i_ino; 707 __entry->block = block; 708 __entry->len = ar->len; 709 __entry->logical = ar->logical; 710 __entry->goal = ar->goal; 711 __entry->lleft = ar->lleft; 712 __entry->lright = ar->lright; 713 __entry->pleft = ar->pleft; 714 __entry->pright = ar->pright; 715 __entry->flags = ar->flags; 716 ), 717 718 TP_printk("dev %d,%d ino %lu flags %u len %u block %llu lblk %u " 719 "goal %llu lleft %u lright %u pleft %llu pright %llu", 720 MAJOR(__entry->dev), MINOR(__entry->dev), 721 (unsigned long) __entry->ino, __entry->flags, 722 __entry->len, __entry->block, __entry->logical, 723 __entry->goal, __entry->lleft, __entry->lright, 724 __entry->pleft, __entry->pright) 725 ); 726 727 TRACE_EVENT(ext4_free_blocks, 728 TP_PROTO(struct inode *inode, __u64 block, unsigned long count, 729 int flags), 730 731 TP_ARGS(inode, block, count, flags), 732 733 TP_STRUCT__entry( 734 __field( dev_t, dev ) 735 __field( ino_t, ino ) 736 __field( __u64, block ) 737 __field( unsigned long, count ) 738 __field( int, flags ) 739 __field( __u16, mode ) 740 ), 741 742 TP_fast_assign( 743 __entry->dev = inode->i_sb->s_dev; 744 __entry->ino = inode->i_ino; 745 __entry->block = block; 746 __entry->count = count; 747 __entry->flags = flags; 748 __entry->mode = inode->i_mode; 749 ), 750 751 TP_printk("dev %d,%d ino %lu mode 0%o block %llu count %lu flags %d", 752 MAJOR(__entry->dev), MINOR(__entry->dev), 753 (unsigned long) __entry->ino, 754 __entry->mode, __entry->block, __entry->count, 755 __entry->flags) 756 ); 757 758 TRACE_EVENT(ext4_sync_file_enter, 759 TP_PROTO(struct file *file, int datasync), 760 761 TP_ARGS(file, datasync), 762 763 TP_STRUCT__entry( 764 __field( dev_t, dev ) 765 __field( ino_t, ino ) 766 __field( ino_t, parent ) 767 __field( int, datasync ) 768 ), 769 770 TP_fast_assign( 771 struct dentry *dentry = file->f_path.dentry; 772 773 __entry->dev = dentry->d_inode->i_sb->s_dev; 774 __entry->ino = dentry->d_inode->i_ino; 775 __entry->datasync = datasync; 776 __entry->parent = dentry->d_parent->d_inode->i_ino; 777 ), 778 779 TP_printk("dev %d,%d ino %lu parent %lu datasync %d ", 780 MAJOR(__entry->dev), MINOR(__entry->dev), 781 (unsigned long) __entry->ino, 782 (unsigned long) __entry->parent, __entry->datasync) 783 ); 784 785 TRACE_EVENT(ext4_sync_file_exit, 786 TP_PROTO(struct inode *inode, int ret), 787 788 TP_ARGS(inode, ret), 789 790 TP_STRUCT__entry( 791 __field( dev_t, dev ) 792 __field( ino_t, ino ) 793 __field( int, ret ) 794 ), 795 796 TP_fast_assign( 797 __entry->dev = inode->i_sb->s_dev; 798 __entry->ino = inode->i_ino; 799 __entry->ret = ret; 800 ), 801 802 TP_printk("dev %d,%d ino %lu ret %d", 803 MAJOR(__entry->dev), MINOR(__entry->dev), 804 (unsigned long) __entry->ino, 805 __entry->ret) 806 ); 807 808 TRACE_EVENT(ext4_sync_fs, 809 TP_PROTO(struct super_block *sb, int wait), 810 811 TP_ARGS(sb, wait), 812 813 TP_STRUCT__entry( 814 __field( dev_t, dev ) 815 __field( int, wait ) 816 817 ), 818 819 TP_fast_assign( 820 __entry->dev = sb->s_dev; 821 __entry->wait = wait; 822 ), 823 824 TP_printk("dev %d,%d wait %d", 825 MAJOR(__entry->dev), MINOR(__entry->dev), 826 __entry->wait) 827 ); 828 829 TRACE_EVENT(ext4_alloc_da_blocks, 830 TP_PROTO(struct inode *inode), 831 832 TP_ARGS(inode), 833 834 TP_STRUCT__entry( 835 __field( dev_t, dev ) 836 __field( ino_t, ino ) 837 __field( unsigned int, data_blocks ) 838 __field( unsigned int, meta_blocks ) 839 ), 840 841 TP_fast_assign( 842 __entry->dev = inode->i_sb->s_dev; 843 __entry->ino = inode->i_ino; 844 __entry->data_blocks = EXT4_I(inode)->i_reserved_data_blocks; 845 __entry->meta_blocks = EXT4_I(inode)->i_reserved_meta_blocks; 846 ), 847 848 TP_printk("dev %d,%d ino %lu data_blocks %u meta_blocks %u", 849 MAJOR(__entry->dev), MINOR(__entry->dev), 850 (unsigned long) __entry->ino, 851 __entry->data_blocks, __entry->meta_blocks) 852 ); 853 854 TRACE_EVENT(ext4_mballoc_alloc, 855 TP_PROTO(struct ext4_allocation_context *ac), 856 857 TP_ARGS(ac), 858 859 TP_STRUCT__entry( 860 __field( dev_t, dev ) 861 __field( ino_t, ino ) 862 __field( __u32, orig_logical ) 863 __field( int, orig_start ) 864 __field( __u32, orig_group ) 865 __field( int, orig_len ) 866 __field( __u32, goal_logical ) 867 __field( int, goal_start ) 868 __field( __u32, goal_group ) 869 __field( int, goal_len ) 870 __field( __u32, result_logical ) 871 __field( int, result_start ) 872 __field( __u32, result_group ) 873 __field( int, result_len ) 874 __field( __u16, found ) 875 __field( __u16, groups ) 876 __field( __u16, buddy ) 877 __field( __u16, flags ) 878 __field( __u16, tail ) 879 __field( __u8, cr ) 880 ), 881 882 TP_fast_assign( 883 __entry->dev = ac->ac_inode->i_sb->s_dev; 884 __entry->ino = ac->ac_inode->i_ino; 885 __entry->orig_logical = ac->ac_o_ex.fe_logical; 886 __entry->orig_start = ac->ac_o_ex.fe_start; 887 __entry->orig_group = ac->ac_o_ex.fe_group; 888 __entry->orig_len = ac->ac_o_ex.fe_len; 889 __entry->goal_logical = ac->ac_g_ex.fe_logical; 890 __entry->goal_start = ac->ac_g_ex.fe_start; 891 __entry->goal_group = ac->ac_g_ex.fe_group; 892 __entry->goal_len = ac->ac_g_ex.fe_len; 893 __entry->result_logical = ac->ac_f_ex.fe_logical; 894 __entry->result_start = ac->ac_f_ex.fe_start; 895 __entry->result_group = ac->ac_f_ex.fe_group; 896 __entry->result_len = ac->ac_f_ex.fe_len; 897 __entry->found = ac->ac_found; 898 __entry->flags = ac->ac_flags; 899 __entry->groups = ac->ac_groups_scanned; 900 __entry->buddy = ac->ac_buddy; 901 __entry->tail = ac->ac_tail; 902 __entry->cr = ac->ac_criteria; 903 ), 904 905 TP_printk("dev %d,%d inode %lu orig %u/%d/%u@%u goal %u/%d/%u@%u " 906 "result %u/%d/%u@%u blks %u grps %u cr %u flags 0x%04x " 907 "tail %u broken %u", 908 MAJOR(__entry->dev), MINOR(__entry->dev), 909 (unsigned long) __entry->ino, 910 __entry->orig_group, __entry->orig_start, 911 __entry->orig_len, __entry->orig_logical, 912 __entry->goal_group, __entry->goal_start, 913 __entry->goal_len, __entry->goal_logical, 914 __entry->result_group, __entry->result_start, 915 __entry->result_len, __entry->result_logical, 916 __entry->found, __entry->groups, __entry->cr, 917 __entry->flags, __entry->tail, 918 __entry->buddy ? 1 << __entry->buddy : 0) 919 ); 920 921 TRACE_EVENT(ext4_mballoc_prealloc, 922 TP_PROTO(struct ext4_allocation_context *ac), 923 924 TP_ARGS(ac), 925 926 TP_STRUCT__entry( 927 __field( dev_t, dev ) 928 __field( ino_t, ino ) 929 __field( __u32, orig_logical ) 930 __field( int, orig_start ) 931 __field( __u32, orig_group ) 932 __field( int, orig_len ) 933 __field( __u32, result_logical ) 934 __field( int, result_start ) 935 __field( __u32, result_group ) 936 __field( int, result_len ) 937 ), 938 939 TP_fast_assign( 940 __entry->dev = ac->ac_inode->i_sb->s_dev; 941 __entry->ino = ac->ac_inode->i_ino; 942 __entry->orig_logical = ac->ac_o_ex.fe_logical; 943 __entry->orig_start = ac->ac_o_ex.fe_start; 944 __entry->orig_group = ac->ac_o_ex.fe_group; 945 __entry->orig_len = ac->ac_o_ex.fe_len; 946 __entry->result_logical = ac->ac_b_ex.fe_logical; 947 __entry->result_start = ac->ac_b_ex.fe_start; 948 __entry->result_group = ac->ac_b_ex.fe_group; 949 __entry->result_len = ac->ac_b_ex.fe_len; 950 ), 951 952 TP_printk("dev %d,%d inode %lu orig %u/%d/%u@%u result %u/%d/%u@%u", 953 MAJOR(__entry->dev), MINOR(__entry->dev), 954 (unsigned long) __entry->ino, 955 __entry->orig_group, __entry->orig_start, 956 __entry->orig_len, __entry->orig_logical, 957 __entry->result_group, __entry->result_start, 958 __entry->result_len, __entry->result_logical) 959 ); 960 961 DECLARE_EVENT_CLASS(ext4__mballoc, 962 TP_PROTO(struct super_block *sb, 963 struct inode *inode, 964 ext4_group_t group, 965 ext4_grpblk_t start, 966 ext4_grpblk_t len), 967 968 TP_ARGS(sb, inode, group, start, len), 969 970 TP_STRUCT__entry( 971 __field( dev_t, dev ) 972 __field( ino_t, ino ) 973 __field( int, result_start ) 974 __field( __u32, result_group ) 975 __field( int, result_len ) 976 ), 977 978 TP_fast_assign( 979 __entry->dev = sb->s_dev; 980 __entry->ino = inode ? inode->i_ino : 0; 981 __entry->result_start = start; 982 __entry->result_group = group; 983 __entry->result_len = len; 984 ), 985 986 TP_printk("dev %d,%d inode %lu extent %u/%d/%d ", 987 MAJOR(__entry->dev), MINOR(__entry->dev), 988 (unsigned long) __entry->ino, 989 __entry->result_group, __entry->result_start, 990 __entry->result_len) 991 ); 992 993 DEFINE_EVENT(ext4__mballoc, ext4_mballoc_discard, 994 995 TP_PROTO(struct super_block *sb, 996 struct inode *inode, 997 ext4_group_t group, 998 ext4_grpblk_t start, 999 ext4_grpblk_t len), 1000 1001 TP_ARGS(sb, inode, group, start, len) 1002 ); 1003 1004 DEFINE_EVENT(ext4__mballoc, ext4_mballoc_free, 1005 1006 TP_PROTO(struct super_block *sb, 1007 struct inode *inode, 1008 ext4_group_t group, 1009 ext4_grpblk_t start, 1010 ext4_grpblk_t len), 1011 1012 TP_ARGS(sb, inode, group, start, len) 1013 ); 1014 1015 TRACE_EVENT(ext4_forget, 1016 TP_PROTO(struct inode *inode, int is_metadata, __u64 block), 1017 1018 TP_ARGS(inode, is_metadata, block), 1019 1020 TP_STRUCT__entry( 1021 __field( dev_t, dev ) 1022 __field( ino_t, ino ) 1023 __field( __u64, block ) 1024 __field( int, is_metadata ) 1025 __field( __u16, mode ) 1026 ), 1027 1028 TP_fast_assign( 1029 __entry->dev = inode->i_sb->s_dev; 1030 __entry->ino = inode->i_ino; 1031 __entry->block = block; 1032 __entry->is_metadata = is_metadata; 1033 __entry->mode = inode->i_mode; 1034 ), 1035 1036 TP_printk("dev %d,%d ino %lu mode 0%o is_metadata %d block %llu", 1037 MAJOR(__entry->dev), MINOR(__entry->dev), 1038 (unsigned long) __entry->ino, 1039 __entry->mode, __entry->is_metadata, __entry->block) 1040 ); 1041 1042 TRACE_EVENT(ext4_da_update_reserve_space, 1043 TP_PROTO(struct inode *inode, int used_blocks, int quota_claim), 1044 1045 TP_ARGS(inode, used_blocks, quota_claim), 1046 1047 TP_STRUCT__entry( 1048 __field( dev_t, dev ) 1049 __field( ino_t, ino ) 1050 __field( __u64, i_blocks ) 1051 __field( int, used_blocks ) 1052 __field( int, reserved_data_blocks ) 1053 __field( int, reserved_meta_blocks ) 1054 __field( int, allocated_meta_blocks ) 1055 __field( int, quota_claim ) 1056 __field( __u16, mode ) 1057 ), 1058 1059 TP_fast_assign( 1060 __entry->dev = inode->i_sb->s_dev; 1061 __entry->ino = inode->i_ino; 1062 __entry->i_blocks = inode->i_blocks; 1063 __entry->used_blocks = used_blocks; 1064 __entry->reserved_data_blocks = 1065 EXT4_I(inode)->i_reserved_data_blocks; 1066 __entry->reserved_meta_blocks = 1067 EXT4_I(inode)->i_reserved_meta_blocks; 1068 __entry->allocated_meta_blocks = 1069 EXT4_I(inode)->i_allocated_meta_blocks; 1070 __entry->quota_claim = quota_claim; 1071 __entry->mode = inode->i_mode; 1072 ), 1073 1074 TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu used_blocks %d " 1075 "reserved_data_blocks %d reserved_meta_blocks %d " 1076 "allocated_meta_blocks %d quota_claim %d", 1077 MAJOR(__entry->dev), MINOR(__entry->dev), 1078 (unsigned long) __entry->ino, 1079 __entry->mode, __entry->i_blocks, 1080 __entry->used_blocks, __entry->reserved_data_blocks, 1081 __entry->reserved_meta_blocks, __entry->allocated_meta_blocks, 1082 __entry->quota_claim) 1083 ); 1084 1085 TRACE_EVENT(ext4_da_reserve_space, 1086 TP_PROTO(struct inode *inode, int md_needed), 1087 1088 TP_ARGS(inode, md_needed), 1089 1090 TP_STRUCT__entry( 1091 __field( dev_t, dev ) 1092 __field( ino_t, ino ) 1093 __field( __u64, i_blocks ) 1094 __field( int, md_needed ) 1095 __field( int, reserved_data_blocks ) 1096 __field( int, reserved_meta_blocks ) 1097 __field( __u16, mode ) 1098 ), 1099 1100 TP_fast_assign( 1101 __entry->dev = inode->i_sb->s_dev; 1102 __entry->ino = inode->i_ino; 1103 __entry->i_blocks = inode->i_blocks; 1104 __entry->md_needed = md_needed; 1105 __entry->reserved_data_blocks = EXT4_I(inode)->i_reserved_data_blocks; 1106 __entry->reserved_meta_blocks = EXT4_I(inode)->i_reserved_meta_blocks; 1107 __entry->mode = inode->i_mode; 1108 ), 1109 1110 TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu md_needed %d " 1111 "reserved_data_blocks %d reserved_meta_blocks %d", 1112 MAJOR(__entry->dev), MINOR(__entry->dev), 1113 (unsigned long) __entry->ino, 1114 __entry->mode, __entry->i_blocks, 1115 __entry->md_needed, __entry->reserved_data_blocks, 1116 __entry->reserved_meta_blocks) 1117 ); 1118 1119 TRACE_EVENT(ext4_da_release_space, 1120 TP_PROTO(struct inode *inode, int freed_blocks), 1121 1122 TP_ARGS(inode, freed_blocks), 1123 1124 TP_STRUCT__entry( 1125 __field( dev_t, dev ) 1126 __field( ino_t, ino ) 1127 __field( __u64, i_blocks ) 1128 __field( int, freed_blocks ) 1129 __field( int, reserved_data_blocks ) 1130 __field( int, reserved_meta_blocks ) 1131 __field( int, allocated_meta_blocks ) 1132 __field( __u16, mode ) 1133 ), 1134 1135 TP_fast_assign( 1136 __entry->dev = inode->i_sb->s_dev; 1137 __entry->ino = inode->i_ino; 1138 __entry->i_blocks = inode->i_blocks; 1139 __entry->freed_blocks = freed_blocks; 1140 __entry->reserved_data_blocks = EXT4_I(inode)->i_reserved_data_blocks; 1141 __entry->reserved_meta_blocks = EXT4_I(inode)->i_reserved_meta_blocks; 1142 __entry->allocated_meta_blocks = EXT4_I(inode)->i_allocated_meta_blocks; 1143 __entry->mode = inode->i_mode; 1144 ), 1145 1146 TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu freed_blocks %d " 1147 "reserved_data_blocks %d reserved_meta_blocks %d " 1148 "allocated_meta_blocks %d", 1149 MAJOR(__entry->dev), MINOR(__entry->dev), 1150 (unsigned long) __entry->ino, 1151 __entry->mode, __entry->i_blocks, 1152 __entry->freed_blocks, __entry->reserved_data_blocks, 1153 __entry->reserved_meta_blocks, __entry->allocated_meta_blocks) 1154 ); 1155 1156 DECLARE_EVENT_CLASS(ext4__bitmap_load, 1157 TP_PROTO(struct super_block *sb, unsigned long group), 1158 1159 TP_ARGS(sb, group), 1160 1161 TP_STRUCT__entry( 1162 __field( dev_t, dev ) 1163 __field( __u32, group ) 1164 1165 ), 1166 1167 TP_fast_assign( 1168 __entry->dev = sb->s_dev; 1169 __entry->group = group; 1170 ), 1171 1172 TP_printk("dev %d,%d group %u", 1173 MAJOR(__entry->dev), MINOR(__entry->dev), 1174 __entry->group) 1175 ); 1176 1177 DEFINE_EVENT(ext4__bitmap_load, ext4_mb_bitmap_load, 1178 1179 TP_PROTO(struct super_block *sb, unsigned long group), 1180 1181 TP_ARGS(sb, group) 1182 ); 1183 1184 DEFINE_EVENT(ext4__bitmap_load, ext4_mb_buddy_bitmap_load, 1185 1186 TP_PROTO(struct super_block *sb, unsigned long group), 1187 1188 TP_ARGS(sb, group) 1189 ); 1190 1191 DEFINE_EVENT(ext4__bitmap_load, ext4_read_block_bitmap_load, 1192 1193 TP_PROTO(struct super_block *sb, unsigned long group), 1194 1195 TP_ARGS(sb, group) 1196 ); 1197 1198 DEFINE_EVENT(ext4__bitmap_load, ext4_load_inode_bitmap, 1199 1200 TP_PROTO(struct super_block *sb, unsigned long group), 1201 1202 TP_ARGS(sb, group) 1203 ); 1204 1205 TRACE_EVENT(ext4_direct_IO_enter, 1206 TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw), 1207 1208 TP_ARGS(inode, offset, len, rw), 1209 1210 TP_STRUCT__entry( 1211 __field( dev_t, dev ) 1212 __field( ino_t, ino ) 1213 __field( loff_t, pos ) 1214 __field( unsigned long, len ) 1215 __field( int, rw ) 1216 ), 1217 1218 TP_fast_assign( 1219 __entry->dev = inode->i_sb->s_dev; 1220 __entry->ino = inode->i_ino; 1221 __entry->pos = offset; 1222 __entry->len = len; 1223 __entry->rw = rw; 1224 ), 1225 1226 TP_printk("dev %d,%d ino %lu pos %lld len %lu rw %d", 1227 MAJOR(__entry->dev), MINOR(__entry->dev), 1228 (unsigned long) __entry->ino, 1229 __entry->pos, __entry->len, __entry->rw) 1230 ); 1231 1232 TRACE_EVENT(ext4_direct_IO_exit, 1233 TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, 1234 int rw, int ret), 1235 1236 TP_ARGS(inode, offset, len, rw, ret), 1237 1238 TP_STRUCT__entry( 1239 __field( dev_t, dev ) 1240 __field( ino_t, ino ) 1241 __field( loff_t, pos ) 1242 __field( unsigned long, len ) 1243 __field( int, rw ) 1244 __field( int, ret ) 1245 ), 1246 1247 TP_fast_assign( 1248 __entry->dev = inode->i_sb->s_dev; 1249 __entry->ino = inode->i_ino; 1250 __entry->pos = offset; 1251 __entry->len = len; 1252 __entry->rw = rw; 1253 __entry->ret = ret; 1254 ), 1255 1256 TP_printk("dev %d,%d ino %lu pos %lld len %lu rw %d ret %d", 1257 MAJOR(__entry->dev), MINOR(__entry->dev), 1258 (unsigned long) __entry->ino, 1259 __entry->pos, __entry->len, 1260 __entry->rw, __entry->ret) 1261 ); 1262 1263 TRACE_EVENT(ext4_fallocate_enter, 1264 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode), 1265 1266 TP_ARGS(inode, offset, len, mode), 1267 1268 TP_STRUCT__entry( 1269 __field( dev_t, dev ) 1270 __field( ino_t, ino ) 1271 __field( loff_t, pos ) 1272 __field( loff_t, len ) 1273 __field( int, mode ) 1274 ), 1275 1276 TP_fast_assign( 1277 __entry->dev = inode->i_sb->s_dev; 1278 __entry->ino = inode->i_ino; 1279 __entry->pos = offset; 1280 __entry->len = len; 1281 __entry->mode = mode; 1282 ), 1283 1284 TP_printk("dev %d,%d ino %lu pos %lld len %lld mode %d", 1285 MAJOR(__entry->dev), MINOR(__entry->dev), 1286 (unsigned long) __entry->ino, __entry->pos, 1287 __entry->len, __entry->mode) 1288 ); 1289 1290 TRACE_EVENT(ext4_fallocate_exit, 1291 TP_PROTO(struct inode *inode, loff_t offset, 1292 unsigned int max_blocks, int ret), 1293 1294 TP_ARGS(inode, offset, max_blocks, ret), 1295 1296 TP_STRUCT__entry( 1297 __field( dev_t, dev ) 1298 __field( ino_t, ino ) 1299 __field( loff_t, pos ) 1300 __field( unsigned int, blocks ) 1301 __field( int, ret ) 1302 ), 1303 1304 TP_fast_assign( 1305 __entry->dev = inode->i_sb->s_dev; 1306 __entry->ino = inode->i_ino; 1307 __entry->pos = offset; 1308 __entry->blocks = max_blocks; 1309 __entry->ret = ret; 1310 ), 1311 1312 TP_printk("dev %d,%d ino %lu pos %lld blocks %u ret %d", 1313 MAJOR(__entry->dev), MINOR(__entry->dev), 1314 (unsigned long) __entry->ino, 1315 __entry->pos, __entry->blocks, 1316 __entry->ret) 1317 ); 1318 1319 TRACE_EVENT(ext4_punch_hole, 1320 TP_PROTO(struct inode *inode, loff_t offset, loff_t len), 1321 1322 TP_ARGS(inode, offset, len), 1323 1324 TP_STRUCT__entry( 1325 __field( dev_t, dev ) 1326 __field( ino_t, ino ) 1327 __field( loff_t, offset ) 1328 __field( loff_t, len ) 1329 ), 1330 1331 TP_fast_assign( 1332 __entry->dev = inode->i_sb->s_dev; 1333 __entry->ino = inode->i_ino; 1334 __entry->offset = offset; 1335 __entry->len = len; 1336 ), 1337 1338 TP_printk("dev %d,%d ino %lu offset %lld len %lld", 1339 MAJOR(__entry->dev), MINOR(__entry->dev), 1340 (unsigned long) __entry->ino, 1341 __entry->offset, __entry->len) 1342 ); 1343 1344 TRACE_EVENT(ext4_unlink_enter, 1345 TP_PROTO(struct inode *parent, struct dentry *dentry), 1346 1347 TP_ARGS(parent, dentry), 1348 1349 TP_STRUCT__entry( 1350 __field( dev_t, dev ) 1351 __field( ino_t, ino ) 1352 __field( ino_t, parent ) 1353 __field( loff_t, size ) 1354 ), 1355 1356 TP_fast_assign( 1357 __entry->dev = dentry->d_inode->i_sb->s_dev; 1358 __entry->ino = dentry->d_inode->i_ino; 1359 __entry->parent = parent->i_ino; 1360 __entry->size = dentry->d_inode->i_size; 1361 ), 1362 1363 TP_printk("dev %d,%d ino %lu size %lld parent %lu", 1364 MAJOR(__entry->dev), MINOR(__entry->dev), 1365 (unsigned long) __entry->ino, __entry->size, 1366 (unsigned long) __entry->parent) 1367 ); 1368 1369 TRACE_EVENT(ext4_unlink_exit, 1370 TP_PROTO(struct dentry *dentry, int ret), 1371 1372 TP_ARGS(dentry, ret), 1373 1374 TP_STRUCT__entry( 1375 __field( dev_t, dev ) 1376 __field( ino_t, ino ) 1377 __field( int, ret ) 1378 ), 1379 1380 TP_fast_assign( 1381 __entry->dev = dentry->d_inode->i_sb->s_dev; 1382 __entry->ino = dentry->d_inode->i_ino; 1383 __entry->ret = ret; 1384 ), 1385 1386 TP_printk("dev %d,%d ino %lu ret %d", 1387 MAJOR(__entry->dev), MINOR(__entry->dev), 1388 (unsigned long) __entry->ino, 1389 __entry->ret) 1390 ); 1391 1392 DECLARE_EVENT_CLASS(ext4__truncate, 1393 TP_PROTO(struct inode *inode), 1394 1395 TP_ARGS(inode), 1396 1397 TP_STRUCT__entry( 1398 __field( dev_t, dev ) 1399 __field( ino_t, ino ) 1400 __field( __u64, blocks ) 1401 ), 1402 1403 TP_fast_assign( 1404 __entry->dev = inode->i_sb->s_dev; 1405 __entry->ino = inode->i_ino; 1406 __entry->blocks = inode->i_blocks; 1407 ), 1408 1409 TP_printk("dev %d,%d ino %lu blocks %llu", 1410 MAJOR(__entry->dev), MINOR(__entry->dev), 1411 (unsigned long) __entry->ino, __entry->blocks) 1412 ); 1413 1414 DEFINE_EVENT(ext4__truncate, ext4_truncate_enter, 1415 1416 TP_PROTO(struct inode *inode), 1417 1418 TP_ARGS(inode) 1419 ); 1420 1421 DEFINE_EVENT(ext4__truncate, ext4_truncate_exit, 1422 1423 TP_PROTO(struct inode *inode), 1424 1425 TP_ARGS(inode) 1426 ); 1427 1428 /* 'ux' is the uninitialized extent. */ 1429 TRACE_EVENT(ext4_ext_convert_to_initialized_enter, 1430 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, 1431 struct ext4_extent *ux), 1432 1433 TP_ARGS(inode, map, ux), 1434 1435 TP_STRUCT__entry( 1436 __field( dev_t, dev ) 1437 __field( ino_t, ino ) 1438 __field( ext4_lblk_t, m_lblk ) 1439 __field( unsigned, m_len ) 1440 __field( ext4_lblk_t, u_lblk ) 1441 __field( unsigned, u_len ) 1442 __field( ext4_fsblk_t, u_pblk ) 1443 ), 1444 1445 TP_fast_assign( 1446 __entry->dev = inode->i_sb->s_dev; 1447 __entry->ino = inode->i_ino; 1448 __entry->m_lblk = map->m_lblk; 1449 __entry->m_len = map->m_len; 1450 __entry->u_lblk = le32_to_cpu(ux->ee_block); 1451 __entry->u_len = ext4_ext_get_actual_len(ux); 1452 __entry->u_pblk = ext4_ext_pblock(ux); 1453 ), 1454 1455 TP_printk("dev %d,%d ino %lu m_lblk %u m_len %u u_lblk %u u_len %u " 1456 "u_pblk %llu", 1457 MAJOR(__entry->dev), MINOR(__entry->dev), 1458 (unsigned long) __entry->ino, 1459 __entry->m_lblk, __entry->m_len, 1460 __entry->u_lblk, __entry->u_len, __entry->u_pblk) 1461 ); 1462 1463 /* 1464 * 'ux' is the uninitialized extent. 1465 * 'ix' is the initialized extent to which blocks are transferred. 1466 */ 1467 TRACE_EVENT(ext4_ext_convert_to_initialized_fastpath, 1468 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, 1469 struct ext4_extent *ux, struct ext4_extent *ix), 1470 1471 TP_ARGS(inode, map, ux, ix), 1472 1473 TP_STRUCT__entry( 1474 __field( dev_t, dev ) 1475 __field( ino_t, ino ) 1476 __field( ext4_lblk_t, m_lblk ) 1477 __field( unsigned, m_len ) 1478 __field( ext4_lblk_t, u_lblk ) 1479 __field( unsigned, u_len ) 1480 __field( ext4_fsblk_t, u_pblk ) 1481 __field( ext4_lblk_t, i_lblk ) 1482 __field( unsigned, i_len ) 1483 __field( ext4_fsblk_t, i_pblk ) 1484 ), 1485 1486 TP_fast_assign( 1487 __entry->dev = inode->i_sb->s_dev; 1488 __entry->ino = inode->i_ino; 1489 __entry->m_lblk = map->m_lblk; 1490 __entry->m_len = map->m_len; 1491 __entry->u_lblk = le32_to_cpu(ux->ee_block); 1492 __entry->u_len = ext4_ext_get_actual_len(ux); 1493 __entry->u_pblk = ext4_ext_pblock(ux); 1494 __entry->i_lblk = le32_to_cpu(ix->ee_block); 1495 __entry->i_len = ext4_ext_get_actual_len(ix); 1496 __entry->i_pblk = ext4_ext_pblock(ix); 1497 ), 1498 1499 TP_printk("dev %d,%d ino %lu m_lblk %u m_len %u " 1500 "u_lblk %u u_len %u u_pblk %llu " 1501 "i_lblk %u i_len %u i_pblk %llu ", 1502 MAJOR(__entry->dev), MINOR(__entry->dev), 1503 (unsigned long) __entry->ino, 1504 __entry->m_lblk, __entry->m_len, 1505 __entry->u_lblk, __entry->u_len, __entry->u_pblk, 1506 __entry->i_lblk, __entry->i_len, __entry->i_pblk) 1507 ); 1508 1509 DECLARE_EVENT_CLASS(ext4__map_blocks_enter, 1510 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, 1511 unsigned int len, unsigned int flags), 1512 1513 TP_ARGS(inode, lblk, len, flags), 1514 1515 TP_STRUCT__entry( 1516 __field( dev_t, dev ) 1517 __field( ino_t, ino ) 1518 __field( ext4_lblk_t, lblk ) 1519 __field( unsigned int, len ) 1520 __field( unsigned int, flags ) 1521 ), 1522 1523 TP_fast_assign( 1524 __entry->dev = inode->i_sb->s_dev; 1525 __entry->ino = inode->i_ino; 1526 __entry->lblk = lblk; 1527 __entry->len = len; 1528 __entry->flags = flags; 1529 ), 1530 1531 TP_printk("dev %d,%d ino %lu lblk %u len %u flags %u", 1532 MAJOR(__entry->dev), MINOR(__entry->dev), 1533 (unsigned long) __entry->ino, 1534 __entry->lblk, __entry->len, __entry->flags) 1535 ); 1536 1537 DEFINE_EVENT(ext4__map_blocks_enter, ext4_ext_map_blocks_enter, 1538 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, 1539 unsigned len, unsigned flags), 1540 1541 TP_ARGS(inode, lblk, len, flags) 1542 ); 1543 1544 DEFINE_EVENT(ext4__map_blocks_enter, ext4_ind_map_blocks_enter, 1545 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, 1546 unsigned len, unsigned flags), 1547 1548 TP_ARGS(inode, lblk, len, flags) 1549 ); 1550 1551 DECLARE_EVENT_CLASS(ext4__map_blocks_exit, 1552 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret), 1553 1554 TP_ARGS(inode, map, ret), 1555 1556 TP_STRUCT__entry( 1557 __field( dev_t, dev ) 1558 __field( ino_t, ino ) 1559 __field( ext4_fsblk_t, pblk ) 1560 __field( ext4_lblk_t, lblk ) 1561 __field( unsigned int, len ) 1562 __field( unsigned int, flags ) 1563 __field( int, ret ) 1564 ), 1565 1566 TP_fast_assign( 1567 __entry->dev = inode->i_sb->s_dev; 1568 __entry->ino = inode->i_ino; 1569 __entry->pblk = map->m_pblk; 1570 __entry->lblk = map->m_lblk; 1571 __entry->len = map->m_len; 1572 __entry->flags = map->m_flags; 1573 __entry->ret = ret; 1574 ), 1575 1576 TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u flags %x ret %d", 1577 MAJOR(__entry->dev), MINOR(__entry->dev), 1578 (unsigned long) __entry->ino, 1579 __entry->lblk, __entry->pblk, 1580 __entry->len, __entry->flags, __entry->ret) 1581 ); 1582 1583 DEFINE_EVENT(ext4__map_blocks_exit, ext4_ext_map_blocks_exit, 1584 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret), 1585 1586 TP_ARGS(inode, map, ret) 1587 ); 1588 1589 DEFINE_EVENT(ext4__map_blocks_exit, ext4_ind_map_blocks_exit, 1590 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret), 1591 1592 TP_ARGS(inode, map, ret) 1593 ); 1594 1595 TRACE_EVENT(ext4_ext_load_extent, 1596 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk), 1597 1598 TP_ARGS(inode, lblk, pblk), 1599 1600 TP_STRUCT__entry( 1601 __field( dev_t, dev ) 1602 __field( ino_t, ino ) 1603 __field( ext4_fsblk_t, pblk ) 1604 __field( ext4_lblk_t, lblk ) 1605 ), 1606 1607 TP_fast_assign( 1608 __entry->dev = inode->i_sb->s_dev; 1609 __entry->ino = inode->i_ino; 1610 __entry->pblk = pblk; 1611 __entry->lblk = lblk; 1612 ), 1613 1614 TP_printk("dev %d,%d ino %lu lblk %u pblk %llu", 1615 MAJOR(__entry->dev), MINOR(__entry->dev), 1616 (unsigned long) __entry->ino, 1617 __entry->lblk, __entry->pblk) 1618 ); 1619 1620 TRACE_EVENT(ext4_load_inode, 1621 TP_PROTO(struct inode *inode), 1622 1623 TP_ARGS(inode), 1624 1625 TP_STRUCT__entry( 1626 __field( dev_t, dev ) 1627 __field( ino_t, ino ) 1628 ), 1629 1630 TP_fast_assign( 1631 __entry->dev = inode->i_sb->s_dev; 1632 __entry->ino = inode->i_ino; 1633 ), 1634 1635 TP_printk("dev %d,%d ino %ld", 1636 MAJOR(__entry->dev), MINOR(__entry->dev), 1637 (unsigned long) __entry->ino) 1638 ); 1639 1640 TRACE_EVENT(ext4_journal_start, 1641 TP_PROTO(struct super_block *sb, int nblocks, unsigned long IP), 1642 1643 TP_ARGS(sb, nblocks, IP), 1644 1645 TP_STRUCT__entry( 1646 __field( dev_t, dev ) 1647 __field(unsigned long, ip ) 1648 __field( int, nblocks ) 1649 ), 1650 1651 TP_fast_assign( 1652 __entry->dev = sb->s_dev; 1653 __entry->ip = IP; 1654 __entry->nblocks = nblocks; 1655 ), 1656 1657 TP_printk("dev %d,%d nblocks %d caller %pF", 1658 MAJOR(__entry->dev), MINOR(__entry->dev), 1659 __entry->nblocks, (void *)__entry->ip) 1660 ); 1661 1662 DECLARE_EVENT_CLASS(ext4__trim, 1663 TP_PROTO(struct super_block *sb, 1664 ext4_group_t group, 1665 ext4_grpblk_t start, 1666 ext4_grpblk_t len), 1667 1668 TP_ARGS(sb, group, start, len), 1669 1670 TP_STRUCT__entry( 1671 __field( int, dev_major ) 1672 __field( int, dev_minor ) 1673 __field( __u32, group ) 1674 __field( int, start ) 1675 __field( int, len ) 1676 ), 1677 1678 TP_fast_assign( 1679 __entry->dev_major = MAJOR(sb->s_dev); 1680 __entry->dev_minor = MINOR(sb->s_dev); 1681 __entry->group = group; 1682 __entry->start = start; 1683 __entry->len = len; 1684 ), 1685 1686 TP_printk("dev %d,%d group %u, start %d, len %d", 1687 __entry->dev_major, __entry->dev_minor, 1688 __entry->group, __entry->start, __entry->len) 1689 ); 1690 1691 DEFINE_EVENT(ext4__trim, ext4_trim_extent, 1692 1693 TP_PROTO(struct super_block *sb, 1694 ext4_group_t group, 1695 ext4_grpblk_t start, 1696 ext4_grpblk_t len), 1697 1698 TP_ARGS(sb, group, start, len) 1699 ); 1700 1701 DEFINE_EVENT(ext4__trim, ext4_trim_all_free, 1702 1703 TP_PROTO(struct super_block *sb, 1704 ext4_group_t group, 1705 ext4_grpblk_t start, 1706 ext4_grpblk_t len), 1707 1708 TP_ARGS(sb, group, start, len) 1709 ); 1710 1711 TRACE_EVENT(ext4_ext_handle_uninitialized_extents, 1712 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int flags, 1713 unsigned int allocated, ext4_fsblk_t newblock), 1714 1715 TP_ARGS(inode, map, flags, allocated, newblock), 1716 1717 TP_STRUCT__entry( 1718 __field( dev_t, dev ) 1719 __field( ino_t, ino ) 1720 __field( int, flags ) 1721 __field( ext4_lblk_t, lblk ) 1722 __field( ext4_fsblk_t, pblk ) 1723 __field( unsigned int, len ) 1724 __field( unsigned int, allocated ) 1725 __field( ext4_fsblk_t, newblk ) 1726 ), 1727 1728 TP_fast_assign( 1729 __entry->dev = inode->i_sb->s_dev; 1730 __entry->ino = inode->i_ino; 1731 __entry->flags = flags; 1732 __entry->lblk = map->m_lblk; 1733 __entry->pblk = map->m_pblk; 1734 __entry->len = map->m_len; 1735 __entry->allocated = allocated; 1736 __entry->newblk = newblock; 1737 ), 1738 1739 TP_printk("dev %d,%d ino %lu m_lblk %u m_pblk %llu m_len %u flags %x " 1740 "allocated %d newblock %llu", 1741 MAJOR(__entry->dev), MINOR(__entry->dev), 1742 (unsigned long) __entry->ino, 1743 (unsigned) __entry->lblk, (unsigned long long) __entry->pblk, 1744 __entry->len, __entry->flags, 1745 (unsigned int) __entry->allocated, 1746 (unsigned long long) __entry->newblk) 1747 ); 1748 1749 TRACE_EVENT(ext4_get_implied_cluster_alloc_exit, 1750 TP_PROTO(struct super_block *sb, struct ext4_map_blocks *map, int ret), 1751 1752 TP_ARGS(sb, map, ret), 1753 1754 TP_STRUCT__entry( 1755 __field( dev_t, dev ) 1756 __field( unsigned int, flags ) 1757 __field( ext4_lblk_t, lblk ) 1758 __field( ext4_fsblk_t, pblk ) 1759 __field( unsigned int, len ) 1760 __field( int, ret ) 1761 ), 1762 1763 TP_fast_assign( 1764 __entry->dev = sb->s_dev; 1765 __entry->flags = map->m_flags; 1766 __entry->lblk = map->m_lblk; 1767 __entry->pblk = map->m_pblk; 1768 __entry->len = map->m_len; 1769 __entry->ret = ret; 1770 ), 1771 1772 TP_printk("dev %d,%d m_lblk %u m_pblk %llu m_len %u m_flags %u ret %d", 1773 MAJOR(__entry->dev), MINOR(__entry->dev), 1774 __entry->lblk, (unsigned long long) __entry->pblk, 1775 __entry->len, __entry->flags, __entry->ret) 1776 ); 1777 1778 TRACE_EVENT(ext4_ext_put_in_cache, 1779 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len, 1780 ext4_fsblk_t start), 1781 1782 TP_ARGS(inode, lblk, len, start), 1783 1784 TP_STRUCT__entry( 1785 __field( dev_t, dev ) 1786 __field( ino_t, ino ) 1787 __field( ext4_lblk_t, lblk ) 1788 __field( unsigned int, len ) 1789 __field( ext4_fsblk_t, start ) 1790 ), 1791 1792 TP_fast_assign( 1793 __entry->dev = inode->i_sb->s_dev; 1794 __entry->ino = inode->i_ino; 1795 __entry->lblk = lblk; 1796 __entry->len = len; 1797 __entry->start = start; 1798 ), 1799 1800 TP_printk("dev %d,%d ino %lu lblk %u len %u start %llu", 1801 MAJOR(__entry->dev), MINOR(__entry->dev), 1802 (unsigned long) __entry->ino, 1803 (unsigned) __entry->lblk, 1804 __entry->len, 1805 (unsigned long long) __entry->start) 1806 ); 1807 1808 TRACE_EVENT(ext4_ext_in_cache, 1809 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, int ret), 1810 1811 TP_ARGS(inode, lblk, ret), 1812 1813 TP_STRUCT__entry( 1814 __field( dev_t, dev ) 1815 __field( ino_t, ino ) 1816 __field( ext4_lblk_t, lblk ) 1817 __field( int, ret ) 1818 ), 1819 1820 TP_fast_assign( 1821 __entry->dev = inode->i_sb->s_dev; 1822 __entry->ino = inode->i_ino; 1823 __entry->lblk = lblk; 1824 __entry->ret = ret; 1825 ), 1826 1827 TP_printk("dev %d,%d ino %lu lblk %u ret %d", 1828 MAJOR(__entry->dev), MINOR(__entry->dev), 1829 (unsigned long) __entry->ino, 1830 (unsigned) __entry->lblk, 1831 __entry->ret) 1832 1833 ); 1834 1835 TRACE_EVENT(ext4_find_delalloc_range, 1836 TP_PROTO(struct inode *inode, ext4_lblk_t from, ext4_lblk_t to, 1837 int reverse, int found, ext4_lblk_t found_blk), 1838 1839 TP_ARGS(inode, from, to, reverse, found, found_blk), 1840 1841 TP_STRUCT__entry( 1842 __field( dev_t, dev ) 1843 __field( ino_t, ino ) 1844 __field( ext4_lblk_t, from ) 1845 __field( ext4_lblk_t, to ) 1846 __field( int, reverse ) 1847 __field( int, found ) 1848 __field( ext4_lblk_t, found_blk ) 1849 ), 1850 1851 TP_fast_assign( 1852 __entry->dev = inode->i_sb->s_dev; 1853 __entry->ino = inode->i_ino; 1854 __entry->from = from; 1855 __entry->to = to; 1856 __entry->reverse = reverse; 1857 __entry->found = found; 1858 __entry->found_blk = found_blk; 1859 ), 1860 1861 TP_printk("dev %d,%d ino %lu from %u to %u reverse %d found %d " 1862 "(blk = %u)", 1863 MAJOR(__entry->dev), MINOR(__entry->dev), 1864 (unsigned long) __entry->ino, 1865 (unsigned) __entry->from, (unsigned) __entry->to, 1866 __entry->reverse, __entry->found, 1867 (unsigned) __entry->found_blk) 1868 ); 1869 1870 TRACE_EVENT(ext4_get_reserved_cluster_alloc, 1871 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len), 1872 1873 TP_ARGS(inode, lblk, len), 1874 1875 TP_STRUCT__entry( 1876 __field( dev_t, dev ) 1877 __field( ino_t, ino ) 1878 __field( ext4_lblk_t, lblk ) 1879 __field( unsigned int, len ) 1880 ), 1881 1882 TP_fast_assign( 1883 __entry->dev = inode->i_sb->s_dev; 1884 __entry->ino = inode->i_ino; 1885 __entry->lblk = lblk; 1886 __entry->len = len; 1887 ), 1888 1889 TP_printk("dev %d,%d ino %lu lblk %u len %u", 1890 MAJOR(__entry->dev), MINOR(__entry->dev), 1891 (unsigned long) __entry->ino, 1892 (unsigned) __entry->lblk, 1893 __entry->len) 1894 ); 1895 1896 TRACE_EVENT(ext4_ext_show_extent, 1897 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk, 1898 unsigned short len), 1899 1900 TP_ARGS(inode, lblk, pblk, len), 1901 1902 TP_STRUCT__entry( 1903 __field( dev_t, dev ) 1904 __field( ino_t, ino ) 1905 __field( ext4_fsblk_t, pblk ) 1906 __field( ext4_lblk_t, lblk ) 1907 __field( unsigned short, len ) 1908 ), 1909 1910 TP_fast_assign( 1911 __entry->dev = inode->i_sb->s_dev; 1912 __entry->ino = inode->i_ino; 1913 __entry->pblk = pblk; 1914 __entry->lblk = lblk; 1915 __entry->len = len; 1916 ), 1917 1918 TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u", 1919 MAJOR(__entry->dev), MINOR(__entry->dev), 1920 (unsigned long) __entry->ino, 1921 (unsigned) __entry->lblk, 1922 (unsigned long long) __entry->pblk, 1923 (unsigned short) __entry->len) 1924 ); 1925 1926 TRACE_EVENT(ext4_remove_blocks, 1927 TP_PROTO(struct inode *inode, struct ext4_extent *ex, 1928 ext4_lblk_t from, ext4_fsblk_t to, 1929 ext4_fsblk_t partial_cluster), 1930 1931 TP_ARGS(inode, ex, from, to, partial_cluster), 1932 1933 TP_STRUCT__entry( 1934 __field( dev_t, dev ) 1935 __field( ino_t, ino ) 1936 __field( ext4_lblk_t, from ) 1937 __field( ext4_lblk_t, to ) 1938 __field( ext4_fsblk_t, partial ) 1939 __field( ext4_fsblk_t, ee_pblk ) 1940 __field( ext4_lblk_t, ee_lblk ) 1941 __field( unsigned short, ee_len ) 1942 ), 1943 1944 TP_fast_assign( 1945 __entry->dev = inode->i_sb->s_dev; 1946 __entry->ino = inode->i_ino; 1947 __entry->from = from; 1948 __entry->to = to; 1949 __entry->partial = partial_cluster; 1950 __entry->ee_pblk = ext4_ext_pblock(ex); 1951 __entry->ee_lblk = le32_to_cpu(ex->ee_block); 1952 __entry->ee_len = ext4_ext_get_actual_len(ex); 1953 ), 1954 1955 TP_printk("dev %d,%d ino %lu extent [%u(%llu), %u]" 1956 "from %u to %u partial_cluster %u", 1957 MAJOR(__entry->dev), MINOR(__entry->dev), 1958 (unsigned long) __entry->ino, 1959 (unsigned) __entry->ee_lblk, 1960 (unsigned long long) __entry->ee_pblk, 1961 (unsigned short) __entry->ee_len, 1962 (unsigned) __entry->from, 1963 (unsigned) __entry->to, 1964 (unsigned) __entry->partial) 1965 ); 1966 1967 TRACE_EVENT(ext4_ext_rm_leaf, 1968 TP_PROTO(struct inode *inode, ext4_lblk_t start, 1969 struct ext4_extent *ex, ext4_fsblk_t partial_cluster), 1970 1971 TP_ARGS(inode, start, ex, partial_cluster), 1972 1973 TP_STRUCT__entry( 1974 __field( dev_t, dev ) 1975 __field( ino_t, ino ) 1976 __field( ext4_fsblk_t, partial ) 1977 __field( ext4_lblk_t, start ) 1978 __field( ext4_lblk_t, ee_lblk ) 1979 __field( ext4_fsblk_t, ee_pblk ) 1980 __field( short, ee_len ) 1981 ), 1982 1983 TP_fast_assign( 1984 __entry->dev = inode->i_sb->s_dev; 1985 __entry->ino = inode->i_ino; 1986 __entry->partial = partial_cluster; 1987 __entry->start = start; 1988 __entry->ee_lblk = le32_to_cpu(ex->ee_block); 1989 __entry->ee_pblk = ext4_ext_pblock(ex); 1990 __entry->ee_len = ext4_ext_get_actual_len(ex); 1991 ), 1992 1993 TP_printk("dev %d,%d ino %lu start_lblk %u last_extent [%u(%llu), %u]" 1994 "partial_cluster %u", 1995 MAJOR(__entry->dev), MINOR(__entry->dev), 1996 (unsigned long) __entry->ino, 1997 (unsigned) __entry->start, 1998 (unsigned) __entry->ee_lblk, 1999 (unsigned long long) __entry->ee_pblk, 2000 (unsigned short) __entry->ee_len, 2001 (unsigned) __entry->partial) 2002 ); 2003 2004 TRACE_EVENT(ext4_ext_rm_idx, 2005 TP_PROTO(struct inode *inode, ext4_fsblk_t pblk), 2006 2007 TP_ARGS(inode, pblk), 2008 2009 TP_STRUCT__entry( 2010 __field( dev_t, dev ) 2011 __field( ino_t, ino ) 2012 __field( ext4_fsblk_t, pblk ) 2013 ), 2014 2015 TP_fast_assign( 2016 __entry->dev = inode->i_sb->s_dev; 2017 __entry->ino = inode->i_ino; 2018 __entry->pblk = pblk; 2019 ), 2020 2021 TP_printk("dev %d,%d ino %lu index_pblk %llu", 2022 MAJOR(__entry->dev), MINOR(__entry->dev), 2023 (unsigned long) __entry->ino, 2024 (unsigned long long) __entry->pblk) 2025 ); 2026 2027 TRACE_EVENT(ext4_ext_remove_space, 2028 TP_PROTO(struct inode *inode, ext4_lblk_t start, int depth), 2029 2030 TP_ARGS(inode, start, depth), 2031 2032 TP_STRUCT__entry( 2033 __field( dev_t, dev ) 2034 __field( ino_t, ino ) 2035 __field( ext4_lblk_t, start ) 2036 __field( int, depth ) 2037 ), 2038 2039 TP_fast_assign( 2040 __entry->dev = inode->i_sb->s_dev; 2041 __entry->ino = inode->i_ino; 2042 __entry->start = start; 2043 __entry->depth = depth; 2044 ), 2045 2046 TP_printk("dev %d,%d ino %lu since %u depth %d", 2047 MAJOR(__entry->dev), MINOR(__entry->dev), 2048 (unsigned long) __entry->ino, 2049 (unsigned) __entry->start, 2050 __entry->depth) 2051 ); 2052 2053 TRACE_EVENT(ext4_ext_remove_space_done, 2054 TP_PROTO(struct inode *inode, ext4_lblk_t start, int depth, 2055 ext4_lblk_t partial, __le16 eh_entries), 2056 2057 TP_ARGS(inode, start, depth, partial, eh_entries), 2058 2059 TP_STRUCT__entry( 2060 __field( dev_t, dev ) 2061 __field( ino_t, ino ) 2062 __field( ext4_lblk_t, start ) 2063 __field( int, depth ) 2064 __field( ext4_lblk_t, partial ) 2065 __field( unsigned short, eh_entries ) 2066 ), 2067 2068 TP_fast_assign( 2069 __entry->dev = inode->i_sb->s_dev; 2070 __entry->ino = inode->i_ino; 2071 __entry->start = start; 2072 __entry->depth = depth; 2073 __entry->partial = partial; 2074 __entry->eh_entries = le16_to_cpu(eh_entries); 2075 ), 2076 2077 TP_printk("dev %d,%d ino %lu since %u depth %d partial %u " 2078 "remaining_entries %u", 2079 MAJOR(__entry->dev), MINOR(__entry->dev), 2080 (unsigned long) __entry->ino, 2081 (unsigned) __entry->start, 2082 __entry->depth, 2083 (unsigned) __entry->partial, 2084 (unsigned short) __entry->eh_entries) 2085 ); 2086 2087 TRACE_EVENT(ext4_es_insert_extent, 2088 TP_PROTO(struct inode *inode, struct extent_status *es), 2089 2090 TP_ARGS(inode, es), 2091 2092 TP_STRUCT__entry( 2093 __field( dev_t, dev ) 2094 __field( ino_t, ino ) 2095 __field( ext4_lblk_t, lblk ) 2096 __field( ext4_lblk_t, len ) 2097 __field( ext4_fsblk_t, pblk ) 2098 __field( unsigned long long, status ) 2099 ), 2100 2101 TP_fast_assign( 2102 __entry->dev = inode->i_sb->s_dev; 2103 __entry->ino = inode->i_ino; 2104 __entry->lblk = es->es_lblk; 2105 __entry->len = es->es_len; 2106 __entry->pblk = ext4_es_pblock(es); 2107 __entry->status = ext4_es_status(es); 2108 ), 2109 2110 TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %llx", 2111 MAJOR(__entry->dev), MINOR(__entry->dev), 2112 (unsigned long) __entry->ino, 2113 __entry->lblk, __entry->len, 2114 __entry->pblk, __entry->status) 2115 ); 2116 2117 TRACE_EVENT(ext4_es_remove_extent, 2118 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_lblk_t len), 2119 2120 TP_ARGS(inode, lblk, len), 2121 2122 TP_STRUCT__entry( 2123 __field( dev_t, dev ) 2124 __field( ino_t, ino ) 2125 __field( loff_t, lblk ) 2126 __field( loff_t, len ) 2127 ), 2128 2129 TP_fast_assign( 2130 __entry->dev = inode->i_sb->s_dev; 2131 __entry->ino = inode->i_ino; 2132 __entry->lblk = lblk; 2133 __entry->len = len; 2134 ), 2135 2136 TP_printk("dev %d,%d ino %lu es [%lld/%lld)", 2137 MAJOR(__entry->dev), MINOR(__entry->dev), 2138 (unsigned long) __entry->ino, 2139 __entry->lblk, __entry->len) 2140 ); 2141 2142 TRACE_EVENT(ext4_es_find_delayed_extent_range_enter, 2143 TP_PROTO(struct inode *inode, ext4_lblk_t lblk), 2144 2145 TP_ARGS(inode, lblk), 2146 2147 TP_STRUCT__entry( 2148 __field( dev_t, dev ) 2149 __field( ino_t, ino ) 2150 __field( ext4_lblk_t, lblk ) 2151 ), 2152 2153 TP_fast_assign( 2154 __entry->dev = inode->i_sb->s_dev; 2155 __entry->ino = inode->i_ino; 2156 __entry->lblk = lblk; 2157 ), 2158 2159 TP_printk("dev %d,%d ino %lu lblk %u", 2160 MAJOR(__entry->dev), MINOR(__entry->dev), 2161 (unsigned long) __entry->ino, __entry->lblk) 2162 ); 2163 2164 TRACE_EVENT(ext4_es_find_delayed_extent_range_exit, 2165 TP_PROTO(struct inode *inode, struct extent_status *es), 2166 2167 TP_ARGS(inode, es), 2168 2169 TP_STRUCT__entry( 2170 __field( dev_t, dev ) 2171 __field( ino_t, ino ) 2172 __field( ext4_lblk_t, lblk ) 2173 __field( ext4_lblk_t, len ) 2174 __field( ext4_fsblk_t, pblk ) 2175 __field( unsigned long long, status ) 2176 ), 2177 2178 TP_fast_assign( 2179 __entry->dev = inode->i_sb->s_dev; 2180 __entry->ino = inode->i_ino; 2181 __entry->lblk = es->es_lblk; 2182 __entry->len = es->es_len; 2183 __entry->pblk = ext4_es_pblock(es); 2184 __entry->status = ext4_es_status(es); 2185 ), 2186 2187 TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %llx", 2188 MAJOR(__entry->dev), MINOR(__entry->dev), 2189 (unsigned long) __entry->ino, 2190 __entry->lblk, __entry->len, 2191 __entry->pblk, __entry->status) 2192 ); 2193 2194 TRACE_EVENT(ext4_es_lookup_extent_enter, 2195 TP_PROTO(struct inode *inode, ext4_lblk_t lblk), 2196 2197 TP_ARGS(inode, lblk), 2198 2199 TP_STRUCT__entry( 2200 __field( dev_t, dev ) 2201 __field( ino_t, ino ) 2202 __field( ext4_lblk_t, lblk ) 2203 ), 2204 2205 TP_fast_assign( 2206 __entry->dev = inode->i_sb->s_dev; 2207 __entry->ino = inode->i_ino; 2208 __entry->lblk = lblk; 2209 ), 2210 2211 TP_printk("dev %d,%d ino %lu lblk %u", 2212 MAJOR(__entry->dev), MINOR(__entry->dev), 2213 (unsigned long) __entry->ino, __entry->lblk) 2214 ); 2215 2216 TRACE_EVENT(ext4_es_lookup_extent_exit, 2217 TP_PROTO(struct inode *inode, struct extent_status *es, 2218 int found), 2219 2220 TP_ARGS(inode, es, found), 2221 2222 TP_STRUCT__entry( 2223 __field( dev_t, dev ) 2224 __field( ino_t, ino ) 2225 __field( ext4_lblk_t, lblk ) 2226 __field( ext4_lblk_t, len ) 2227 __field( ext4_fsblk_t, pblk ) 2228 __field( unsigned long long, status ) 2229 __field( int, found ) 2230 ), 2231 2232 TP_fast_assign( 2233 __entry->dev = inode->i_sb->s_dev; 2234 __entry->ino = inode->i_ino; 2235 __entry->lblk = es->es_lblk; 2236 __entry->len = es->es_len; 2237 __entry->pblk = ext4_es_pblock(es); 2238 __entry->status = ext4_es_status(es); 2239 __entry->found = found; 2240 ), 2241 2242 TP_printk("dev %d,%d ino %lu found %d [%u/%u) %llu %llx", 2243 MAJOR(__entry->dev), MINOR(__entry->dev), 2244 (unsigned long) __entry->ino, __entry->found, 2245 __entry->lblk, __entry->len, 2246 __entry->found ? __entry->pblk : 0, 2247 __entry->found ? __entry->status : 0) 2248 ); 2249 2250 TRACE_EVENT(ext4_es_shrink_enter, 2251 TP_PROTO(struct super_block *sb, int nr_to_scan, int cache_cnt), 2252 2253 TP_ARGS(sb, nr_to_scan, cache_cnt), 2254 2255 TP_STRUCT__entry( 2256 __field( dev_t, dev ) 2257 __field( int, nr_to_scan ) 2258 __field( int, cache_cnt ) 2259 ), 2260 2261 TP_fast_assign( 2262 __entry->dev = sb->s_dev; 2263 __entry->nr_to_scan = nr_to_scan; 2264 __entry->cache_cnt = cache_cnt; 2265 ), 2266 2267 TP_printk("dev %d,%d nr_to_scan %d cache_cnt %d", 2268 MAJOR(__entry->dev), MINOR(__entry->dev), 2269 __entry->nr_to_scan, __entry->cache_cnt) 2270 ); 2271 2272 TRACE_EVENT(ext4_es_shrink_exit, 2273 TP_PROTO(struct super_block *sb, int shrunk_nr, int cache_cnt), 2274 2275 TP_ARGS(sb, shrunk_nr, cache_cnt), 2276 2277 TP_STRUCT__entry( 2278 __field( dev_t, dev ) 2279 __field( int, shrunk_nr ) 2280 __field( int, cache_cnt ) 2281 ), 2282 2283 TP_fast_assign( 2284 __entry->dev = sb->s_dev; 2285 __entry->shrunk_nr = shrunk_nr; 2286 __entry->cache_cnt = cache_cnt; 2287 ), 2288 2289 TP_printk("dev %d,%d shrunk_nr %d cache_cnt %d", 2290 MAJOR(__entry->dev), MINOR(__entry->dev), 2291 __entry->shrunk_nr, __entry->cache_cnt) 2292 ); 2293 2294 #endif /* _TRACE_EXT4_H */ 2295 2296 /* This part must be outside protection */ 2297 #include <trace/define_trace.h> 2298