linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Chris Mason <chris.mason@oracle.com>
To: Daniel Phillips <phillips@phunq.net>
Cc: Nick Piggin <npiggin@suse.de>,
	Christoph Lameter <clameter@sgi.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linux Memory Management List <linux-mm@kvack.org>,
	linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH RFC] extent mapped page cache
Date: Wed, 18 Jul 2007 10:18:39 -0400	[thread overview]
Message-ID: <20070718101839.0aabc08c@think.oraclecorp.com> (raw)
In-Reply-To: <200707120000.28501.phillips@phunq.net>

On Thu, 12 Jul 2007 00:00:28 -0700
Daniel Phillips <phillips@phunq.net> wrote:

> On Tuesday 10 July 2007 14:03, Chris Mason wrote:
> > This patch aims to demonstrate one way to replace buffer heads with
> > a few extent trees...
> 
> Hi Chris,
> 
> Quite terse commentary on algorithms and data structures, but I
> suppose that is not a problem because Jon has a whole week to reverse
> engineer it for us.
> 
> What did you have in mind for subpages?
> 

This partially depends on input here.  The goal is to have one
interface that works for subpages, highmem and superpages, and for
the FS maintainers to not care if the mappings come magically from
clameter's work or vmap or whatever.

Given the whole extent based theme, I plan on something like this:

struct extent_ptr {
	char *ptr;
	some way to indicate size and type of map
	struct page pages[];
};

struct extent_ptr *alloc_extent_ptr(struct extent_map_tree *tree,
				    u64 start, u64 end);
void free_extent_ptr(struct extent_map_tree *tree,
                     struct extent_ptr *ptr);

And then some calls along the lines of kmap/kunmap that gives you a
pointer you can use for accessing the ram.  read/write calls would also
be fine by me, but harder to convert filesystems to use.

The struct extent_ptr would increase the ref count on the pages, but
the pages would have no back pointers to it.  All
dirty/locked/writeback state would go in the extent state tree and would
not be stored in the struct extent_ptr.  

The idea is to make a simple mapping entity, and not complicate it
by storing FS specific state in there. It could be variably sized to
hold an array of pages, and allocated via kmap.

-chris

  reply	other threads:[~2007-07-18 14:19 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-07-10 21:03 [PATCH RFC] extent mapped page cache Chris Mason
2007-07-12  7:00 ` Daniel Phillips
2007-07-18 14:18   ` Chris Mason [this message]
2007-07-24 20:00 ` Chris Mason
2007-07-24 20:03   ` [PATCH RFC] extent mapped page cache main code Chris Mason
2007-07-24 20:04   ` [PATCH RFC] ext2 extentmap support Chris Mason
2007-07-24 20:13   ` [PATCH RFC] extent mapped page cache Trond Myklebust
2007-07-24 21:25     ` Peter Zijlstra
2007-07-24 23:25       ` Chris Mason
2007-07-25  2:32         ` Nick Piggin
2007-07-25 12:18           ` Chris Mason
2007-07-26  1:37             ` Nick Piggin
2007-07-26  2:10               ` Chris Mason
2007-07-26  2:36                 ` Nick Piggin
2007-07-26  7:53                   ` Anton Altaparmakov
2007-07-26 13:05                   ` Chris Mason
2007-07-27  1:15                     ` Nick Piggin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070718101839.0aabc08c@think.oraclecorp.com \
    --to=chris.mason@oracle.com \
    --cc=clameter@sgi.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=npiggin@suse.de \
    --cc=phillips@phunq.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).