Re: [PATCH][RFC] fast file mapping for loop

Chris Mason
2008-01-10T13:47:03Z

On Thu, 10 Jan 2008 14:03:24 +0100
Jens Axboe <jens.axboe@oracle.com> wrote:

> On Thu, Jan 10 2008, Chris Mason wrote:
> > On Thu, 10 Jan 2008 08:54:59 +0000
> > Christoph Hellwig <hch@infradead.org> wrote:
> >
> > > On Thu, Jan 10, 2008 at 09:44:57AM +0100, Jens Axboe wrote:
> > > > > IMHO this shouldn't be done in the loop driver anyway.
> > > > > Filesystems have their own effricient extent lookup trees
> > > > > (well, at least xfs and btrfs do), and we should leverage
> > > > > that instead of reinventing it.
> > > >
> > > > Completely agree, it's just needed right now for this solution
> > > > since all we have is a crappy bmap() interface to get at those
> > > > mappings.
> > >
> > > So let's fix the interface instead of piling crap ontop of it.
> > > As I said I think Peter has something to start with so let's beat
> > > on it until we have something suitable. If we aren't done by
> > > end of Feb I'm happy to host a hackfest to get it sorted around
> > > the fs/storage summit..
> > >
> >
> > Ok, I've been meaning to break my extent_map code up, and this is a
> > very good reason. I'll work up a sample today based on Jens' code.
>
> Great!

Grin, we'll see how the sample looks.

>
> > The basic goals:
> >
> > * Loop (swap) calls into the FS for each mapping. Any caching
> > happens on the FS side.
> > * The FS returns an extent, filling any holes
>
> We don't want to fill holes for a read, but I guess that's a given?

Right.

>
> > Swap would need to use an extra call early on for preallocation.
> >
> > Step two is having a call back into the FS allow the FS to delay the
> > bios until commit completion so that COW and delalloc blocks can be
> > fully on disk when the bios are reported as done. Jens, can you add
> > some way to queue the bio completions up?
>
> Sure, a function to save a completed bio and a function to execute
> completions on those already stored?
>

Sounds right, I'm mostly looking for a way to aggregate a few writes to
make the commits a little larger.

-chris