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

From: Chris Mason
Date: Thu Jan 10 2008 - 08:47:03 EST


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

> On Thu, Jan 10 2008, Chris Mason wrote:
> > On Thu, 10 Jan 2008 08:54:59 +0000
> > Christoph Hellwig <hch@xxxxxxxxxxxxx> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/