Subject: Re: Google Summer of Code project ideas
To: David Laight <david@l8s.co.uk>
From: Thor Lancelot Simon <tls@rek.tjls.com>
List: tech-kern
Date: 04/23/2006 16:17:32
On Sun, Apr 23, 2006 at 07:17:44PM +0100, David Laight wrote:
> On Fri, Apr 21, 2006 at 12:05:05PM -0400, Jan Schaumann wrote:
> > 
> > *  Simplify FFS -- Remove the residual geometry code and datastructures
> >    from FFS (keep some kind of ?allocation groups? but without most of
> >    what cylinder groups now have) and replace blocks and fragments with
> >    extents, yielding a much simpler filesystem well suited for modern
> >    disks. The result would be useful to many operating systems beyond
> >    just NetBSD, since UFS/FFS is used in so many different kernels.
> 
> Is there much of that code left?  I think it almost all went when the
> FFSv2 code was imported.

Gone from the kernel, yeah, some of them.  Gone from the on-disk format,
even less so.  That space is reserved for all kinds of physical-geometry
stuff in every cylinder group is one reason why we have to have so many
cylinder groups -- which should really just be allocation groups, to
allow parallel allocations once we have multiple processors in-kernel --
for any disk of modern size.

Extents would be a lot more sensible than the current block -- plus up
to 8 sizes of fragments, but only 8 -- plus some new giant-block scheme;
and eliminating multiple levels of block indirection would eliminate a
major source of bugs in the code.

If one started out to design a simple filesystem that didn't know about
disk geometry, it sure wouldn't look like FFS, even with everything that
was ripped out for FFSv2.  That's all I'm getting at, really.

-- 
  Thor Lancelot Simon	                                     tls@rek.tjls.com

  "We cannot usually in social life pursue a single value or a single moral
   aim, untroubled by the need to compromise with others."      - H.L.A. Hart