Re: [PATCH]: v9fs: add readpage support

From: Eric Van Hensbergen
Date: Fri Jan 13 2006 - 17:25:57 EST


On 1/13/06, Andrew Morton <akpm@xxxxxxxx> wrote:
> Eric Van Hensbergen <ericvh@xxxxxxxxx> wrote:
> >
> > I went looking for an example of how to do this better. More or less,
> > v9fs reads and writes are similar to DirectIO since they don't go
> > through the page-cache.
>
> hm. Why not?
>

At the moment we'd rather not cache anything with v9fs as it hides
operations from the servers, and in the case of synthetic servers it
can be a bad thing. There is a somewhat well-understood strategy for
how to do cacheing of static files in a sane manner under 9P, but we
were holding off on trying to move that into v9fs for the time being.
The only reason we added the read-only mmap support back in was to
support users who were trying to access executables over 9P
connections.

> >
> > Now, that being said, it still seems to me to be a bit heavy weight --
> > do folks have a better pointer to code that I can use as an example of
> > how to do this more efficiently?
>
> Not really. If that's what you need to do then that's the way to do it.
> We've had nasty races and other problems wrt invalidate_inode_pages2 and
> pagefaults, so I suggest you test that mix carefully.
>
> Have you tried fsx-linux? It's really good for finding data integrity
> bugs. There's a copy in
> http://www.zip.com.au/~akpm/linux/patches/stuff/ext3-tools.tar.gz.
>

We've been regression testing with vanilla fsx, I'll upgrade to
fsx-linux and make sure we are clean.

>
> I'd suggest that you want the mapping->nrpages test - it'll be a useful
> speedup in the common case.
>

Yeah, as I was tracing through the invalidate_inode_pages2() this
morning I realized this is probably a good idea. Should have a new
patch to you by the end of the weekend.

-eric
-
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/