diff options
author | Theodore Ts'o <tytso@mit.edu> | 2009-09-30 00:32:06 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2009-09-30 00:32:06 -0400 |
commit | bf6993276f74d46776f35c45ddef29b981b1d1c6 (patch) | |
tree | 5c9cb128fed29a83add1932b12443edaa6fd06cc /include/linux/jbd2.h | |
parent | 296c355cd6443d89fa251885a8d78778fe111dc4 (diff) |
jbd2: Use tracepoints for history file
The /proc/fs/jbd2/<dev>/history was maintained manually; by using
tracepoints, we can get all of the existing functionality of the /proc
file plus extra capabilities thanks to the ftrace infrastructure. We
save memory as a bonus.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'include/linux/jbd2.h')
-rw-r--r-- | include/linux/jbd2.h | 27 |
1 files changed, 7 insertions, 20 deletions
diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h index 52695d3dfd0b..f1011f7f3d41 100644 --- a/include/linux/jbd2.h +++ b/include/linux/jbd2.h | |||
@@ -464,9 +464,9 @@ struct handle_s | |||
464 | */ | 464 | */ |
465 | struct transaction_chp_stats_s { | 465 | struct transaction_chp_stats_s { |
466 | unsigned long cs_chp_time; | 466 | unsigned long cs_chp_time; |
467 | unsigned long cs_forced_to_close; | 467 | __u32 cs_forced_to_close; |
468 | unsigned long cs_written; | 468 | __u32 cs_written; |
469 | unsigned long cs_dropped; | 469 | __u32 cs_dropped; |
470 | }; | 470 | }; |
471 | 471 | ||
472 | /* The transaction_t type is the guts of the journaling mechanism. It | 472 | /* The transaction_t type is the guts of the journaling mechanism. It |
@@ -668,23 +668,16 @@ struct transaction_run_stats_s { | |||
668 | unsigned long rs_flushing; | 668 | unsigned long rs_flushing; |
669 | unsigned long rs_logging; | 669 | unsigned long rs_logging; |
670 | 670 | ||
671 | unsigned long rs_handle_count; | 671 | __u32 rs_handle_count; |
672 | unsigned long rs_blocks; | 672 | __u32 rs_blocks; |
673 | unsigned long rs_blocks_logged; | 673 | __u32 rs_blocks_logged; |
674 | }; | 674 | }; |
675 | 675 | ||
676 | struct transaction_stats_s { | 676 | struct transaction_stats_s { |
677 | int ts_type; | ||
678 | unsigned long ts_tid; | 677 | unsigned long ts_tid; |
679 | union { | 678 | struct transaction_run_stats_s run; |
680 | struct transaction_run_stats_s run; | ||
681 | struct transaction_chp_stats_s chp; | ||
682 | } u; | ||
683 | }; | 679 | }; |
684 | 680 | ||
685 | #define JBD2_STATS_RUN 1 | ||
686 | #define JBD2_STATS_CHECKPOINT 2 | ||
687 | |||
688 | static inline unsigned long | 681 | static inline unsigned long |
689 | jbd2_time_diff(unsigned long start, unsigned long end) | 682 | jbd2_time_diff(unsigned long start, unsigned long end) |
690 | { | 683 | { |
@@ -988,12 +981,6 @@ struct journal_s | |||
988 | /* | 981 | /* |
989 | * Journal statistics | 982 | * Journal statistics |
990 | */ | 983 | */ |
991 | struct transaction_stats_s *j_history; | ||
992 | int j_history_max; | ||
993 | int j_history_cur; | ||
994 | /* | ||
995 | * Protect the transactions statistics history | ||
996 | */ | ||
997 | spinlock_t j_history_lock; | 984 | spinlock_t j_history_lock; |
998 | struct proc_dir_entry *j_proc_entry; | 985 | struct proc_dir_entry *j_proc_entry; |
999 | struct transaction_stats_s j_stats; | 986 | struct transaction_stats_s j_stats; |