aha/fs/jbd2
Josef Bacik e07f7183a4 jbd2: improve jbd2 fsync batching
This patch removes the static sleep time in favor of a more self
optimizing approach where we measure the average amount of time it
takes to commit a transaction to disk and the ammount of time a
transaction has been running.  If somebody does a sync write or an
fsync() traditionally we would sleep for 1 jiffies, which depending on
the value of HZ could be a significant amount of time compared to how
long it takes to commit a transaction to the underlying storage.  With
this patch instead of sleeping for a jiffie, we check to see if the
amount of time this transaction has been running is less than the
average commit time, and if it is we sleep for the delta using
schedule_hrtimeout to give us a higher precision sleep time.  This
greatly benefits high end storage where you could end up sleeping for
longer than it takes to commit the transaction and therefore sitting
idle instead of allowing the transaction to be committed by keeping
the sleep time to a minimum so you are sure to always be doing
something.

Signed-off-by: Josef Bacik <jbacik@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2008-11-26 01:14:26 -05:00
..
checkpoint.c jbd2: don't give up looking for space so easily in __jbd2_log_wait_for_space 2008-11-06 22:38:07 -05:00
commit.c jbd2: improve jbd2 fsync batching 2008-11-26 01:14:26 -05:00
journal.c jbd2: deregister proc on failure in jbd2_journal_init_inode 2008-11-02 19:23:30 -05:00
Kconfig fs/Kconfig: move ext2, ext3, ext4, JBD, JBD2 out 2008-10-20 11:43:59 -07:00
Makefile
recovery.c jbd2: fix error handling for checkpoint io 2008-10-10 20:29:13 -04:00
revoke.c jdb2: replace remaining __FUNCTION__ occurrences 2008-04-17 10:38:59 -04:00
transaction.c jbd2: improve jbd2 fsync batching 2008-11-26 01:14:26 -05:00