diff options
author | Jan Kara <jack@suse.cz> | 2014-09-18 00:42:16 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2014-09-18 00:42:16 -0400 |
commit | cc97f1a7c7eed970e674b84be0e68f479c80228d (patch) | |
tree | 43d4358c0792994358968b8d1dc2ebef654ba396 /include | |
parent | 844749764b416ee2c4ba2da328c04eaad7388242 (diff) | |
download | linux-cc97f1a7c7eed970e674b84be0e68f479c80228d.tar.gz linux-cc97f1a7c7eed970e674b84be0e68f479c80228d.tar.bz2 linux-cc97f1a7c7eed970e674b84be0e68f479c80228d.zip |
jbd2: avoid pointless scanning of checkpoint lists
Yuanhan has reported that when he is running fsync(2) heavy workload
creating new files over ramdisk, significant amount of time is spent in
__jbd2_journal_clean_checkpoint_list() trying to clean old transactions
(but they cannot be cleaned up because flusher hasn't yet checkpointed
those buffers). The workload can be generated by:
fs_mark -d /fs/ram0/1 -D 2 -N 2560 -n 1000000 -L 1 -S 1 -s 4096
Reduce the amount of scanning by stopping to scan the transaction list
once we find a transaction that cannot be checkpointed. Note that this
way of cleaning is still enough to keep freeing space in the journal
after fully checkpointed transactions.
Reported-and-tested-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions