ocfs2: Add trace event for trim.
Add the corresponding trace event for trim. Signed-off-by: Tao Ma <boyu.mt@taobao.com> Signed-off-by: Joel Becker <jlbec@evilplan.org>
This commit is contained in:
parent
55e67872b6
commit
10fca35ff1
@ -7196,6 +7196,8 @@ static int ocfs2_trim_extent(struct super_block *sb,
|
|||||||
discard = le64_to_cpu(gd->bg_blkno) +
|
discard = le64_to_cpu(gd->bg_blkno) +
|
||||||
ocfs2_clusters_to_blocks(sb, start);
|
ocfs2_clusters_to_blocks(sb, start);
|
||||||
|
|
||||||
|
trace_ocfs2_trim_extent(sb, (unsigned long long)discard, bcount);
|
||||||
|
|
||||||
return sb_issue_discard(sb, discard, bcount, GFP_NOFS, 0);
|
return sb_issue_discard(sb, discard, bcount, GFP_NOFS, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -7209,6 +7211,9 @@ static int ocfs2_trim_group(struct super_block *sb,
|
|||||||
if (le16_to_cpu(gd->bg_free_bits_count) < minbits)
|
if (le16_to_cpu(gd->bg_free_bits_count) < minbits)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
trace_ocfs2_trim_group((unsigned long long)le64_to_cpu(gd->bg_blkno),
|
||||||
|
start, max, minbits);
|
||||||
|
|
||||||
while (start < max) {
|
while (start < max) {
|
||||||
start = ocfs2_find_next_zero_bit(bitmap, max, start);
|
start = ocfs2_find_next_zero_bit(bitmap, max, start);
|
||||||
if (start >= max)
|
if (start >= max)
|
||||||
@ -7292,6 +7297,8 @@ int ocfs2_trim_fs(struct super_block *sb, struct fstrim_range *range)
|
|||||||
if (start + len > le32_to_cpu(main_bm->i_clusters))
|
if (start + len > le32_to_cpu(main_bm->i_clusters))
|
||||||
len = le32_to_cpu(main_bm->i_clusters) - start;
|
len = le32_to_cpu(main_bm->i_clusters) - start;
|
||||||
|
|
||||||
|
trace_ocfs2_trim_fs(start, len, minlen);
|
||||||
|
|
||||||
/* Determine first and last group to examine based on start and len */
|
/* Determine first and last group to examine based on start and len */
|
||||||
first_group = ocfs2_which_cluster_group(main_bm_inode, start);
|
first_group = ocfs2_which_cluster_group(main_bm_inode, start);
|
||||||
if (first_group == osb->first_cluster_group_blkno)
|
if (first_group == osb->first_cluster_group_blkno)
|
||||||
|
@ -688,6 +688,31 @@ TRACE_EVENT(ocfs2_cache_block_dealloc,
|
|||||||
__entry->blkno, __entry->bit)
|
__entry->blkno, __entry->bit)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
TRACE_EVENT(ocfs2_trim_extent,
|
||||||
|
TP_PROTO(struct super_block *sb, unsigned long long blk,
|
||||||
|
unsigned long long count),
|
||||||
|
TP_ARGS(sb, blk, count),
|
||||||
|
TP_STRUCT__entry(
|
||||||
|
__field(int, dev_major)
|
||||||
|
__field(int, dev_minor)
|
||||||
|
__field(unsigned long long, blk)
|
||||||
|
__field(__u64, count)
|
||||||
|
),
|
||||||
|
TP_fast_assign(
|
||||||
|
__entry->dev_major = MAJOR(sb->s_dev);
|
||||||
|
__entry->dev_minor = MINOR(sb->s_dev);
|
||||||
|
__entry->blk = blk;
|
||||||
|
__entry->count = count;
|
||||||
|
),
|
||||||
|
TP_printk("%d %d %llu %llu",
|
||||||
|
__entry->dev_major, __entry->dev_minor,
|
||||||
|
__entry->blk, __entry->count)
|
||||||
|
);
|
||||||
|
|
||||||
|
DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_trim_group);
|
||||||
|
|
||||||
|
DEFINE_OCFS2_ULL_ULL_ULL_EVENT(ocfs2_trim_fs);
|
||||||
|
|
||||||
/* End of trace events for fs/ocfs2/alloc.c. */
|
/* End of trace events for fs/ocfs2/alloc.c. */
|
||||||
|
|
||||||
/* Trace events for fs/ocfs2/localalloc.c. */
|
/* Trace events for fs/ocfs2/localalloc.c. */
|
||||||
|
Loading…
Reference in New Issue
Block a user