In my fsync testing, journal I/O most definitely was sync I/O, since another process was blocked waiting for the results. By marking all journal I/O as WRITE_SYNC, I can get better performance with CFQ. If there is a way to mark this only for cases where it is blocking progress in a dependent process, then that would be preferrable. Is there such a means for determining and flagging this? Cheers, Jeff Signed-off-by: Jeff Moyer <jmoyer@xxxxxxxxxx> --- fs/jbd2/commit.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/fs/jbd2/commit.c b/fs/jbd2/commit.c index 75716d3..a078744 100644 --- a/fs/jbd2/commit.c +++ b/fs/jbd2/commit.c @@ -369,7 +369,7 @@ void jbd2_journal_commit_transaction(journal_t *journal) int tag_bytes = journal_tag_bytes(journal); struct buffer_head *cbh = NULL; /* For transactional checksums */ __u32 crc32_sum = ~0; - int write_op = WRITE; + int write_op = WRITE_SYNC; /* * First job: lock down the current transaction and wait for -- 1.6.5.2 -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html