linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: William Lee Irwin III <wli@holomorphy.com>
To: Nick Piggin <npiggin@suse.de>
Cc: Matt Mackall <mpm@selenic.com>,
	Christoph Lameter <clameter@sgi.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linux Memory Management List <linux-mm@kvack.org>,
	linux-arch@vger.kernel.org
Subject: Re: [rfc] increase struct page size?!
Date: Tue, 22 May 2007 03:59:35 -0700	[thread overview]
Message-ID: <20070522105935.GR19966@holomorphy.com> (raw)
In-Reply-To: <20070522062452.GA29807@wotan.suse.de>

On Mon, May 21, 2007 at 10:04:10PM -0700, William Lee Irwin III wrote:
>> The size isn't the advantage being cited; I'd actually expect the net
>> result to be larger. It's the control over the layout of the metadata
>> for cache locality and even things like having enough flags, folding
>> buffer_head -like affairs into the per-page metadata for filesystems
>> and so reaping cache locality benefits even there (assuming it works
>> out in other respects), and so on.
>> Passing pages between subsystems doesn't seem very significant to me.
>> There isn't going to be much locality of reference, or even any
>> guarantee that the subsystem gets fed a cache hot page structure. The
>> subsystem being passed the page will have its own cache hot accounting
>> structures to stick the information about the memory into.

On Tue, May 22, 2007 at 08:24:53AM +0200, Nick Piggin wrote:
> Well consider the page allocator and pagecache. The page allocator
> uses page metadata rather than eg. a bitmap, and it uses page list
> heads for the per-cpu allocator.
> If we were to instead perhaps use external bitmaps and arrays to 
> keep track of pages, then the pagecache would have to go and allocate
> its own structures rather than reuse the cache hot page allocator
> structures.
> Buffer heads might be something that would work well, but we'd still
> like to be able to deallocate them without freeing the whole pagecache
> (because they tend to be associated with less frequent operations like
> IO). But anyway, I don't know. I'm sure there would be cases where it
> works better.

The page allocator maintains a number of bitmaps, but anyway. Each
subsystem will basically have its own cache-hot structures. Instead
of passing around metadata that's hot, each tries to keep its own
"working set" of metadata hot. Basically yes, it will work better in
some situations and the current metadata passing will work better in
others. I'd expect the control over the layout to be more advantageous
more often, especially since it arranges cache contiguity while pages
are in use.


On Mon, May 21, 2007 at 10:04:10PM -0700, William Lee Irwin III wrote:
>> I'm not entirely sure what you're on about there, but it sounds
>> interesting.

On Tue, May 22, 2007 at 08:24:53AM +0200, Nick Piggin wrote:
> Heh :) Well the lockless pagecache would become basically trivial if we
> could RCU-free pagecache pages, however doing that is really awful for
> a number of reasons. However if you had a system where the metadata is
> decoupled, you could simply RCU-free the 'struct page' (while still
> immediately freeing the page itself) which would make lockless pagecache
> (and potentially similar things) equally trivial.
> I assumed K42 might have been into that angle.

That does sound convenient. I'll add that to the list of benefits.


-- wli

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2007-05-22 10:59 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-18  4:08 Nick Piggin
2007-05-18  4:47 ` David Miller, Nick Piggin
2007-05-18  5:12   ` Nick Piggin
2007-05-18  5:22     ` David Miller, Nick Piggin
2007-05-18  5:31       ` Nick Piggin
2007-05-18 18:15     ` Christoph Lameter
2007-05-18  7:19 ` Andrew Morton
2007-05-18  7:32   ` Nick Piggin
2007-05-18  7:43     ` Andrew Morton
2007-05-18  7:59       ` Nick Piggin
2007-05-18  9:42 ` David Howells
2007-05-19  1:30   ` Nick Piggin
2007-05-18 12:06 ` Andi Kleen
2007-05-18 15:42 ` Hugh Dickins
2007-05-19  1:22   ` Nick Piggin
2007-05-19 17:53   ` William Lee Irwin III
2007-05-20 22:50     ` Matthew Wilcox
2007-05-18 18:14 ` Christoph Lameter
2007-05-18 20:37   ` Luck, Tony
2007-05-21  6:28     ` KAMEZAWA Hiroyuki
2007-05-19  1:25   ` Nick Piggin
2007-05-19  2:03     ` [rfc] increase struct page size?! (now sparsemem vmemmap) Christoph Lameter
2007-05-19 15:43       ` Andy Whitcroft
2007-05-19 18:15     ` [rfc] increase struct page size?! William Lee Irwin III
2007-05-19 18:25       ` Christoph Lameter
2007-05-20  4:10         ` Eric Dumazet
2007-05-20 12:56           ` Andi Kleen
2007-05-21 17:08             ` Christoph Lameter
2007-05-22  0:30               ` KAMEZAWA Hiroyuki
2007-05-22  0:38                 ` Christoph Lameter
2007-05-22  0:58                   ` KAMEZAWA Hiroyuki
2007-05-22  9:44                   ` Geert Uytterhoeven
2007-05-19 22:09       ` Andrew Morton
2007-05-20  7:26         ` William Lee Irwin III
2007-05-21  9:12         ` Helge Hafting
2007-05-21  9:45           ` Nick Piggin
2007-05-20  5:22       ` Nick Piggin
2007-05-20  8:46         ` William Lee Irwin III
2007-05-20  9:25           ` Nick Piggin
2007-05-21  8:08             ` William Lee Irwin III
2007-05-21  9:27               ` Nick Piggin
2007-05-21 11:26                 ` William Lee Irwin III
2007-05-22  0:52                   ` Nick Piggin
2007-05-21 22:43                 ` Matt Mackall
2007-05-22  1:08                   ` Nick Piggin
2007-05-22  1:13                     ` Christoph Lameter
2007-05-22  1:39                   ` William Lee Irwin III
2007-05-22  1:57                     ` Nick Piggin
2007-05-22  5:04                       ` William Lee Irwin III
2007-05-22  6:24                         ` Nick Piggin
2007-05-22 10:59                           ` William Lee Irwin III [this message]
2007-05-21  9:31               ` Eric Dumazet
2007-05-21 17:06             ` Christoph Lameter
2007-05-20 17:13 ` Andrea Arcangeli

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=20070522105935.GR19966@holomorphy.com \
    --to=wli@holomorphy.com \
    --cc=clameter@sgi.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mpm@selenic.com \
    --cc=npiggin@suse.de \
    /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