The UNDO buffer and crash recovery code is now in-place and working
fairly well. There may still be a few cases where inode link counts and
data get out of sync after a crash but the filesystem should have
much better integrity now. I can ^\+^C my vkernel, restart it,
mount, and HAMMER doesn't blow up. I still have work to do but I am
making really excellent progress.
The pruning and reblocking ioctls are currently non-working due to
the changes, but I expect to have those in working order again (and
crash recoverable as well) in the next few days.
I also still have to do the filesystem full handling before I can
officially declare the filesystem 'alpha'.
--
Large-file write performance is pretty nasty right now, but small
file write performance is insanely good. Even with all the debugging
console spew and other inefficiencies with the backend flushder, copying
the pkgsrc tree to a HAMMER partition is already competitive with
UFS+softupdates:
(tar cf - /usr/pkgsrc a few times to stabilize the NFS server)
/usr/bin/time -l cpdup /usr/pkgsrc/. /home/pkgsrc
208.94 real 4.35 user 32.25 sys
/usr/bin/time -l cpdup /usr/pkgsrc/. /mnt/pkgsrc
183.00 real 4.73 user 47.46 sys
umount /home
umount /mnt
mount /home
mount /mnt
/usr/bin/time -l rm -rf /home/pkgsrc
72.12 real 0.10 user 3.77 sys
/usr/bin/time -l rm -rf /mnt/pkgsrc
73.37 real 0.23 user 13.12 sys
I expect to be able to drop those times a lot more before I'm done.
The large-file write performance issue is just an implementation issue.
Because data is not overwritten it is possible for the frontend to
directly allocate media space and issue the data portion of the writes
directly to the media, only queueing the meta-data portion to the backend.
But I don't do that yet, and right now the backend synchronizer is
being woken up way, way too often due to the data buffer load.
Please note that HAMMER spews a lot of junk to the console at the
moment, too. This is getting rather exciting!
-Matt
Matthew Dillon
<dillon@backplane.com>
| Matt Mackall | Re: + fix-spellings-of-slab-allocator-section-in-init-kconfig.patch added to -mm t... |
| Andi Kleen | [PATCH] [0/36] Great change_page_attr patch series v3 |
| Bron Gondwana | Re: BUG: mmapfile/writev spurious zero bytes (x86_64/not i386, bisected, reproduca... |
| Nigel Kukard | SATA problems |
| Karl R. Buck | Re: (none) |
| drew | Re: Use PERL rather than C for system commands? |
| Theodore Ts'o | Re: demand paging: proposal |
| Steffen Finger | make compatible to bsd-make ? |
| Adrian Bunk | [2.6 patch] unexport icmpmsg_statistics |
| Evgeniy Polyakov | Re: [2/3] POHMELFS: Documentation. |
| jamal | Re: [PATCH 2/3][NET_BATCH] net core use batching |
| Stephane Chazelas | [iproute2] get_hz() with CONFIG_HIGH_RES_TIMERS |
git: | |
| Elijah Newren | Trying to use git-filter-branch to compress history by removing large, obsolete bi... |
| Junio C Hamano | PPC SHA-1 Updates in "pu" |
| Jon Smirl | Re: [PATCH 1/2] t7001: add test for git-mv dir1 dir2/ |
| Junio C Hamano | Re: Octopus merge: unique (?) to git, but is it useful? |
| Problem in scim in Fedora 9 | 51 minutes ago | Linux general |
| Firewall | 14 hours ago | OpenBSD |
| windows folder creation surprise | 17 hours ago | Windows |
| IP layer send packet | 1 day ago | Linux kernel |
| dtrace for linux available | 1 day ago | Linux kernel |
| Unable to mount ramdisk image using UBoot while upgrading to 2.6.15 kernel for a MPC8540 based target | 1 day ago | Linux kernel |
| RealTek RTL8169 - can't connect | 2 days ago | NetBSD |
| vsftpd Upload Problems | 2 days ago | Linux general |
| creating con folder in desktop | 2 days ago | Windows |
| Question about PFRA, dirty page cache, and tmpfs/swap | 2 days ago | Linux kernel |
