diff options
author | Theodore Ts'o <tytso@mit.edu> | 2013-02-08 13:00:22 -0500 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2013-02-08 13:00:22 -0500 |
commit | 343d9c283c9847da043fda3e76e3197f27b667dd (patch) | |
tree | 6c37b7cd1d9eeb711fa1aeffee1930e446c406f8 /include/linux/jbd2.h | |
parent | 078d5039a13dedbd2ed14153a6d764fd75baae07 (diff) |
jbd2: add tracepoints which provide per-handle statistics
Handles which stay open a long time are problematic when it comes time
to close down a transaction so it can be committed. These tracepoints
will help us determine which ones are the problematic ones, and to
validate whether changes makes things better or worse.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'include/linux/jbd2.h')
-rw-r--r-- | include/linux/jbd2.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h index 24db7256a5ff..fa5fea17b619 100644 --- a/include/linux/jbd2.h +++ b/include/linux/jbd2.h | |||
@@ -400,6 +400,11 @@ struct jbd2_journal_handle | |||
400 | unsigned int h_sync: 1; /* sync-on-close */ | 400 | unsigned int h_sync: 1; /* sync-on-close */ |
401 | unsigned int h_jdata: 1; /* force data journaling */ | 401 | unsigned int h_jdata: 1; /* force data journaling */ |
402 | unsigned int h_aborted: 1; /* fatal error on handle */ | 402 | unsigned int h_aborted: 1; /* fatal error on handle */ |
403 | unsigned int h_type: 8; /* for handle statistics */ | ||
404 | unsigned int h_line_no: 16; /* for handle statistics */ | ||
405 | |||
406 | unsigned long h_start_jiffies; | ||
407 | unsigned int h_requested_credits; | ||
403 | 408 | ||
404 | #ifdef CONFIG_DEBUG_LOCK_ALLOC | 409 | #ifdef CONFIG_DEBUG_LOCK_ALLOC |
405 | struct lockdep_map h_lockdep_map; | 410 | struct lockdep_map h_lockdep_map; |
@@ -1071,7 +1076,8 @@ static inline handle_t *journal_current_handle(void) | |||
1071 | */ | 1076 | */ |
1072 | 1077 | ||
1073 | extern handle_t *jbd2_journal_start(journal_t *, int nblocks); | 1078 | extern handle_t *jbd2_journal_start(journal_t *, int nblocks); |
1074 | extern handle_t *jbd2__journal_start(journal_t *, int nblocks, gfp_t gfp_mask); | 1079 | extern handle_t *jbd2__journal_start(journal_t *, int nblocks, gfp_t gfp_mask, |
1080 | unsigned int type, unsigned int line_no); | ||
1075 | extern int jbd2_journal_restart(handle_t *, int nblocks); | 1081 | extern int jbd2_journal_restart(handle_t *, int nblocks); |
1076 | extern int jbd2__journal_restart(handle_t *, int nblocks, gfp_t gfp_mask); | 1082 | extern int jbd2__journal_restart(handle_t *, int nblocks, gfp_t gfp_mask); |
1077 | extern int jbd2_journal_extend (handle_t *, int nblocks); | 1083 | extern int jbd2_journal_extend (handle_t *, int nblocks); |