From: William Lee Irwin III <wli@holomorphy.com>
To: Andrea Arcangeli <andrea@suse.de>
Cc: Dave Hansen <haveblue@us.ibm.com>, linux-kernel@vger.kernel.org
Subject: Re: RFC: CONFIG_PAGE_SHIFT (aka software PAGE_SIZE)
Date: Wed, 18 Jul 2007 06:32:22 -0700 [thread overview]
Message-ID: <20070718133222.GM11781@holomorphy.com> (raw)
In-Reply-To: <20070717193308.GD25301@v2.random>
On Tue, Jul 17, 2007 at 10:47:37AM -0700, William Lee Irwin III wrote:
>> You may rest assured that it's technically feasible. It's been done.
>> The larger obstacles to all this are nontechnical.
On Tue, Jul 17, 2007 at 09:33:08PM +0200, Andrea Arcangeli wrote:
> Back then there was no variable order page size proposal, no slub,
> generally nothing of that kind.
> I think these days it worth to get it working again and solve the
> technical obstacles once more time. Then we should plug into it a
> pagecache logic to handle small files. That means if the soft page
> size is 64k, we should kmalloc 32k of pagecache if the file is < 64k
> but >= 32k, or kmalloc 16k if the file is < 32k but >= 16k, etc...
Actually I'd worked on what was called MPSS (Multiple Page Size Support)
before I ever started on pgcl. Some large portion of the pgcl proposal
as I presented it internally was to reduce the order of large page
allocations and provide a promotion and demotion mechanism enabling
different processes to have different sized translations for the same
large page, and hence no out-of-context pagetable/TLB updates during
promotion and demotion, essentially by making the TLB translation to
page relation M:N. ISTR describing this in a KS presentation for which
IIRC you were present. But that's neither here nor there.
On Tue, Jul 17, 2007 at 09:33:08PM +0200, Andrea Arcangeli wrote:
> Down to 32bytes if we memcpy the 32bytes away to a 64k page, and we
> disable the logic the moment somebody attempts to mmap the "kmalloced"
> pagecache (which I think it's a lot simpler than trying to mmap a
> kmalloced 4k naturally aligned object into userland). I wouldn't call
> it tail packing, it's more a fine-granular pagecache with the already
> available kmalloc granularities. That will maximize pagecache
> utilization with read syscall for hg/git compared to current 2.6.22
> plus memory will be allocated faster in 64k chunks etc... Ideally it
> should be possible to disable the finer-granular-kmalloc-pagecache on
> the big irons with lots of memory and only working with big files.
In any event, that is a sound strategy for mitigating internal
fragmentation of pagecache, though internal fragmentation of anonymous
memory has more severe consequences and is less easily mitigated.
-- wli
next prev parent reply other threads:[~2007-07-18 13:31 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-06 22:26 RFC: CONFIG_PAGE_SHIFT (aka software PAGE_SIZE) Andrea Arcangeli
2007-07-06 23:33 ` Dave Hansen
2007-07-06 23:52 ` Andrea Arcangeli
2007-07-17 17:47 ` William Lee Irwin III
2007-07-17 19:33 ` Andrea Arcangeli
2007-07-18 13:32 ` William Lee Irwin III [this message]
2007-07-18 16:34 ` Rene Herman
2007-07-18 23:50 ` Andrea Arcangeli
2007-07-19 0:53 ` Rene Herman
2007-07-24 19:44 ` Andrea Arcangeli
2007-07-25 3:20 ` William Lee Irwin III
2007-07-25 14:39 ` Andrea Arcangeli
2007-07-25 17:56 ` William Lee Irwin III
2007-07-07 1:36 ` Badari Pulavarty
2007-07-07 1:47 ` Badari Pulavarty
2007-07-07 10:12 ` Andrea Arcangeli
2007-07-07 7:01 ` Paul Mackerras
2007-07-07 10:25 ` Andrea Arcangeli
2007-07-07 18:53 ` Jan Engelhardt
2007-07-07 20:34 ` Rik van Riel
2007-07-08 9:52 ` Andrea Arcangeli
2007-07-08 23:20 ` David Chinner
2007-07-10 10:11 ` Andrea Arcangeli
2007-07-12 0:12 ` David Chinner
2007-07-12 11:14 ` Andrea Arcangeli
2007-07-12 14:44 ` David Chinner
2007-07-12 16:31 ` Andrea Arcangeli
2007-07-12 16:34 ` Dave Hansen
2007-07-13 7:13 ` David Chinner
2007-07-13 14:08 ` Dave Kleikamp
2007-07-13 14:31 ` Andrea Arcangeli
2007-07-16 0:27 ` David Chinner
2007-07-12 17:53 ` Matt Mackall
2007-07-13 1:06 ` 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=20070718133222.GM11781@holomorphy.com \
--to=wli@holomorphy.com \
--cc=andrea@suse.de \
--cc=haveblue@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
/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.