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>
This commit is contained in:
Theodore Ts'o
2013-02-06 22:30:23 -05:00
parent 40ae348762
commit 9fff24aa2c
5 changed files with 31 additions and 5 deletions

View File

@@ -580,6 +580,11 @@ struct transaction_s
*/
unsigned long t_start;
/*
* When commit was requested
*/
unsigned long t_requested;
/*
* Checkpointing stats [j_checkpoint_sem]
*/
@@ -637,6 +642,7 @@ struct transaction_s
struct transaction_run_stats_s {
unsigned long rs_wait;
unsigned long rs_request_delay;
unsigned long rs_running;
unsigned long rs_locked;
unsigned long rs_flushing;
@@ -649,6 +655,7 @@ struct transaction_run_stats_s {
struct transaction_stats_s {
unsigned long ts_tid;
unsigned long ts_requested;
struct transaction_run_stats_s run;
};