git: hammer2 - Stabilize new I/O infrastructure and work on bulkfree
Matthew Dillon
dillon at crater.dragonflybsd.org
Mon Jan 26 15:54:20 PST 2015
commit 3148f6779fc754711b51c40131a915c9deb16741
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Mon Jan 26 15:48:03 2015 -0800
hammer2 - Stabilize new I/O infrastructure and work on bulkfree
* Stabilize the new asynchronous hammer_io infrastructure.
* Document the new simpler bulkfree scan algorithm. The new algorithm
scans meta-data in two passes, rebuilding the freemap in kernel memory.
It then compares the map against the live media.
The first pass transitions the freemap from (11 = allocated) to
(10 = staged for deletion), the second pass transitions (10) either back
to (11) if the block is found to not actually be freeable or to (00) if
the block winds up being actually freeable.
The two pass mechanism deals with any races and allows the scan to occur
essentially unlocked,
* Start work on the bulkfree scan algorithm.
Summary of changes:
sys/vfs/hammer2/FREEMAP | 182 ++++++++++--------
sys/vfs/hammer2/Makefile | 2 +-
sys/vfs/hammer2/hammer2.h | 19 +-
sys/vfs/hammer2/hammer2_bulkscan.c | 380 +++++++++++++++++++++++++++++++++++++
sys/vfs/hammer2/hammer2_chain.c | 10 +
sys/vfs/hammer2/hammer2_disk.h | 74 +++++++-
sys/vfs/hammer2/hammer2_freemap.c | 45 ++---
sys/vfs/hammer2/hammer2_io.c | 130 +++++++++----
sys/vfs/hammer2/hammer2_ioctl.c | 20 +-
sys/vfs/hammer2/hammer2_ioctl.h | 18 +-
sys/vfs/hammer2/hammer2_vnops.c | 58 ++++--
11 files changed, 751 insertions(+), 187 deletions(-)
create mode 100644 sys/vfs/hammer2/hammer2_bulkscan.c
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/3148f6779fc754711b51c40131a915c9deb16741
--
DragonFly BSD source repository
More information about the Commits
mailing list