mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Daniel Phillips <phillips@arcor.de>
To: Rik van Riel <riel@imladris.surriel.com>,
	"Martin J. Bligh" <mbligh@aracnet.com>
Cc: William Lee Irwin III <wli@holomorphy.com>,
	Andrea Arcangeli <andrea@suse.de>, Andrew Morton <akpm@digeo.com>,
	Hanna Linder <hannal@us.ibm.com>, "" <lse-tech@lists.sf.et>,
	"" <linux-kernel@vger.kernel.org>
Subject: Re: Minutes from Feb 21 LSE Call
Date: Thu, 27 Feb 2003 04:48:42 +0100	[thread overview]
Message-ID: <20030226205727.AD930EACC9@mx12.arcor-online.net> (raw)
In-Reply-To: <Pine.LNX.4.50L.0302261258280.6749-100000@imladris.surriel.com>

On Wednesday 26 February 2003 17:02, Rik van Riel wrote:
> On Tue, 25 Feb 2003, Martin J. Bligh wrote:
> > It seemed, at least on the simple kernel compile tests that I did, that
> > all the long chains are not anonymous. It killed 95% of the space issue,
> > which given the simplicity of the patch was pretty damned stunning. Yes,
> > there's a pointer per page I guess we could kill in the struct page
> > itself, but I think you already have a better method for killing mem_map
> > bloat ;-)
>
> Also, with copy-on-write and mremap after fork, doing an
> object based rmap scheme for anonymous pages is just complex,
> almost certainly far too complex to be worth it, since it just
> has too many issues.  Just read the patches by bcrl and davem,
> things get hairy fast.
>
> The pte chain rmap scheme is clean, but suffers from too much
> overhead for file mappings.

There is a lot of redundancy in the rmap chains that could be exploited.  If 
a pte page happens to reference a group of  (say) 32 anon pages, then you can 
set each anon page's page->index to its position in the group and let a 
pte_chain node point at the pte of the first page of the group.  You can then 
find each page's pte by adding its page->index to the pte_chain node's pte 
pointer.  This allows a single rmap chain to be shared by all the pages in 
the group.

This much of the idea is simple, however there are some tricky details to 
take care of.  How does a copy-on-write break out one page of the group from 
one of the pte pages?  I tried putting a (32 bit) bitmap in each pte_chain 
node to indicate which pte entries actually belong to the group, and that 
wasn't too bad except for doubling the per-link memory usage, turning a best 
case 32x gain into only 16x.  It's probably better to break the group up, 
creating log2(groupsize) new chains.  (This can be avoided in the common case 
that you already know every page in the group is going to be copied, as with 
a copy_from_user.)  Getting rid of the bitmaps makes the single-page case the 
same as the current arrangement and makes it easy to let the size of a page 
be as large as the capacity of a whole pte page.

There's also the problem of detecting groupable clusters of pages, e.g., in 
do_anon_page.  Swap-out and swap-in introduce more messiness, as does mremap. 
In the end, I decided it's not needed in the current cycle, but probably 
worth investigating later.

My purpose in bringing it up now is to show that there are still some more 
incremental gains to be had without needing radical surgery.

> As shown by Dave's patch, a hybrid system really is simple and
> clean, and it removes most of the pte chain overhead while still
> keeping the code nice and efficient.
>
> I think this hybrid system is the way to go, possibly with a few
> more tweaks left and right...

Emphatically, yes.

Regards,

Daniel

  reply	other threads:[~2003-02-26 20:47 UTC|newest]

Thread overview: 274+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-02-21 23:48 Hanna Linder
2003-02-22  0:16 ` Larry McVoy
2003-02-22  0:25   ` William Lee Irwin III
2003-02-22  2:24     ` Steven Cole
2003-02-22  0:44   ` Martin J. Bligh
2003-02-22  2:47     ` Larry McVoy
2003-02-22  4:32       ` Martin J. Bligh
2003-02-22  5:05         ` Larry McVoy
2003-02-22  6:39           ` Martin J. Bligh
2003-02-22  8:38             ` Jeff Garzik
2003-02-22 22:18               ` William Lee Irwin III
2003-02-23  0:50                 ` Martin J. Bligh
2003-02-23 11:22                   ` Magnus Danielson
2003-02-23 19:54                   ` Eric W. Biederman
2003-02-23  1:17                 ` Benjamin LaHaise
2003-02-23  5:21                   ` Gerrit Huizenga
2003-02-23  8:07                     ` David Lang
2003-02-23  8:20                       ` William Lee Irwin III
2003-02-23 19:17                         ` Linus Torvalds
2003-02-23 19:29                           ` David Mosberger
2003-02-23 20:13                             ` Martin J. Bligh
2003-02-23 22:01                               ` David Mosberger
2003-02-23 22:12                                 ` Martin J. Bligh
2003-02-23 21:34                             ` Linus Torvalds
2003-02-23 22:40                               ` David Mosberger
2003-02-23 22:48                                 ` David Lang
2003-02-23 22:54                                   ` David Mosberger
2003-02-23 22:56                                     ` David Lang
2003-02-24  0:40                                     ` Linus Torvalds
2003-02-24  2:32                                       ` David Mosberger
2003-02-24  2:54                                         ` Linus Torvalds
2003-02-24  3:08                                           ` David Mosberger
2003-02-24 21:42                                           ` Andrea Arcangeli
2003-02-24  1:06                                     ` dean gaudet
2003-02-24  1:56                                       ` David Mosberger
2003-02-24  2:15                                         ` dean gaudet
2003-02-24  3:11                                           ` David Mosberger
2003-02-23 23:06                                 ` Martin J. Bligh
2003-02-23 23:59                                   ` David Mosberger
2003-02-24  3:49                                     ` Gerrit Huizenga
2003-02-24  4:07                                       ` David Mosberger
2003-02-24  4:34                                         ` Martin J. Bligh
2003-02-24  5:02                                         ` Gerrit Huizenga
2003-02-23 20:21                           ` Xavier Bestel
2003-02-23 20:50                             ` Martin J. Bligh
2003-02-23 23:57                               ` Alan Cox
2003-02-24  1:26                                 ` Kenneth Johansson
2003-02-24  1:53                                   ` dean gaudet
2003-02-23 21:35                             ` Alan Cox
2003-02-23 21:41                             ` Linus Torvalds
2003-02-24  0:01                             ` Bill Davidsen
2003-02-24  0:36                             ` yodaiken
2003-02-23 21:15                           ` John Bradford
2003-02-23 21:45                             ` Linus Torvalds
2003-02-24  1:25                               ` Benjamin LaHaise
2003-02-23 21:55                           ` William Lee Irwin III
2003-02-23 19:13                       ` David Mosberger
2003-02-23 23:28                         ` Benjamin LaHaise
2003-02-26  8:46                         ` Eric W. Biederman
2003-02-23 20:48                       ` Gerrit Huizenga
2003-02-23  9:37                   ` William Lee Irwin III
2003-02-22  8:38             ` David S. Miller
2003-02-22  8:38           ` David S. Miller
2003-02-22 14:34             ` Larry McVoy
2003-02-22 15:47               ` Martin J. Bligh
2003-02-22 16:13                 ` Larry McVoy
2003-02-22 16:29                   ` Martin J. Bligh
2003-02-22 16:33                     ` Larry McVoy
2003-02-22 16:39                       ` Martin J. Bligh
2003-02-22 16:59                         ` John Bradford
2003-02-24 18:00                   ` Timothy D. Witham
2003-02-22  8:32   ` David S. Miller
2003-02-22 18:20   ` Alan Cox
2003-02-22 20:05     ` William Lee Irwin III
2003-02-22 21:35       ` Alan Cox
2003-02-22 21:36     ` Gerrit Huizenga
2003-02-22 21:42       ` Christoph Hellwig
2003-02-23 23:23       ` Bill Davidsen
2003-02-24  3:31         ` Gerrit Huizenga
2003-02-24  4:02           ` Larry McVoy
2003-02-24  4:15             ` Russell Leighton
2003-02-24  5:11             ` William Lee Irwin III
2003-02-24  8:07             ` Christoph Hellwig
2003-02-23  0:37   ` Eric W. Biederman
2003-02-23  0:42 ` Eric W. Biederman
2003-02-23 14:29   ` Rik van Riel
2003-02-23 17:28     ` Eric W. Biederman
2003-02-24  1:42       ` Benjamin LaHaise
2003-02-23  3:24 ` Andrew Morton
2003-02-23 16:14   ` object-based rmap and pte-highmem Martin J. Bligh
2003-02-23 19:20     ` Linus Torvalds
2003-02-23 20:16       ` Martin J. Bligh
2003-02-23 21:37         ` Linus Torvalds
2003-02-23 22:07           ` pte-highmem vs UKVA (was: object-based rmap and pte-highmem) Martin J. Bligh
2003-02-23 22:10             ` William Lee Irwin III
2003-02-24  0:31               ` Linus Torvalds
2003-02-24  3:07             ` Martin J. Bligh
2003-02-25 17:17   ` Minutes from Feb 21 LSE Call Andrea Arcangeli
2003-02-25 17:43     ` William Lee Irwin III
2003-02-25 17:59       ` Andrea Arcangeli
2003-02-25 18:04         ` William Lee Irwin III
2003-02-25 18:50         ` William Lee Irwin III
2003-02-25 19:18           ` Andrea Arcangeli
2003-02-25 19:27             ` Martin J. Bligh
2003-02-25 20:30               ` Andrea Arcangeli
2003-02-25 20:53                 ` Martin J. Bligh
2003-02-25 21:17                   ` Andrea Arcangeli
2003-02-25 21:12                     ` Martin J. Bligh
2003-02-25 22:16                       ` Andrea Arcangeli
2003-02-25 22:17                         ` Martin J. Bligh
2003-02-25 22:37                           ` Andrea Arcangeli
2003-02-25 21:26                     ` William Lee Irwin III
2003-02-25 22:18                       ` Andrea Arcangeli
2003-02-26  5:24                       ` Rik van Riel
2003-02-26  5:38                         ` William Lee Irwin III
2003-02-26  6:01                           ` Martin J. Bligh
2003-02-26  6:14                             ` William Lee Irwin III
2003-02-26  6:32                               ` William Lee Irwin III
2003-02-26 16:02                             ` Rik van Riel
2003-02-27  3:48                               ` Daniel Phillips [this message]
2003-02-25 20:10             ` William Lee Irwin III
2003-02-25 20:23               ` Andrea Arcangeli
2003-02-25 20:46                 ` William Lee Irwin III
2003-02-25 20:52                   ` Andrea Arcangeli
     [not found] <Pine.LNX.4.44.0302221417120.2686-100000@coffee.psychology.mcmaster.ca>
     [not found] ` <1510000.1045942974@[10.10.2.4]>
2003-02-22 19:56   ` Larry McVoy
2003-02-22 20:24     ` William Lee Irwin III
2003-02-22 21:02     ` Martin J. Bligh
2003-02-22 22:06       ` Mark Hahn
2003-02-22 22:17         ` William Lee Irwin III
2003-02-22 23:28           ` Larry McVoy
2003-02-22 23:47             ` Martin J. Bligh
2003-02-23  0:09             ` Gerrit Huizenga
2003-02-23  8:01               ` Larry McVoy
2003-02-23  8:05                 ` William Lee Irwin III
2003-02-24 18:36             ` Andy Pfiffer
2003-02-22 22:44         ` Ben Greear
2003-02-23 23:29           ` Bill Davidsen
2003-02-23 23:37             ` Martin J. Bligh
2003-02-24  4:57               ` Larry McVoy
2003-02-24  6:10                 ` Gerhard Mack
2003-02-24  6:52                   ` Larry McVoy
2003-02-24  7:46                     ` Bill Huey
2003-02-24  7:44                 ` Bill Huey
2003-02-24  7:54                   ` William Lee Irwin III
2003-02-24  8:00                     ` Bill Huey
2003-02-24  8:40                       ` Andrew Morton
2003-02-24  8:50                         ` William Lee Irwin III
2003-02-24 16:17                           ` yodaiken
2003-02-24 23:13                             ` William Lee Irwin III
2003-02-24 23:27                               ` yodaiken
2003-02-24 23:54                                 ` William Lee Irwin III
2003-02-24 23:54                                   ` yodaiken
2003-02-25  2:17                                 ` Bill Huey
2003-02-25  2:24                                   ` yodaiken
2003-02-25  2:35                                     ` Bill Huey
2003-02-25  2:43                                     ` Bill Huey
2003-02-25  2:32                                   ` Larry McVoy
2003-02-25  2:40                                     ` Bill Huey
2003-02-25  5:24                                   ` Rik van Riel
2003-02-25 15:30                                   ` Alan Cox
2003-02-25 14:59                                     ` Bill Huey
2003-02-25 15:44                                       ` yodaiken
2003-02-26 19:31                                   ` Bill Davidsen
2003-02-27  0:56                                     ` Bill Huey
2003-02-27 20:04                                       ` Bill Davidsen
2003-02-25  2:07                             ` Bill Huey
2003-02-25  2:14                               ` Larry McVoy
2003-02-25  2:24                                 ` Bill Huey
2003-02-25  2:46                                   ` Valdis.Kletnieks
2003-02-25 14:47                                     ` Mr. James W. Laferriere
2003-02-25 15:59                                       ` Jesse Pollard
2003-02-24  8:56                         ` Bill Huey
2003-02-24  9:09                           ` Andrew Morton
2003-02-24  9:24                             ` Bill Huey
2003-02-24  9:56                               ` Andrew Morton
2003-02-24 10:11                                 ` Bill Huey
2003-02-24 14:40                           ` Bill Davidsen
2003-02-24 21:10                           ` Andrea Arcangeli
2003-02-24  8:43                       ` William Lee Irwin III
2003-02-22 23:10         ` Martin J. Bligh
2003-02-22 23:20           ` Larry McVoy
2003-02-22 23:46             ` Martin J. Bligh
2003-02-25  2:19         ` Hans Reiser
2003-02-25  3:49           ` Martin J. Bligh
2003-02-25  5:12             ` Steven Cole
2003-02-25 20:37               ` Scott Robert Ladd
2003-02-25 21:36                 ` Hans Reiser
2003-02-25 23:28                   ` Scott Robert Ladd
2003-02-25 23:41                     ` Hans Reiser
2003-02-26  0:19                       ` Scott Robert Ladd
2003-02-26  0:35                         ` Hans Reiser
2003-02-26 16:31                           ` Horst von Brand
2003-02-26  0:47                       ` Steven Cole
2003-02-26 16:07                       ` Horst von Brand
2003-02-26 19:47                         ` Alan Cox
2003-02-26  6:04                     ` Aaron Lehmann
2003-02-26  0:44                 ` Alan Cox
2003-02-25 23:58                   ` Scott Robert Ladd
2003-02-22 23:15       ` Larry McVoy
2003-02-22 23:23         ` Christoph Hellwig
2003-02-22 23:54           ` Mark Hahn
2003-02-22 23:44         ` Martin J. Bligh
2003-02-24  4:56           ` Larry McVoy
2003-02-24  5:06             ` William Lee Irwin III
2003-02-24  6:00               ` Mark Hahn
2003-02-24  6:02                 ` William Lee Irwin III
2003-02-24 15:06               ` Alan Cox
2003-02-24 23:18                 ` William Lee Irwin III
2003-02-24  5:16             ` Martin J. Bligh
2003-02-24  6:58               ` Larry McVoy
2003-02-24  7:39                 ` Martin J. Bligh
2003-02-24 16:17                   ` Larry McVoy
2003-02-24 16:49                     ` Martin J. Bligh
2003-02-24 18:22                     ` John W. M. Stevens
2003-02-24  7:51                 ` William Lee Irwin III
2003-02-24 15:47                   ` Larry McVoy
2003-02-24 16:00                     ` Martin J. Bligh
2003-02-24 16:23                     ` Benjamin LaHaise
2003-02-24 16:25                       ` yodaiken
2003-02-24 18:20                         ` Gerrit Huizenga
2003-02-24 16:31                       ` Larry McVoy
2003-02-24 23:36                     ` William Lee Irwin III
2003-02-25  0:23                       ` Larry McVoy
2003-02-25  2:37                         ` Werner Almesberger
2003-02-25  4:42                         ` William Lee Irwin III
2003-02-25  4:54                           ` Larry McVoy
2003-02-25  6:00                             ` William Lee Irwin III
2003-02-25  7:00                               ` Val Henson
2003-02-24 13:28                 ` Alan Cox
2003-02-25  5:19                   ` Chris Wedgwood
2003-02-25  5:26                     ` William Lee Irwin III
2003-02-25 21:21                       ` Chris Wedgwood
2003-02-25 21:14                         ` Martin J. Bligh
2003-02-25 21:21                         ` William Lee Irwin III
2003-02-25 22:08                           ` Larry McVoy
2003-02-25 22:10                             ` William Lee Irwin III
2003-02-25 22:37                             ` Chris Wedgwood
2003-02-25 22:58                               ` Larry McVoy
2003-02-25  6:17                     ` Martin J. Bligh
2003-02-25 17:11                       ` Cliff White
2003-02-25 17:17                         ` William Lee Irwin III
2003-02-25 17:38                         ` Linus Torvalds
2003-02-25 19:54                           ` Dave Jones
2003-02-26  2:04                             ` Linus Torvalds
2003-02-25 19:48                         ` Martin J. Bligh
2003-02-25 21:28                       ` William Lee Irwin III
2003-02-25 19:20                     ` Alan Cox
2003-02-25 19:59                     ` Scott Robert Ladd
2003-02-25 20:18                       ` jlnance
2003-02-25 20:59                         ` Scott Robert Ladd
2003-02-25 21:19                       ` Chris Wedgwood
2003-02-25 21:38                         ` Scott Robert Ladd
2003-02-24 18:44                 ` Davide Libenzi
2003-02-22 23:57         ` Jeff Garzik
2003-02-23 23:57         ` Bill Davidsen
2003-02-24  6:22           ` Val Henson
2003-02-24  6:41             ` William Lee Irwin III
2003-02-22 21:29     ` Jeff Garzik
2003-02-24  2:04 linux
2003-02-24  2:39 ` Linus Torvalds
2003-02-24  3:28   ` David Lang
2003-02-26  5:30     ` Bernd Eckenfels
2003-02-26  5:42       ` William Lee Irwin III
2003-02-26  7:22         ` David Lang
2003-02-27 17:50       ` Daniel Egger
2003-02-27 18:25         ` David Lang
2003-02-28  8:58           ` Filip Van Raemdonck
2003-02-28 19:48           ` Arador
2003-03-01  0:51             ` Chris Wedgwood
2003-03-01  1:14               ` Davide Libenzi
2003-03-01  1:27               ` David Lang
2003-03-01 14:15                 ` Daniel Egger
2003-02-24  4:42   ` Martin J. Bligh
2003-02-24  4:58     ` Linus Torvalds

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=20030226205727.AD930EACC9@mx12.arcor-online.net \
    --to=phillips@arcor.de \
    --cc=akpm@digeo.com \
    --cc=andrea@suse.de \
    --cc=hannal@us.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lse-tech@lists.sf.et \
    --cc=mbligh@aracnet.com \
    --cc=riel@imladris.surriel.com \
    --cc=wli@holomorphy.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®