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 | |
| 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')
| -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); |
