kernel-ark/fs/jbd2
Jan Kara cc97f1a7c7 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>
2014-09-18 00:42:16 -04:00
..
checkpoint.c jbd2: avoid pointless scanning of checkpoint lists 2014-09-18 00:42:16 -04:00
commit.c jbd2: fix descriptor block size handling errors with journal_csum 2014-08-28 22:22:29 -04:00
journal.c jbd2: fix journal checksum feature flag handling 2014-09-11 11:38:21 -04:00
Kconfig jbd2: remove debug dependency on debug_fs and update Kconfig help text 2013-06-12 23:07:51 -04:00
Makefile
recovery.c jbd2: free bh when descriptor block checksum fails 2014-09-16 14:43:09 -04:00
revoke.c jbd2: fix descriptor block size handling errors with journal_csum 2014-08-28 22:22:29 -04:00
transaction.c sched: Remove proliferation of wait_on_bit() action functions 2014-07-16 15:10:39 +02:00