diff options
author | Eric Sandeen <sandeen@redhat.com> | 2010-10-27 21:30:07 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2010-10-27 21:30:07 -0400 |
commit | 3e1e5f501632460184a98237d5460c521510535e (patch) | |
tree | 9bb5006c9bcb1651f9c447869f4e90deb116e6e8 | |
parent | 4d5476164a052e80d4ef430e368e76dbde96801f (diff) |
ext4: don't use ext4_allocation_contexts for tracing
Many tracepoints were populating an ext4_allocation_context
to pass in, but this requires a slab allocation even when
tracepoints are off. In fact, 4 of 5 of these allocations
were only for tracing. In addition, we were only using a
small fraction of the 144 bytes of this structure for this
purpose.
We can do away with all these alloc/frees of the ac and
simply pass in the bits we care about, instead.
I tested this by turning on tracing and running through
xfstests on x86_64. I did not actually do anything with
the trace output, however.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
-rw-r--r-- | fs/ext4/mballoc.c | 81 | ||||
-rw-r--r-- | include/trace/events/ext4.h | 51 |
2 files changed, 41 insertions, 91 deletions
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c index ccdfec6acb75..3f62df50f483 100644 --- a/fs/ext4/mballoc.c +++ b/fs/ext4/mballoc.c | |||
@@ -3591,8 +3591,7 @@ static int ext4_mb_new_preallocation(struct ext4_allocation_context *ac) | |||
3591 | */ | 3591 | */ |
3592 | static noinline_for_stack int | 3592 | static noinline_for_stack int |
3593 | ext4_mb_release_inode_pa(struct ext4_buddy *e4b, struct buffer_head *bitmap_bh, | 3593 | ext4_mb_release_inode_pa(struct ext4_buddy *e4b, struct buffer_head *bitmap_bh, |
3594 | struct ext4_prealloc_space *pa, | 3594 | struct ext4_prealloc_space *pa) |
3595 | struct ext4_allocation_context *ac) | ||
3596 | { | 3595 | { |
3597 | struct super_block *sb = e4b->bd_sb; | 3596 | struct super_block *sb = e4b->bd_sb; |
3598 | struct ext4_sb_info *sbi = EXT4_SB(sb); | 3597 | struct ext4_sb_info *sbi = EXT4_SB(sb); |
@@ -3610,11 +3609,6 @@ ext4_mb_release_inode_pa(struct ext4_buddy *e4b, struct buffer_head *bitmap_bh, | |||
3610 | BUG_ON(group != e4b->bd_group && pa->pa_len != 0); | 3609 | BUG_ON(group != e4b->bd_group && pa->pa_len != 0); |
3611 | end = bit + pa->pa_len; | 3610 | end = bit + pa->pa_len; |
3612 | 3611 | ||
3613 | if (ac) { | ||
3614 | ac->ac_sb = sb; | ||
3615 | ac->ac_inode = pa->pa_inode; | ||
3616 | } | ||
3617 | |||
3618 | while (bit < end) { | 3612 | while (bit < end) { |
3619 | bit = mb_find_next_zero_bit(bitmap_bh->b_data, end, bit); | 3613 | bit = mb_find_next_zero_bit(bitmap_bh->b_data, end, bit); |
3620 | if (bit >= end) | 3614 | if (bit >= end) |
@@ -3625,16 +3619,9 @@ ext4_mb_release_inode_pa(struct ext4_buddy *e4b, struct buffer_head *bitmap_bh, | |||
3625 | (unsigned) next - bit, (unsigned) group); | 3619 | (unsigned) next - bit, (unsigned) group); |
3626 | free += next - bit; | 3620 | free += next - bit; |
3627 | 3621 | ||
3628 | if (ac) { | 3622 | trace_ext4_mballoc_discard(sb, NULL, group, bit, next - bit); |
3629 | ac->ac_b_ex.fe_group = group; | 3623 | trace_ext4_mb_release_inode_pa(sb, pa->pa_inode, pa, |
3630 | ac->ac_b_ex.fe_start = bit; | 3624 | grp_blk_start + bit, next - bit); |
3631 | ac->ac_b_ex.fe_len = next - bit; | ||
3632 | ac->ac_b_ex.fe_logical = 0; | ||
3633 | trace_ext4_mballoc_discard(ac); | ||
3634 | } | ||
3635 | |||
3636 | trace_ext4_mb_release_inode_pa(sb, ac, pa, grp_blk_start + bit, | ||
3637 | next - bit); | ||
3638 | mb_free_blocks(pa->pa_inode, e4b, bit, next - bit); | 3625 | mb_free_blocks(pa->pa_inode, e4b, bit, next - bit); |
3639 | bit = next + 1; | 3626 | bit = next + 1; |
3640 | } | 3627 | } |
@@ -3657,29 +3644,19 @@ ext4_mb_release_inode_pa(struct ext4_buddy *e4b, struct buffer_head *bitmap_bh, | |||
3657 | 3644 | ||
3658 | static noinline_for_stack int | 3645 | static noinline_for_stack int |
3659 | ext4_mb_release_group_pa(struct ext4_buddy *e4b, | 3646 | ext4_mb_release_group_pa(struct ext4_buddy *e4b, |
3660 | struct ext4_prealloc_space *pa, | 3647 | struct ext4_prealloc_space *pa) |
3661 | struct ext4_allocation_context *ac) | ||
3662 | { | 3648 | { |
3663 | struct super_block *sb = e4b->bd_sb; | 3649 | struct super_block *sb = e4b->bd_sb; |
3664 | ext4_group_t group; | 3650 | ext4_group_t group; |
3665 | ext4_grpblk_t bit; | 3651 | ext4_grpblk_t bit; |
3666 | 3652 | ||
3667 | trace_ext4_mb_release_group_pa(sb, ac, pa); | 3653 | trace_ext4_mb_release_group_pa(sb, pa); |
3668 | BUG_ON(pa->pa_deleted == 0); | 3654 | BUG_ON(pa->pa_deleted == 0); |
3669 | ext4_get_group_no_and_offset(sb, pa->pa_pstart, &group, &bit); | 3655 | ext4_get_group_no_and_offset(sb, pa->pa_pstart, &group, &bit); |
3670 | BUG_ON(group != e4b->bd_group && pa->pa_len != 0); | 3656 | BUG_ON(group != e4b->bd_group && pa->pa_len != 0); |
3671 | mb_free_blocks(pa->pa_inode, e4b, bit, pa->pa_len); | 3657 | mb_free_blocks(pa->pa_inode, e4b, bit, pa->pa_len); |
3672 | atomic_add(pa->pa_len, &EXT4_SB(sb)->s_mb_discarded); | 3658 | atomic_add(pa->pa_len, &EXT4_SB(sb)->s_mb_discarded); |
3673 | 3659 | trace_ext4_mballoc_discard(sb, NULL, group, bit, pa->pa_len); | |
3674 | if (ac) { | ||
3675 | ac->ac_sb = sb; | ||
3676 | ac->ac_inode = NULL; | ||
3677 | ac->ac_b_ex.fe_group = group; | ||
3678 | ac->ac_b_ex.fe_start = bit; | ||
3679 | ac->ac_b_ex.fe_len = pa->pa_len; | ||
3680 | ac->ac_b_ex.fe_logical = 0; | ||
3681 | trace_ext4_mballoc_discard(ac); | ||
3682 | } | ||
3683 | 3660 | ||
3684 | return 0; | 3661 | return 0; |
3685 | } | 3662 | } |
@@ -3700,7 +3677,6 @@ ext4_mb_discard_group_preallocations(struct super_block *sb, | |||
3700 | struct ext4_group_info *grp = ext4_get_group_info(sb, group); | 3677 | struct ext4_group_info *grp = ext4_get_group_info(sb, group); |
3701 | struct buffer_head *bitmap_bh = NULL; | 3678 | struct buffer_head *bitmap_bh = NULL; |
3702 | struct ext4_prealloc_space *pa, *tmp; | 3679 | struct ext4_prealloc_space *pa, *tmp; |
3703 | struct ext4_allocation_context *ac; | ||
3704 | struct list_head list; | 3680 | struct list_head list; |
3705 | struct ext4_buddy e4b; | 3681 | struct ext4_buddy e4b; |
3706 | int err; | 3682 | int err; |
@@ -3729,9 +3705,6 @@ ext4_mb_discard_group_preallocations(struct super_block *sb, | |||
3729 | needed = EXT4_BLOCKS_PER_GROUP(sb) + 1; | 3705 | needed = EXT4_BLOCKS_PER_GROUP(sb) + 1; |
3730 | 3706 | ||
3731 | INIT_LIST_HEAD(&list); | 3707 | INIT_LIST_HEAD(&list); |
3732 | ac = kmem_cache_alloc(ext4_ac_cachep, GFP_NOFS); | ||
3733 | if (ac) | ||
3734 | ac->ac_sb = sb; | ||
3735 | repeat: | 3708 | repeat: |
3736 | ext4_lock_group(sb, group); | 3709 | ext4_lock_group(sb, group); |
3737 | list_for_each_entry_safe(pa, tmp, | 3710 | list_for_each_entry_safe(pa, tmp, |
@@ -3786,9 +3759,9 @@ repeat: | |||
3786 | spin_unlock(pa->pa_obj_lock); | 3759 | spin_unlock(pa->pa_obj_lock); |
3787 | 3760 | ||
3788 | if (pa->pa_type == MB_GROUP_PA) | 3761 | if (pa->pa_type == MB_GROUP_PA) |
3789 | ext4_mb_release_group_pa(&e4b, pa, ac); | 3762 | ext4_mb_release_group_pa(&e4b, pa); |
3790 | else | 3763 | else |
3791 | ext4_mb_release_inode_pa(&e4b, bitmap_bh, pa, ac); | 3764 | ext4_mb_release_inode_pa(&e4b, bitmap_bh, pa); |
3792 | 3765 | ||
3793 | list_del(&pa->u.pa_tmp_list); | 3766 | list_del(&pa->u.pa_tmp_list); |
3794 | call_rcu(&(pa)->u.pa_rcu, ext4_mb_pa_callback); | 3767 | call_rcu(&(pa)->u.pa_rcu, ext4_mb_pa_callback); |
@@ -3796,8 +3769,6 @@ repeat: | |||
3796 | 3769 | ||
3797 | out: | 3770 | out: |
3798 | ext4_unlock_group(sb, group); | 3771 | ext4_unlock_group(sb, group); |
3799 | if (ac) | ||
3800 | kmem_cache_free(ext4_ac_cachep, ac); | ||
3801 | ext4_mb_unload_buddy(&e4b); | 3772 | ext4_mb_unload_buddy(&e4b); |
3802 | put_bh(bitmap_bh); | 3773 | put_bh(bitmap_bh); |
3803 | return free; | 3774 | return free; |
@@ -3818,7 +3789,6 @@ void ext4_discard_preallocations(struct inode *inode) | |||
3818 | struct super_block *sb = inode->i_sb; | 3789 | struct super_block *sb = inode->i_sb; |
3819 | struct buffer_head *bitmap_bh = NULL; | 3790 | struct buffer_head *bitmap_bh = NULL; |
3820 | struct ext4_prealloc_space *pa, *tmp; | 3791 | struct ext4_prealloc_space *pa, *tmp; |
3821 | struct ext4_allocation_context *ac; | ||
3822 | ext4_group_t group = 0; | 3792 | ext4_group_t group = 0; |
3823 | struct list_head list; | 3793 | struct list_head list; |
3824 | struct ext4_buddy e4b; | 3794 | struct ext4_buddy e4b; |
@@ -3834,11 +3804,6 @@ void ext4_discard_preallocations(struct inode *inode) | |||
3834 | 3804 | ||
3835 | INIT_LIST_HEAD(&list); | 3805 | INIT_LIST_HEAD(&list); |
3836 | 3806 | ||
3837 | ac = kmem_cache_alloc(ext4_ac_cachep, GFP_NOFS); | ||
3838 | if (ac) { | ||
3839 | ac->ac_sb = sb; | ||
3840 | ac->ac_inode = inode; | ||
3841 | } | ||
3842 | repeat: | 3807 | repeat: |
3843 | /* first, collect all pa's in the inode */ | 3808 | /* first, collect all pa's in the inode */ |
3844 | spin_lock(&ei->i_prealloc_lock); | 3809 | spin_lock(&ei->i_prealloc_lock); |
@@ -3908,7 +3873,7 @@ repeat: | |||
3908 | 3873 | ||
3909 | ext4_lock_group(sb, group); | 3874 | ext4_lock_group(sb, group); |
3910 | list_del(&pa->pa_group_list); | 3875 | list_del(&pa->pa_group_list); |
3911 | ext4_mb_release_inode_pa(&e4b, bitmap_bh, pa, ac); | 3876 | ext4_mb_release_inode_pa(&e4b, bitmap_bh, pa); |
3912 | ext4_unlock_group(sb, group); | 3877 | ext4_unlock_group(sb, group); |
3913 | 3878 | ||
3914 | ext4_mb_unload_buddy(&e4b); | 3879 | ext4_mb_unload_buddy(&e4b); |
@@ -3917,8 +3882,6 @@ repeat: | |||
3917 | list_del(&pa->u.pa_tmp_list); | 3882 | list_del(&pa->u.pa_tmp_list); |
3918 | call_rcu(&(pa)->u.pa_rcu, ext4_mb_pa_callback); | 3883 | call_rcu(&(pa)->u.pa_rcu, ext4_mb_pa_callback); |
3919 | } | 3884 | } |
3920 | if (ac) | ||
3921 | kmem_cache_free(ext4_ac_cachep, ac); | ||
3922 | } | 3885 | } |
3923 | 3886 | ||
3924 | /* | 3887 | /* |
@@ -4116,14 +4079,10 @@ ext4_mb_discard_lg_preallocations(struct super_block *sb, | |||
4116 | struct ext4_buddy e4b; | 4079 | struct ext4_buddy e4b; |
4117 | struct list_head discard_list; | 4080 | struct list_head discard_list; |
4118 | struct ext4_prealloc_space *pa, *tmp; | 4081 | struct ext4_prealloc_space *pa, *tmp; |
4119 | struct ext4_allocation_context *ac; | ||
4120 | 4082 | ||
4121 | mb_debug(1, "discard locality group preallocation\n"); | 4083 | mb_debug(1, "discard locality group preallocation\n"); |
4122 | 4084 | ||
4123 | INIT_LIST_HEAD(&discard_list); | 4085 | INIT_LIST_HEAD(&discard_list); |
4124 | ac = kmem_cache_alloc(ext4_ac_cachep, GFP_NOFS); | ||
4125 | if (ac) | ||
4126 | ac->ac_sb = sb; | ||
4127 | 4086 | ||
4128 | spin_lock(&lg->lg_prealloc_lock); | 4087 | spin_lock(&lg->lg_prealloc_lock); |
4129 | list_for_each_entry_rcu(pa, &lg->lg_prealloc_list[order], | 4088 | list_for_each_entry_rcu(pa, &lg->lg_prealloc_list[order], |
@@ -4175,15 +4134,13 @@ ext4_mb_discard_lg_preallocations(struct super_block *sb, | |||
4175 | } | 4134 | } |
4176 | ext4_lock_group(sb, group); | 4135 | ext4_lock_group(sb, group); |
4177 | list_del(&pa->pa_group_list); | 4136 | list_del(&pa->pa_group_list); |
4178 | ext4_mb_release_group_pa(&e4b, pa, ac); | 4137 | ext4_mb_release_group_pa(&e4b, pa); |
4179 | ext4_unlock_group(sb, group); | 4138 | ext4_unlock_group(sb, group); |
4180 | 4139 | ||
4181 | ext4_mb_unload_buddy(&e4b); | 4140 | ext4_mb_unload_buddy(&e4b); |
4182 | list_del(&pa->u.pa_tmp_list); | 4141 | list_del(&pa->u.pa_tmp_list); |
4183 | call_rcu(&(pa)->u.pa_rcu, ext4_mb_pa_callback); | 4142 | call_rcu(&(pa)->u.pa_rcu, ext4_mb_pa_callback); |
4184 | } | 4143 | } |
4185 | if (ac) | ||
4186 | kmem_cache_free(ext4_ac_cachep, ac); | ||
4187 | } | 4144 | } |
4188 | 4145 | ||
4189 | /* | 4146 | /* |
@@ -4547,7 +4504,6 @@ void ext4_free_blocks(handle_t *handle, struct inode *inode, | |||
4547 | { | 4504 | { |
4548 | struct buffer_head *bitmap_bh = NULL; | 4505 | struct buffer_head *bitmap_bh = NULL; |
4549 | struct super_block *sb = inode->i_sb; | 4506 | struct super_block *sb = inode->i_sb; |
4550 | struct ext4_allocation_context *ac = NULL; | ||
4551 | struct ext4_group_desc *gdp; | 4507 | struct ext4_group_desc *gdp; |
4552 | unsigned long freed = 0; | 4508 | unsigned long freed = 0; |
4553 | unsigned int overflow; | 4509 | unsigned int overflow; |
@@ -4602,12 +4558,6 @@ void ext4_free_blocks(handle_t *handle, struct inode *inode, | |||
4602 | if (!ext4_should_writeback_data(inode)) | 4558 | if (!ext4_should_writeback_data(inode)) |
4603 | flags |= EXT4_FREE_BLOCKS_METADATA; | 4559 | flags |= EXT4_FREE_BLOCKS_METADATA; |
4604 | 4560 | ||
4605 | ac = kmem_cache_alloc(ext4_ac_cachep, GFP_NOFS); | ||
4606 | if (ac) { | ||
4607 | ac->ac_inode = inode; | ||
4608 | ac->ac_sb = sb; | ||
4609 | } | ||
4610 | |||
4611 | do_more: | 4561 | do_more: |
4612 | overflow = 0; | 4562 | overflow = 0; |
4613 | ext4_get_group_no_and_offset(sb, block, &block_group, &bit); | 4563 | ext4_get_group_no_and_offset(sb, block, &block_group, &bit); |
@@ -4665,12 +4615,7 @@ do_more: | |||
4665 | BUG_ON(!mb_test_bit(bit + i, bitmap_bh->b_data)); | 4615 | BUG_ON(!mb_test_bit(bit + i, bitmap_bh->b_data)); |
4666 | } | 4616 | } |
4667 | #endif | 4617 | #endif |
4668 | if (ac) { | 4618 | trace_ext4_mballoc_free(sb, inode, block_group, bit, count); |
4669 | ac->ac_b_ex.fe_group = block_group; | ||
4670 | ac->ac_b_ex.fe_start = bit; | ||
4671 | ac->ac_b_ex.fe_len = count; | ||
4672 | trace_ext4_mballoc_free(ac); | ||
4673 | } | ||
4674 | 4619 | ||
4675 | err = ext4_mb_load_buddy(sb, block_group, &e4b); | 4620 | err = ext4_mb_load_buddy(sb, block_group, &e4b); |
4676 | if (err) | 4621 | if (err) |
@@ -4741,7 +4686,5 @@ error_return: | |||
4741 | dquot_free_block(inode, freed); | 4686 | dquot_free_block(inode, freed); |
4742 | brelse(bitmap_bh); | 4687 | brelse(bitmap_bh); |
4743 | ext4_std_error(sb, err); | 4688 | ext4_std_error(sb, err); |
4744 | if (ac) | ||
4745 | kmem_cache_free(ext4_ac_cachep, ac); | ||
4746 | return; | 4689 | return; |
4747 | } | 4690 | } |
diff --git a/include/trace/events/ext4.h b/include/trace/events/ext4.h index fbdfa3a6bbd8..b5f4938d612d 100644 --- a/include/trace/events/ext4.h +++ b/include/trace/events/ext4.h | |||
@@ -396,11 +396,11 @@ DEFINE_EVENT(ext4__mb_new_pa, ext4_mb_new_group_pa, | |||
396 | 396 | ||
397 | TRACE_EVENT(ext4_mb_release_inode_pa, | 397 | TRACE_EVENT(ext4_mb_release_inode_pa, |
398 | TP_PROTO(struct super_block *sb, | 398 | TP_PROTO(struct super_block *sb, |
399 | struct ext4_allocation_context *ac, | 399 | struct inode *inode, |
400 | struct ext4_prealloc_space *pa, | 400 | struct ext4_prealloc_space *pa, |
401 | unsigned long long block, unsigned int count), | 401 | unsigned long long block, unsigned int count), |
402 | 402 | ||
403 | TP_ARGS(sb, ac, pa, block, count), | 403 | TP_ARGS(sb, inode, pa, block, count), |
404 | 404 | ||
405 | TP_STRUCT__entry( | 405 | TP_STRUCT__entry( |
406 | __field( dev_t, dev ) | 406 | __field( dev_t, dev ) |
@@ -412,8 +412,7 @@ TRACE_EVENT(ext4_mb_release_inode_pa, | |||
412 | 412 | ||
413 | TP_fast_assign( | 413 | TP_fast_assign( |
414 | __entry->dev = sb->s_dev; | 414 | __entry->dev = sb->s_dev; |
415 | __entry->ino = (ac && ac->ac_inode) ? | 415 | __entry->ino = inode->i_ino; |
416 | ac->ac_inode->i_ino : 0; | ||
417 | __entry->block = block; | 416 | __entry->block = block; |
418 | __entry->count = count; | 417 | __entry->count = count; |
419 | ), | 418 | ), |
@@ -425,10 +424,9 @@ TRACE_EVENT(ext4_mb_release_inode_pa, | |||
425 | 424 | ||
426 | TRACE_EVENT(ext4_mb_release_group_pa, | 425 | TRACE_EVENT(ext4_mb_release_group_pa, |
427 | TP_PROTO(struct super_block *sb, | 426 | TP_PROTO(struct super_block *sb, |
428 | struct ext4_allocation_context *ac, | ||
429 | struct ext4_prealloc_space *pa), | 427 | struct ext4_prealloc_space *pa), |
430 | 428 | ||
431 | TP_ARGS(sb, ac, pa), | 429 | TP_ARGS(sb, pa), |
432 | 430 | ||
433 | TP_STRUCT__entry( | 431 | TP_STRUCT__entry( |
434 | __field( dev_t, dev ) | 432 | __field( dev_t, dev ) |
@@ -779,47 +777,56 @@ TRACE_EVENT(ext4_mballoc_prealloc, | |||
779 | ); | 777 | ); |
780 | 778 | ||
781 | DECLARE_EVENT_CLASS(ext4__mballoc, | 779 | DECLARE_EVENT_CLASS(ext4__mballoc, |
782 | TP_PROTO(struct ext4_allocation_context *ac), | 780 | TP_PROTO(struct super_block *sb, |
781 | struct inode *inode, | ||
782 | ext4_group_t group, | ||
783 | ext4_grpblk_t start, | ||
784 | ext4_grpblk_t len), | ||
783 | 785 | ||
784 | TP_ARGS(ac), | 786 | TP_ARGS(sb, inode, group, start, len), |
785 | 787 | ||
786 | TP_STRUCT__entry( | 788 | TP_STRUCT__entry( |
787 | __field( dev_t, dev ) | 789 | __field( dev_t, dev ) |
788 | __field( ino_t, ino ) | 790 | __field( ino_t, ino ) |
789 | __field( __u32, result_logical ) | ||
790 | __field( int, result_start ) | 791 | __field( int, result_start ) |
791 | __field( __u32, result_group ) | 792 | __field( __u32, result_group ) |
792 | __field( int, result_len ) | 793 | __field( int, result_len ) |
793 | ), | 794 | ), |
794 | 795 | ||
795 | TP_fast_assign( | 796 | TP_fast_assign( |
796 | __entry->dev = ac->ac_sb->s_dev; | 797 | __entry->dev = sb->s_dev; |
797 | __entry->ino = ac->ac_inode ? | 798 | __entry->ino = inode ? inode->i_ino : 0; |
798 | ac->ac_inode->i_ino : 0; | 799 | __entry->result_start = start; |
799 | __entry->result_logical = ac->ac_b_ex.fe_logical; | 800 | __entry->result_group = group; |
800 | __entry->result_start = ac->ac_b_ex.fe_start; | 801 | __entry->result_len = len; |
801 | __entry->result_group = ac->ac_b_ex.fe_group; | ||
802 | __entry->result_len = ac->ac_b_ex.fe_len; | ||
803 | ), | 802 | ), |
804 | 803 | ||
805 | TP_printk("dev %s inode %lu extent %u/%d/%u@%u ", | 804 | TP_printk("dev %s inode %lu extent %u/%d/%u ", |
806 | jbd2_dev_to_name(__entry->dev), (unsigned long) __entry->ino, | 805 | jbd2_dev_to_name(__entry->dev), (unsigned long) __entry->ino, |
807 | __entry->result_group, __entry->result_start, | 806 | __entry->result_group, __entry->result_start, |
808 | __entry->result_len, __entry->result_logical) | 807 | __entry->result_len) |
809 | ); | 808 | ); |
810 | 809 | ||
811 | DEFINE_EVENT(ext4__mballoc, ext4_mballoc_discard, | 810 | DEFINE_EVENT(ext4__mballoc, ext4_mballoc_discard, |
812 | 811 | ||
813 | TP_PROTO(struct ext4_allocation_context *ac), | 812 | TP_PROTO(struct super_block *sb, |
813 | struct inode *inode, | ||
814 | ext4_group_t group, | ||
815 | ext4_grpblk_t start, | ||
816 | ext4_grpblk_t len), | ||
814 | 817 | ||
815 | TP_ARGS(ac) | 818 | TP_ARGS(sb, inode, group, start, len) |
816 | ); | 819 | ); |
817 | 820 | ||
818 | DEFINE_EVENT(ext4__mballoc, ext4_mballoc_free, | 821 | DEFINE_EVENT(ext4__mballoc, ext4_mballoc_free, |
819 | 822 | ||
820 | TP_PROTO(struct ext4_allocation_context *ac), | 823 | TP_PROTO(struct super_block *sb, |
824 | struct inode *inode, | ||
825 | ext4_group_t group, | ||
826 | ext4_grpblk_t start, | ||
827 | ext4_grpblk_t len), | ||
821 | 828 | ||
822 | TP_ARGS(ac) | 829 | TP_ARGS(sb, inode, group, start, len) |
823 | ); | 830 | ); |
824 | 831 | ||
825 | TRACE_EVENT(ext4_forget, | 832 | TRACE_EVENT(ext4_forget, |