-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This commit adds fixed tracepoint for jbd. It has been based on fixed tracepoints for jbd2, however there are missing those for collecting statistics, since I think that it will require more intrusive patch so I should have its own commit, if someone decide that it is needed. Also there are new tracepoints in __journal_drop_transaction() and journal_update_superblock(). The list of jbd tracepoints: jbd_checkpoint jbd_start_commit jbd_commit_locking jbd_commit_flushing jbd_commit_logging jbd_drop_transaction jbd_end_commit jbd_do_submit_data jbd_cleanup_journal_tail jbd_update_superblock_end Signed-off-by: Lukas Czerner <lczerner@redhat.com> Cc: Jan Kara <jack@suse.cz> Signed-off-by: Jan Kara <jack@suse.cz>
- Loading branch information
Lukas Czerner
authored and
Jan Kara
committed
Jun 25, 2011
1 parent
785c4bc
commit 99cb1a3
Showing
4 changed files
with
222 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,203 @@ | ||
#undef TRACE_SYSTEM | ||
#define TRACE_SYSTEM jbd | ||
|
||
#if !defined(_TRACE_JBD_H) || defined(TRACE_HEADER_MULTI_READ) | ||
#define _TRACE_JBD_H | ||
|
||
#include <linux/jbd.h> | ||
#include <linux/tracepoint.h> | ||
|
||
TRACE_EVENT(jbd_checkpoint, | ||
|
||
TP_PROTO(journal_t *journal, int result), | ||
|
||
TP_ARGS(journal, result), | ||
|
||
TP_STRUCT__entry( | ||
__field( dev_t, dev ) | ||
__field( int, result ) | ||
), | ||
|
||
TP_fast_assign( | ||
__entry->dev = journal->j_fs_dev->bd_dev; | ||
__entry->result = result; | ||
), | ||
|
||
TP_printk("dev %d,%d result %d", | ||
MAJOR(__entry->dev), MINOR(__entry->dev), | ||
__entry->result) | ||
); | ||
|
||
DECLARE_EVENT_CLASS(jbd_commit, | ||
|
||
TP_PROTO(journal_t *journal, transaction_t *commit_transaction), | ||
|
||
TP_ARGS(journal, commit_transaction), | ||
|
||
TP_STRUCT__entry( | ||
__field( dev_t, dev ) | ||
__field( char, sync_commit ) | ||
__field( int, transaction ) | ||
), | ||
|
||
TP_fast_assign( | ||
__entry->dev = journal->j_fs_dev->bd_dev; | ||
__entry->sync_commit = commit_transaction->t_synchronous_commit; | ||
__entry->transaction = commit_transaction->t_tid; | ||
), | ||
|
||
TP_printk("dev %d,%d transaction %d sync %d", | ||
MAJOR(__entry->dev), MINOR(__entry->dev), | ||
__entry->transaction, __entry->sync_commit) | ||
); | ||
|
||
DEFINE_EVENT(jbd_commit, jbd_start_commit, | ||
|
||
TP_PROTO(journal_t *journal, transaction_t *commit_transaction), | ||
|
||
TP_ARGS(journal, commit_transaction) | ||
); | ||
|
||
DEFINE_EVENT(jbd_commit, jbd_commit_locking, | ||
|
||
TP_PROTO(journal_t *journal, transaction_t *commit_transaction), | ||
|
||
TP_ARGS(journal, commit_transaction) | ||
); | ||
|
||
DEFINE_EVENT(jbd_commit, jbd_commit_flushing, | ||
|
||
TP_PROTO(journal_t *journal, transaction_t *commit_transaction), | ||
|
||
TP_ARGS(journal, commit_transaction) | ||
); | ||
|
||
DEFINE_EVENT(jbd_commit, jbd_commit_logging, | ||
|
||
TP_PROTO(journal_t *journal, transaction_t *commit_transaction), | ||
|
||
TP_ARGS(journal, commit_transaction) | ||
); | ||
|
||
TRACE_EVENT(jbd_drop_transaction, | ||
|
||
TP_PROTO(journal_t *journal, transaction_t *commit_transaction), | ||
|
||
TP_ARGS(journal, commit_transaction), | ||
|
||
TP_STRUCT__entry( | ||
__field( dev_t, dev ) | ||
__field( char, sync_commit ) | ||
__field( int, transaction ) | ||
), | ||
|
||
TP_fast_assign( | ||
__entry->dev = journal->j_fs_dev->bd_dev; | ||
__entry->sync_commit = commit_transaction->t_synchronous_commit; | ||
__entry->transaction = commit_transaction->t_tid; | ||
), | ||
|
||
TP_printk("dev %d,%d transaction %d sync %d", | ||
MAJOR(__entry->dev), MINOR(__entry->dev), | ||
__entry->transaction, __entry->sync_commit) | ||
); | ||
|
||
TRACE_EVENT(jbd_end_commit, | ||
TP_PROTO(journal_t *journal, transaction_t *commit_transaction), | ||
|
||
TP_ARGS(journal, commit_transaction), | ||
|
||
TP_STRUCT__entry( | ||
__field( dev_t, dev ) | ||
__field( char, sync_commit ) | ||
__field( int, transaction ) | ||
__field( int, head ) | ||
), | ||
|
||
TP_fast_assign( | ||
__entry->dev = journal->j_fs_dev->bd_dev; | ||
__entry->sync_commit = commit_transaction->t_synchronous_commit; | ||
__entry->transaction = commit_transaction->t_tid; | ||
__entry->head = journal->j_tail_sequence; | ||
), | ||
|
||
TP_printk("dev %d,%d transaction %d sync %d head %d", | ||
MAJOR(__entry->dev), MINOR(__entry->dev), | ||
__entry->transaction, __entry->sync_commit, __entry->head) | ||
); | ||
|
||
TRACE_EVENT(jbd_do_submit_data, | ||
TP_PROTO(journal_t *journal, transaction_t *commit_transaction), | ||
|
||
TP_ARGS(journal, commit_transaction), | ||
|
||
TP_STRUCT__entry( | ||
__field( dev_t, dev ) | ||
__field( char, sync_commit ) | ||
__field( int, transaction ) | ||
), | ||
|
||
TP_fast_assign( | ||
__entry->dev = journal->j_fs_dev->bd_dev; | ||
__entry->sync_commit = commit_transaction->t_synchronous_commit; | ||
__entry->transaction = commit_transaction->t_tid; | ||
), | ||
|
||
TP_printk("dev %d,%d transaction %d sync %d", | ||
MAJOR(__entry->dev), MINOR(__entry->dev), | ||
__entry->transaction, __entry->sync_commit) | ||
); | ||
|
||
TRACE_EVENT(jbd_cleanup_journal_tail, | ||
|
||
TP_PROTO(journal_t *journal, tid_t first_tid, | ||
unsigned long block_nr, unsigned long freed), | ||
|
||
TP_ARGS(journal, first_tid, block_nr, freed), | ||
|
||
TP_STRUCT__entry( | ||
__field( dev_t, dev ) | ||
__field( tid_t, tail_sequence ) | ||
__field( tid_t, first_tid ) | ||
__field(unsigned long, block_nr ) | ||
__field(unsigned long, freed ) | ||
), | ||
|
||
TP_fast_assign( | ||
__entry->dev = journal->j_fs_dev->bd_dev; | ||
__entry->tail_sequence = journal->j_tail_sequence; | ||
__entry->first_tid = first_tid; | ||
__entry->block_nr = block_nr; | ||
__entry->freed = freed; | ||
), | ||
|
||
TP_printk("dev %d,%d from %u to %u offset %lu freed %lu", | ||
MAJOR(__entry->dev), MINOR(__entry->dev), | ||
__entry->tail_sequence, __entry->first_tid, | ||
__entry->block_nr, __entry->freed) | ||
); | ||
|
||
TRACE_EVENT(jbd_update_superblock_end, | ||
TP_PROTO(journal_t *journal, int wait), | ||
|
||
TP_ARGS(journal, wait), | ||
|
||
TP_STRUCT__entry( | ||
__field( dev_t, dev ) | ||
__field( int, wait ) | ||
), | ||
|
||
TP_fast_assign( | ||
__entry->dev = journal->j_fs_dev->bd_dev; | ||
__entry->wait = wait; | ||
), | ||
|
||
TP_printk("dev %d,%d wait %d", | ||
MAJOR(__entry->dev), MINOR(__entry->dev), | ||
__entry->wait) | ||
); | ||
|
||
#endif /* _TRACE_JBD_H */ | ||
|
||
/* This part must be outside protection */ | ||
#include <trace/define_trace.h> |