diff options
author | Theodore Ts'o <tytso@mit.edu> | 2009-01-03 20:27:38 -0500 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2009-01-03 20:27:38 -0500 |
commit | 30773840c19cea60dcef39545960d541b1ac1cf8 (patch) | |
tree | f220a2dce451a40dc7264e8fd70c77c5a3908873 /fs/jbd2 | |
parent | d7cfa4684d82f58e5d7cb73b8a3c88c169937f25 (diff) |
ext4: add fsync batch tuning knobs
Add new mount options, min_batch_time and max_batch_time, which
controls how long the jbd2 layer should wait for additional filesystem
operations to get batched with a synchronous write transaction.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'fs/jbd2')
-rw-r--r-- | fs/jbd2/journal.c | 2 | ||||
-rw-r--r-- | fs/jbd2/transaction.c | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c index 74d87290381c..fd1d7557a098 100644 --- a/fs/jbd2/journal.c +++ b/fs/jbd2/journal.c | |||
@@ -964,6 +964,8 @@ static journal_t * journal_init_common (void) | |||
964 | spin_lock_init(&journal->j_state_lock); | 964 | spin_lock_init(&journal->j_state_lock); |
965 | 965 | ||
966 | journal->j_commit_interval = (HZ * JBD2_DEFAULT_MAX_COMMIT_AGE); | 966 | journal->j_commit_interval = (HZ * JBD2_DEFAULT_MAX_COMMIT_AGE); |
967 | journal->j_min_batch_time = 0; | ||
968 | journal->j_max_batch_time = 15000; /* 15ms */ | ||
967 | 969 | ||
968 | /* The journal is marked for error until we succeed with recovery! */ | 970 | /* The journal is marked for error until we succeed with recovery! */ |
969 | journal->j_flags = JBD2_ABORT; | 971 | journal->j_flags = JBD2_ABORT; |
diff --git a/fs/jbd2/transaction.c b/fs/jbd2/transaction.c index 13dcbc990f41..48c21bac5a56 100644 --- a/fs/jbd2/transaction.c +++ b/fs/jbd2/transaction.c | |||
@@ -1255,8 +1255,10 @@ int jbd2_journal_stop(handle_t *handle) | |||
1255 | trans_time = ktime_to_ns(ktime_sub(ktime_get(), | 1255 | trans_time = ktime_to_ns(ktime_sub(ktime_get(), |
1256 | transaction->t_start_time)); | 1256 | transaction->t_start_time)); |
1257 | 1257 | ||
1258 | commit_time = max_t(u64, commit_time, | ||
1259 | 1000*journal->j_min_batch_time); | ||
1258 | commit_time = min_t(u64, commit_time, | 1260 | commit_time = min_t(u64, commit_time, |
1259 | 1000*jiffies_to_usecs(1)); | 1261 | 1000*journal->j_max_batch_time); |
1260 | 1262 | ||
1261 | if (trans_time < commit_time) { | 1263 | if (trans_time < commit_time) { |
1262 | ktime_t expires = ktime_add_ns(ktime_get(), | 1264 | ktime_t expires = ktime_add_ns(ktime_get(), |