DragonFly commits List (threaded) for 2012-03
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
git: hammer2 hammer2 - Flush sequencing
commit a92f82c4cc53813fb613ca41d3fecca2502bb759
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date: Mon Mar 19 21:23:37 2012 -0700
hammer2 - Flush sequencing
* Add a flag HAMMER2_CHAIN_DIRTYBP to differentiate between clean and
dirty buffers, separate from HAMMER2_CHAIN_MODIFIED1. We needed a
new flag because a buffer can be dirtied and then written out by the
OS (becoming clean) before the chain hierarchy itself is flushed.
This fixes an issue where a small percentage of buffers were being
written out several times without any new changes.
* Clean up HAMMER2_CHAIN_IOFLUSH and implement to reduce double buffering
overheads, at least for the buffer cache. The VM backing store might
still have double-buffered data.
This reduces the load on the buffer management code in the kernel and
helps avoid potential deadlocks.
* Unlock the inode when stalling in bwillwrite(). This solves a problem
where a program stuck in flstik can also stall out the buffer daemons.
Summary of changes:
sys/vfs/hammer2/hammer2.h | 2 +-
sys/vfs/hammer2/hammer2_chain.c | 34 ++++++++++++++++++++----------
sys/vfs/hammer2/hammer2_vnops.c | 43 ++++++++++++++++++++++++++++++++++++--
3 files changed, 64 insertions(+), 15 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/a92f82c4cc53813fb613ca41d3fecca2502bb759
--
DragonFly BSD source repository
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]