Commit 0094f981 authored by Jan Kara's avatar Jan Kara Committed by Theodore Ts'o

jbd2: Provide trace event for handle restarts

Provide trace event for handle restarts to ease debugging.
Reviewed-by: default avatarTheodore Ts'o <tytso@mit.edu>
Signed-off-by: default avatarJan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20191105164437.32602-24-jack@suse.czSigned-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
parent 83448bdf
...@@ -747,6 +747,7 @@ int jbd2__journal_restart(handle_t *handle, int nblocks, int revoke_records, ...@@ -747,6 +747,7 @@ int jbd2__journal_restart(handle_t *handle, int nblocks, int revoke_records,
journal_t *journal; journal_t *journal;
tid_t tid; tid_t tid;
int need_to_start; int need_to_start;
int ret;
/* If we've had an abort of any type, don't even think about /* If we've had an abort of any type, don't even think about
* actually doing the restart! */ * actually doing the restart! */
...@@ -776,7 +777,12 @@ int jbd2__journal_restart(handle_t *handle, int nblocks, int revoke_records, ...@@ -776,7 +777,12 @@ int jbd2__journal_restart(handle_t *handle, int nblocks, int revoke_records,
DIV_ROUND_UP(revoke_records, DIV_ROUND_UP(revoke_records,
journal->j_revoke_records_per_block); journal->j_revoke_records_per_block);
handle->h_revoke_credits = revoke_records; handle->h_revoke_credits = revoke_records;
return start_this_handle(journal, handle, gfp_mask); ret = start_this_handle(journal, handle, gfp_mask);
trace_jbd2_handle_restart(journal->j_fs_dev->bd_dev,
ret ? 0 : handle->h_transaction->t_tid,
handle->h_type, handle->h_line_no,
handle->h_total_credits);
return ret;
} }
EXPORT_SYMBOL(jbd2__journal_restart); EXPORT_SYMBOL(jbd2__journal_restart);
......
...@@ -133,7 +133,7 @@ TRACE_EVENT(jbd2_submit_inode_data, ...@@ -133,7 +133,7 @@ TRACE_EVENT(jbd2_submit_inode_data,
(unsigned long) __entry->ino) (unsigned long) __entry->ino)
); );
TRACE_EVENT(jbd2_handle_start, DECLARE_EVENT_CLASS(jbd2_handle_start_class,
TP_PROTO(dev_t dev, unsigned long tid, unsigned int type, TP_PROTO(dev_t dev, unsigned long tid, unsigned int type,
unsigned int line_no, int requested_blocks), unsigned int line_no, int requested_blocks),
...@@ -161,6 +161,20 @@ TRACE_EVENT(jbd2_handle_start, ...@@ -161,6 +161,20 @@ TRACE_EVENT(jbd2_handle_start,
__entry->type, __entry->line_no, __entry->requested_blocks) __entry->type, __entry->line_no, __entry->requested_blocks)
); );
DEFINE_EVENT(jbd2_handle_start_class, jbd2_handle_start,
TP_PROTO(dev_t dev, unsigned long tid, unsigned int type,
unsigned int line_no, int requested_blocks),
TP_ARGS(dev, tid, type, line_no, requested_blocks)
);
DEFINE_EVENT(jbd2_handle_start_class, jbd2_handle_restart,
TP_PROTO(dev_t dev, unsigned long tid, unsigned int type,
unsigned int line_no, int requested_blocks),
TP_ARGS(dev, tid, type, line_no, requested_blocks)
);
TRACE_EVENT(jbd2_handle_extend, TRACE_EVENT(jbd2_handle_extend,
TP_PROTO(dev_t dev, unsigned long tid, unsigned int type, TP_PROTO(dev_t dev, unsigned long tid, unsigned int type,
unsigned int line_no, int buffer_credits, unsigned int line_no, int buffer_credits,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment