aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2013-02-06 22:30:23 -0500
committerTheodore Ts'o <tytso@mit.edu>2013-02-06 22:30:23 -0500
commit9fff24aa2c5c504aadead1ff9599e813604c2e53 (patch)
tree24bbb1691ec816aed648a895882526ce361ec92f /include/linux
parent40ae3487628235e5f1eb27542cca0cdb6e5dbe16 (diff)
jbd2: track request delay statistics
Track the delay between when we first request that the commit begin and when it actually begins, so we can see how much of a gap exists. In theory, this should just be the remaining scheduling quantuum of the thread which requested the commit (assuming it was not a synchronous operation which triggered the commit request) plus scheduling overhead; however, it's possible that real time processes might get in the way of letting the kjournald thread from executing. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/jbd2.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h
index e30b66346942..e0aafc46064f 100644
--- a/include/linux/jbd2.h
+++ b/include/linux/jbd2.h
@@ -581,6 +581,11 @@ struct transaction_s
581 unsigned long t_start; 581 unsigned long t_start;
582 582
583 /* 583 /*
584 * When commit was requested
585 */
586 unsigned long t_requested;
587
588 /*
584 * Checkpointing stats [j_checkpoint_sem] 589 * Checkpointing stats [j_checkpoint_sem]
585 */ 590 */
586 struct transaction_chp_stats_s t_chp_stats; 591 struct transaction_chp_stats_s t_chp_stats;
@@ -637,6 +642,7 @@ struct transaction_s
637 642
638struct transaction_run_stats_s { 643struct transaction_run_stats_s {
639 unsigned long rs_wait; 644 unsigned long rs_wait;
645 unsigned long rs_request_delay;
640 unsigned long rs_running; 646 unsigned long rs_running;
641 unsigned long rs_locked; 647 unsigned long rs_locked;
642 unsigned long rs_flushing; 648 unsigned long rs_flushing;
@@ -649,6 +655,7 @@ struct transaction_run_stats_s {
649 655
650struct transaction_stats_s { 656struct transaction_stats_s {
651 unsigned long ts_tid; 657 unsigned long ts_tid;
658 unsigned long ts_requested;
652 struct transaction_run_stats_s run; 659 struct transaction_run_stats_s run;
653}; 660};
654 661