All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Chinner <david@fromorbit.com>
To: Alex Elder <aelder@sgi.com>
Cc: xfs@oss.sgi.com
Subject: Re: [PATCH 6/6] xfs: stop using the page cache to back the buffer cache
Date: Sat, 26 Mar 2011 09:04:48 +1100	[thread overview]
Message-ID: <20110325220448.GO26611@dastard> (raw)
In-Reply-To: <1301086973.2537.686.camel@doink>

On Fri, Mar 25, 2011 at 04:02:53PM -0500, Alex Elder wrote:
> On Wed, 2011-03-23 at 17:14 +1100, Dave Chinner wrote:
> > From: Dave Chinner <dchinner@redhat.com>
> > 
> > Now that the buffer cache has it's own LRU, we do not need to use
> > the page cache to provide persistent caching and reclaim
> > infrastructure. Convert the buffer cache to use alloc_pages()
> > instead of the page cache. This will remove all the overhead of page
> > cache management from setup and teardown of the buffers, as well as
> > needing to mark pages accessed as we find buffers in the buffer
> > cache.
> > 
> > By avoiding the page cache, we also remove the need to keep state in
> > the page_private(page) field for persistant storage across buffer
> > free/buffer rebuild and so all that code can be removed. This also
> > fixes the long-standing problem of not having enough bits in the
> > page_private field to track all the state needed for a 512
> > sector/64k page setup.
> > 
> > It also removes the need for page locking during reads as the pages
> > are unique to the buffer and nobody else will be attempting to
> > access them.
> > 
> > Finally, it removes the buftarg address space lock as a point of
> > global contention on workloads that allocate and free buffers
> > quickly such as when creating or removing large numbers of inodes in
> > parallel. This remove the 16TB limit on filesystem size on 32 bit
> > machines as the page index (32 bit) is no longer used for lookups
> > of metadata buffers - the buffer cache is now solely indexed by disk
> > address which is stored in a 64 bit field in the buffer.
> > 
> > Signed-off-by: Dave Chinner <dchinner@redhat.com>
> 
> This is really a great change, a long time coming.
> 
> I have two comments below, one of which I think is
> a real (but simple) problem.

Yup, i'll fix them.

> I've been using this series all week without problems.  
> This patch cleans things up so nicely I *would* like
> to include it in 2.6.39 if you can update it and turn
> it around with a pull request for me.

Ok, I'll update the series, prep a brach, run a quick sanity check
and send a pull req.
> 
> If so, I'll do some sanity testing and push it to
> oss.sgi.com, then send a pull request to Linus with
> it early next week.
> 
> Reviewed-by: Alex Elder <aelder@sgi.com>
> 
> PS  I'm sorry it took so long to get back to you on
>     this stuff.  I've had a hard time getting my brain
>     re-engaged this week after coming back from vacation
>     for some reason...

No problems, I knew you were away for a while...

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

  reply	other threads:[~2011-03-25 22:01 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-23  6:14 xfs: outstanding patches for 2.6.39 Dave Chinner
2011-03-23  6:14 ` [PATCH 1/6] xfs: preallocation transactions do not need to be synchronous Dave Chinner
2011-03-24 17:18   ` brian.foster
2011-03-24 22:53     ` [PATCH V2] " Dave Chinner
2011-03-25 21:00   ` [PATCH 1/6] " Alex Elder
2011-03-25 22:02     ` Dave Chinner
2011-03-23  6:14 ` [PATCH 2/6] vmap: flush vmap aliases when mapping fails Dave Chinner
2011-03-25 21:00   ` Alex Elder
2011-03-23  6:14 ` [PATCH 3/6] xfs: introduce inode cluster buffer trylocks for xfs_iflush Dave Chinner
2011-03-25 21:00   ` Alex Elder
2011-03-23  6:14 ` [PATCH 4/6] xfs: xfs_trans_read_buf() should return an error on failure Dave Chinner
2011-03-23 11:53   ` Christoph Hellwig
2011-03-25 21:01   ` Alex Elder
2011-03-23  6:14 ` [PATCH 5/6] xfs: register the inode cache shrinker before quotachecks Dave Chinner
2011-03-23 21:24   ` Arkadiusz Miskiewicz
2011-03-25 12:56     ` Michael Weissenbacher
2011-03-25 23:08       ` Dave Chinner
2011-03-25 21:01   ` Alex Elder
2011-03-23  6:14 ` [PATCH 6/6] xfs: stop using the page cache to back the buffer cache Dave Chinner
2011-03-25 21:02   ` Alex Elder
2011-03-25 22:04     ` Dave Chinner [this message]
2011-03-23  7:01 ` xfs: outstanding patches for 2.6.39 Andi Kleen
2011-03-23 11:38   ` Dave Chinner
2011-03-23 16:05     ` Andi Kleen
2011-03-23 22:48       ` Dave Chinner
2011-03-23 11:18 ` Christoph Hellwig
2011-03-23 11:38   ` Dave Chinner

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=20110325220448.GO26611@dastard \
    --to=david@fromorbit.com \
    --cc=aelder@sgi.com \
    --cc=xfs@oss.sgi.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.