Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
Pull ext4 updates from Ted Ts'o: "Improvements to ext4's block allocator performance for very large file systems, especially when the file system or files which are highly fragmented. There is a new mount option, prefetch_block_bitmaps which will pull in the block bitmaps and set up the in-memory buddy bitmaps when the file system is initially mounted. Beyond that, a lot of bug fixes and cleanups. In particular, a number of changes to make ext4 more robust in the face of write errors or file system corruptions" * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (46 commits) ext4: limit the length of per-inode prealloc list ext4: reorganize if statement of ext4_mb_release_context() ext4: add mb_debug logging when there are lost chunks ext4: Fix comment typo "the the". jbd2: clean up checksum verification in do_one_pass() ext4: change to use fallthrough macro ext4: remove unused parameter of ext4_generic_delete_entry function mballoc: replace seq_printf with seq_puts ext4: optimize the implementation of ext4_mb_good_group() ext4: delete invalid comments near ext4_mb_check_limits() ext4: fix typos in ext4_mb_regular_allocator() comment ext4: fix checking of directory entry validity for inline directories fs: prevent BUG_ON in submit_bh_wbc() ext4: correctly restore system zone info when remount fails ext4: handle add_system_zone() failure in ext4_setup_system_zone() ext4: fold ext4_data_block_valid_rcu() into the caller ext4: check journal inode extents more carefully ext4: don't allow overlapping system zones ext4: handle error of ext4_setup_system_zone() on remount ext4: delete the invalid BUGON in ext4_mb_load_buddy_gfp() ...
This commit is contained in:
@@ -746,24 +746,29 @@ TRACE_EVENT(ext4_mb_release_group_pa,
|
||||
);
|
||||
|
||||
TRACE_EVENT(ext4_discard_preallocations,
|
||||
TP_PROTO(struct inode *inode),
|
||||
TP_PROTO(struct inode *inode, unsigned int len, unsigned int needed),
|
||||
|
||||
TP_ARGS(inode),
|
||||
TP_ARGS(inode, len, needed),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field( dev_t, dev )
|
||||
__field( ino_t, ino )
|
||||
__field( dev_t, dev )
|
||||
__field( ino_t, ino )
|
||||
__field( unsigned int, len )
|
||||
__field( unsigned int, needed )
|
||||
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->dev = inode->i_sb->s_dev;
|
||||
__entry->ino = inode->i_ino;
|
||||
__entry->len = len;
|
||||
__entry->needed = needed;
|
||||
),
|
||||
|
||||
TP_printk("dev %d,%d ino %lu",
|
||||
TP_printk("dev %d,%d ino %lu len: %u needed %u",
|
||||
MAJOR(__entry->dev), MINOR(__entry->dev),
|
||||
(unsigned long) __entry->ino)
|
||||
(unsigned long) __entry->ino, __entry->len,
|
||||
__entry->needed)
|
||||
);
|
||||
|
||||
TRACE_EVENT(ext4_mb_discard_preallocations,
|
||||
@@ -1312,18 +1317,34 @@ DEFINE_EVENT(ext4__bitmap_load, ext4_mb_buddy_bitmap_load,
|
||||
TP_ARGS(sb, group)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(ext4__bitmap_load, ext4_read_block_bitmap_load,
|
||||
DEFINE_EVENT(ext4__bitmap_load, ext4_load_inode_bitmap,
|
||||
|
||||
TP_PROTO(struct super_block *sb, unsigned long group),
|
||||
|
||||
TP_ARGS(sb, group)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(ext4__bitmap_load, ext4_load_inode_bitmap,
|
||||
TRACE_EVENT(ext4_read_block_bitmap_load,
|
||||
TP_PROTO(struct super_block *sb, unsigned long group, bool prefetch),
|
||||
|
||||
TP_PROTO(struct super_block *sb, unsigned long group),
|
||||
TP_ARGS(sb, group, prefetch),
|
||||
|
||||
TP_ARGS(sb, group)
|
||||
TP_STRUCT__entry(
|
||||
__field( dev_t, dev )
|
||||
__field( __u32, group )
|
||||
__field( bool, prefetch )
|
||||
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->dev = sb->s_dev;
|
||||
__entry->group = group;
|
||||
__entry->prefetch = prefetch;
|
||||
),
|
||||
|
||||
TP_printk("dev %d,%d group %u prefetch %d",
|
||||
MAJOR(__entry->dev), MINOR(__entry->dev),
|
||||
__entry->group, __entry->prefetch)
|
||||
);
|
||||
|
||||
TRACE_EVENT(ext4_direct_IO_enter,
|
||||
@@ -2726,6 +2747,50 @@ TRACE_EVENT(ext4_error,
|
||||
__entry->function, __entry->line)
|
||||
);
|
||||
|
||||
TRACE_EVENT(ext4_prefetch_bitmaps,
|
||||
TP_PROTO(struct super_block *sb, ext4_group_t group,
|
||||
ext4_group_t next, unsigned int prefetch_ios),
|
||||
|
||||
TP_ARGS(sb, group, next, prefetch_ios),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field( dev_t, dev )
|
||||
__field( __u32, group )
|
||||
__field( __u32, next )
|
||||
__field( __u32, ios )
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->dev = sb->s_dev;
|
||||
__entry->group = group;
|
||||
__entry->next = next;
|
||||
__entry->ios = prefetch_ios;
|
||||
),
|
||||
|
||||
TP_printk("dev %d,%d group %u next %u ios %u",
|
||||
MAJOR(__entry->dev), MINOR(__entry->dev),
|
||||
__entry->group, __entry->next, __entry->ios)
|
||||
);
|
||||
|
||||
TRACE_EVENT(ext4_lazy_itable_init,
|
||||
TP_PROTO(struct super_block *sb, ext4_group_t group),
|
||||
|
||||
TP_ARGS(sb, group),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field( dev_t, dev )
|
||||
__field( __u32, group )
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->dev = sb->s_dev;
|
||||
__entry->group = group;
|
||||
),
|
||||
|
||||
TP_printk("dev %d,%d group %u",
|
||||
MAJOR(__entry->dev), MINOR(__entry->dev), __entry->group)
|
||||
);
|
||||
|
||||
#endif /* _TRACE_EXT4_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
|
Reference in New Issue
Block a user