Re: [PATCH] Export shmem_file_setup and shmem_getpage for DRM-GEM

From: Keith Packard
Date: Mon Aug 04 2008 - 13:26:08 EST


On Mon, 2008-08-04 at 18:09 +0100, Hugh Dickins wrote:

> Whether such usage conforms to VFS API I'm not so sure: as I understand
> it, it's really for internal use by a filesystem

Sure, but presumably it could even be used by a layered file system?

> - if it's going to be
> used beyond that, we ought to add a check that the filesystem it's used
> upon really has a ->readpage method (and I'd rather we add such a check
> than you do it at your end, in case we change the implementation later
> to use something other than a ->readpage method - Nick, you'll be
> nauseated to hear I was looking to see if ->fault with a pseudo-vma
> could do it). But if the layering police are happy with this, I am.

It seems like I should put a check into my code that is kernel version
dependent so that I can't oops if someone tries to use a filesystem that
doesn't have ->readpage.

> But that route is in
> use and well-tested, and only an inefficiency when swapping, so should
> not cause you any problems.

Yeah, swapping performance isn't my primary concern; I looked through
the read_mapping_page codepath and it looked exactly like my existing
code in the fast path, which is why I was able to just delete all of
that from my driver and just call read_mapping_page.

So, when I release the pages from the page cache, I'm currently calling
mark_page_accessed for all pages, and set_page_dirty for pages which may
have been written by the GPU. Are those calls still needed?

--
keith.packard@xxxxxxxxx

Attachment: signature.asc
Description: This is a digitally signed message part