NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: softdeps and NetBSD 6.0




Am 30.09.2009 um 21:47 schrieb Thor Lancelot Simon:

On Wed, Sep 30, 2009 at 08:44:38PM +0200, Marc Balmer wrote:

there is also a middle ground. the code/filesystem could just be left
there for people to use it, with all it's "known bugs".

Not really.  As Andy pointed out when he originally proposed removing
softdep, the softdep implementation we actually have (as opposed to the one we might perhaps like to have) is entangled in various horrible ways with the FFS, UFS, and VM code. Having it in there makes maintaining all of that code harder and makes developing new code that interacts with any
of those parts of the system harder.  And in more than one case, the
softdep code -- when not in use! -- has caused serious bugs in the other
components of the system which is touches.

In other words, there's a huge opportunity cost to leaving the softdep
code in the kernel.  By comparison, the wapbl code is much cleaner and
better modularized -- its one major wart is that it duplicates ufs_rename(), which means bugs can need to be fixed twice, but on the other hand that means wapbl bugs are isolated to wapbl; they don't infect the rest of the
I/O code the way softdep does.

If we had a softdep implementation that didn't have the bizarre history and implementation Kirk's does, things would be different. But we do not have such an implementation, there is no such implementation available,
and I hardly see any of the people who are complaining about softdep
going away stepping up to write one!

So, unless we want to keep the rest of the filesystems buggy and impede most future progress in that area as part of some notional "middle ground", there really is no middle ground. We have a replacement that is acceptable for most purposes, and better for many purposes, and softdep has to go.

The only real advantage softdep offers over journaling is a decreased total amount of I/O, because journaling duplicates some transactions while softdep
can eliminate others completely.  However, there are other filesystems
available that offer the same advantage without stretching slimy tentacles through the ufs code and the rest of the kernel -- ZFS, for example. If we keep the softdep code in the kernel, we make _everything_ to do with new filesystems harder, and that means we are much less likely to get new good filesystems like ZFS and keep them maintained. Not a good "middle ground"
if you ask me.

Fair enough.  Thanks for sharing this.

- Marc


--
Thor Lancelot Simon tls%rek.tjls.com@localhost
   "Even experienced UNIX users occasionally enter rm *.* at the UNIX
    prompt only to realize too late that they have removed the wrong
    segment of the directory structure." - Microsoft WSS whitepaper



Home | Main Index | Thread Index | Old Index