[Ocfs2-devel] [PATCH 05/34] ocfs2: Remove mlog(0) from fs/ocfs2/alloc.c
Christoph Hellwig
hch at lst.de
Fri Dec 31 05:15:24 PST 2010
> + (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
> + cpos, len, index, le32_to_cpu(rec->e_cpos),
> + ocfs2_rec_clusters(el, rec));
>
> if (le32_to_cpu(rec->e_cpos) == cpos || rec_range == trunc_range) {
> ret = ocfs2_truncate_rec(handle, et, path, index, dealloc,
> @@ -5780,9 +5789,6 @@ int ocfs2_truncate_log_append(struct ocfs2_super *osb,
> struct ocfs2_dinode *di;
> struct ocfs2_truncate_log *tl;
>
> - mlog(0, "start_blk = %llu, num_clusters = %u\n",
> - (unsigned long long)start_blk, num_clusters);
> -
> BUG_ON(mutex_trylock(&tl_inode->i_mutex));
>
> start_cluster = ocfs2_blocks_to_clusters(osb->sb, start_blk);
> @@ -5819,10 +5825,9 @@ int ocfs2_truncate_log_append(struct ocfs2_super *osb,
> goto bail;
> }
>
> - mlog(0, "Log truncate of %u clusters starting at cluster %u to "
> - "%llu (index = %d)\n", num_clusters, start_cluster,
> - (unsigned long long)OCFS2_I(tl_inode)->ip_blkno, index);
> -
> + trace_ocfs2_truncate_log_append(
> + (unsigned long long)OCFS2_I(tl_inode)->ip_blkno, index,
> + start_cluster, num_clusters);
> if (ocfs2_truncate_log_can_coalesce(tl, start_cluster)) {
> /*
> * Move index back to the record we are coalescing with.
> @@ -5831,9 +5836,10 @@ int ocfs2_truncate_log_append(struct ocfs2_super *osb,
> index--;
>
> num_clusters += le32_to_cpu(tl->tl_recs[index].t_clusters);
> - mlog(0, "Coalesce with index %u (start = %u, clusters = %u)\n",
> - index, le32_to_cpu(tl->tl_recs[index].t_start),
> - num_clusters);
> + trace_ocfs2_truncate_log_append(
> + (unsigned long long)OCFS2_I(tl_inode)->ip_blkno,
> + index, le32_to_cpu(tl->tl_recs[index].t_start),
> + num_clusters);
> } else {
> tl->tl_recs[index].t_start = cpu_to_le32(start_cluster);
> tl->tl_used = cpu_to_le16(index + 1);
> @@ -5896,8 +5902,9 @@ static int ocfs2_replay_truncate_records(struct ocfs2_super *osb,
> /* if start_blk is not set, we ignore the record as
> * invalid. */
> if (start_blk) {
> - mlog(0, "free record %d, start = %u, clusters = %u\n",
> - i, le32_to_cpu(rec.t_start), num_clusters);
> + trace_ocfs2_replay_truncate_records(
> + (unsigned long long)OCFS2_I(tl_inode)->ip_blkno,
> + i, le32_to_cpu(rec.t_start), num_clusters);
>
> status = ocfs2_free_clusters(handle, data_alloc_inode,
> data_alloc_bh, start_blk,
> @@ -5938,8 +5945,9 @@ int __ocfs2_flush_truncate_log(struct ocfs2_super *osb)
>
> tl = &di->id2.i_dealloc;
> num_to_flush = le16_to_cpu(tl->tl_used);
> - mlog(0, "Flush %u records from truncate log #%llu\n",
> - num_to_flush, (unsigned long long)OCFS2_I(tl_inode)->ip_blkno);
> + trace_ocfs2_flush_truncate_log(
> + (unsigned long long)OCFS2_I(tl_inode)->ip_blkno,
> + num_to_flush);
> if (!num_to_flush) {
> status = 0;
> goto out;
> @@ -6076,7 +6084,7 @@ int ocfs2_begin_truncate_log_recovery(struct ocfs2_super *osb,
>
> *tl_copy = NULL;
>
> - mlog(0, "recover truncate log from slot %d\n", slot_num);
> + trace_ocfs2_begin_truncate_log_recovery(slot_num);
>
> status = ocfs2_get_truncate_log_info(osb, slot_num, &tl_inode, &tl_bh);
> if (status < 0) {
> @@ -6093,8 +6101,7 @@ int ocfs2_begin_truncate_log_recovery(struct ocfs2_super *osb,
>
> tl = &di->id2.i_dealloc;
> if (le16_to_cpu(tl->tl_used)) {
> - mlog(0, "We'll have %u logs to recover\n",
> - le16_to_cpu(tl->tl_used));
> + trace_ocfs2_truncate_log_recovery_num(le16_to_cpu(tl->tl_used));
>
> *tl_copy = kmalloc(tl_bh->b_size, GFP_KERNEL);
> if (!(*tl_copy)) {
> @@ -6151,8 +6158,9 @@ int ocfs2_complete_truncate_log_recovery(struct ocfs2_super *osb,
>
> tl = &tl_copy->id2.i_dealloc;
> num_recs = le16_to_cpu(tl->tl_used);
> - mlog(0, "cleanup %u records from %llu\n", num_recs,
> - (unsigned long long)le64_to_cpu(tl_copy->i_blkno));
> + trace_ocfs2_complete_truncate_log_recovery(
> + (unsigned long long)le64_to_cpu(tl_copy->i_blkno),
> + num_recs);
>
> mutex_lock(&tl_inode->i_mutex);
> for(i = 0; i < num_recs; i++) {
> @@ -6310,8 +6318,8 @@ static int ocfs2_free_cached_blocks(struct ocfs2_super *osb,
> else
> bg_blkno = ocfs2_which_suballoc_group(head->free_blk,
> head->free_bit);
> - mlog(0, "Free bit: (bit %u, blkno %llu)\n",
> - head->free_bit, (unsigned long long)head->free_blk);
> + trace_ocfs2_free_cached_blocks(
> + (unsigned long long)head->free_blk, head->free_bit);
>
> ret = ocfs2_free_suballoc_bits(handle, inode, di_bh,
> head->free_bit, bg_blkno, 1);
> @@ -6364,8 +6372,7 @@ int ocfs2_cache_cluster_dealloc(struct ocfs2_cached_dealloc_ctxt *ctxt,
> return ret;
> }
>
> - mlog(0, "Insert clusters: (bit %u, blk %llu)\n",
> - bit, (unsigned long long)blkno);
> + trace_ocfs2_cache_cluster_dealloc((unsigned long long)blkno, bit);
>
> item->free_blk = blkno;
> item->free_bit = bit;
> @@ -6440,8 +6447,8 @@ int ocfs2_run_deallocs(struct ocfs2_super *osb,
> fl = ctxt->c_first_suballocator;
>
> if (fl->f_first) {
> - mlog(0, "Free items: (type %u, slot %d)\n",
> - fl->f_inode_type, fl->f_slot);
> + trace_ocfs2_run_deallocs(fl->f_inode_type,
> + fl->f_slot);
> ret2 = ocfs2_free_cached_blocks(osb,
> fl->f_inode_type,
> fl->f_slot,
> @@ -6518,8 +6525,9 @@ int ocfs2_cache_block_dealloc(struct ocfs2_cached_dealloc_ctxt *ctxt,
> goto out;
> }
>
> - mlog(0, "Insert: (type %d, slot %u, bit %u, blk %llu)\n",
> - type, slot, bit, (unsigned long long)blkno);
> + trace_ocfs2_cache_block_dealloc(type, slot,
> + (unsigned long long)suballoc,
> + (unsigned long long)blkno, bit);
>
> item->free_bg = suballoc;
> item->free_blk = blkno;
> @@ -6999,8 +7007,11 @@ start:
> goto bail;
> }
>
> - mlog(0, "inode->ip_clusters = %u, tree_depth = %u\n",
> - OCFS2_I(inode)->ip_clusters, path->p_tree_depth);
> + trace_ocfs2_commit_truncate(
> + (unsigned long long)OCFS2_I(inode)->ip_blkno,
> + new_highest_cpos,
> + OCFS2_I(inode)->ip_clusters,
> + path->p_tree_depth);
>
> /*
> * By now, el will point to the extent list on the bottom most
> diff --git a/fs/ocfs2/ocfs2_trace.h b/fs/ocfs2/ocfs2_trace.h
> index 8d4e49a..2dfc3b0 100644
> --- a/fs/ocfs2/ocfs2_trace.h
> +++ b/fs/ocfs2/ocfs2_trace.h
> @@ -6,6 +6,507 @@
>
> #include <linux/tracepoint.h>
>
> +DECLARE_EVENT_CLASS(ocfs2__int,
> +
> + TP_PROTO(int num),
> +
> + TP_ARGS(num),
> +
> + TP_STRUCT__entry(
> + __field( int, num )
> + ),
> +
> + TP_fast_assign(
> + __entry->num = num;
> + ),
> +
> + TP_printk("%d", __entry->num)
> +);
If you'd split the even up into classes depending on the actual meaning
of num the trace could contain a descriptive name that makes it a lot
more readable. And btw, the above would be a lot more readable if
formatted like normal kernel code:
DECLARE_EVENT_CLASS(ocfs2__int,
TP_PROTO(int num),
TP_ARGS(num),
TP_STRUCT__entry(
__field(int, num)
),
TP_fast_assign(
__entry->num = num;
),
TP_printk("%d", __entry->num)
);
> +DEFINE_EVENT(ocfs2__truncate_log_ops, ocfs2_truncate_log_append,
> +
> + TP_PROTO(unsigned long long blkno, int index,
> + unsigned int start, unsigned int num),
> +
> + TP_ARGS(blkno, index, start, num)
> +);
FYI, if you have a lot of instances ofa given even class using a little
macro makes declaring them a lot simpler, take a look at
fs/xfs/linux-2.6/xfs_trace.h for examples.
More information about the Ocfs2-devel
mailing list