diff options
| author | Theodore Ts'o <tytso@mit.edu> | 2013-02-06 22:30:23 -0500 |
|---|---|---|
| committer | Theodore Ts'o <tytso@mit.edu> | 2013-02-06 22:30:23 -0500 |
| commit | 9fff24aa2c5c504aadead1ff9599e813604c2e53 (patch) | |
| tree | 24bbb1691ec816aed648a895882526ce361ec92f /include/linux | |
| parent | 40ae3487628235e5f1eb27542cca0cdb6e5dbe16 (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.h | 7 |
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 | ||
| 638 | struct transaction_run_stats_s { | 643 | struct 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 | ||
| 650 | struct transaction_stats_s { | 656 | struct 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 | ||
