public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andrea Arcangeli <andrea@suse.de>
To: William Lee Irwin III <wli@holomorphy.com>,
	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: Tue, 25 Feb 2003 20:18:17 +0100	[thread overview]
Message-ID: <20030225191817.GT29467@dualathlon.random> (raw)
In-Reply-To: <20030225185008.GF10396@holomorphy.com>

On Tue, Feb 25, 2003 at 10:50:08AM -0800, William Lee Irwin III wrote:
> On Tue, Feb 25, 2003 at 09:43:59AM -0800, William Lee Irwin III wrote:
> >> The pagetable cache is gone in 2.5, so pte_alloc_one() takes the
> >> bitblitting hit for pagetables.
> 
> On Tue, Feb 25, 2003 at 06:59:28PM +0100, Andrea Arcangeli wrote:
> > I'm talking about do_anonymous_page, do_wp_page, do_no_page fork and all
> > the other places that introduces spinlocks (per-page) and allocations of
> > 2 pieces of ram rather than just 1 (and in turn potentially global
> > spinlocks too if the cpu-caches are empty). Just grep for
> > pte_chain_alloc or page_add_rmap in mm/memory.c, that's what I mean, I'm
> > not talking about pagetables.
> 
> Okay, fished out the profiles (w/Dave's optimization):
> 
> 00000000 total                                    158601   0.0869
> c0106ed8 poll_idle                                 99878 1189.0238
> c01172e0 do_page_fault                              8788   7.7496
> c013adb4 do_wp_page                                 6712   8.4322
> c013f70c page_remove_rmap                           3132   6.2640
> c0139eac copy_page_range                            2994   3.5643
> c013f5c0 page_add_rmap                              2776   8.3614
> c013a1f4 zap_pte_range                              2616   4.8806
> c0137240 release_pages                              1828   6.4366
> c0108d14 system_call                                1116  25.3636
> c013ba00 handle_mm_fault                            1098   4.6525
> c015b59c d_lookup                                   1096   3.2619
> c013b788 do_no_page                                 1044   1.6519
> c013b56c do_anonymous_page                           954   1.7667
> c011718c pte_alloc_one                               910   6.5000
> c0139ba0 clear_page_tables                           841   2.4735
> c011450c flush_tlb_page                              725   6.4732
> c0207130 __copy_to_user_ll                           687   6.6058
> c01333dc free_hot_cold_page                          641   2.7629
> c013042c find_get_page                               601  10.7321
> 
> Just taking the exception dwarfs anything written in C.
> 
> page_add_rmap() absorbs hits from all of the fault routines and
> copy_page_range(). page_remove_rmap() absorbs hits from zap_pte_range().
> do_wp_page() is huge because it's doing bitblitting in-line.

"absorbing" is a nice word for it.  The way I see it, page_add_rmap and
page_remove_rmap are even more expensive than the pagtable zapping.
They're even more expensive than copy_page_range.  Also focus on the
numbers on the right that are even more interesting to find what is
worth to optimize away first IMHO


> 
> These things aren't cheap with or without rmap. Trimming down

lots of things aren't cheap, but this isn't a good reason to make them
twice more expensive, especially if they were as cheap as possible and
they're critical hot paths.

> accounting overhead could raise search problems elsewhere.

this is the point indeed, but at least in 2.4 I don't see any cpu saving
advantage during swapping because during swapping the cpu is always idle
anyways.

Infact I had to drop the lru_cache_add too from the anonymous page fault
path because it was wasting way too much cpu to get peak performance (of
course you're using per-page spinlocks by hand with rmap, and
lru_cache_add needs a global spinlock, so at least rmap shouldn't
introduce very big scalability issue unlike the lru_cache_add)

> Whether avoiding the search problem is worth the accounting overhead
> could probably use some more investigation, like actually trying the
> anonymous page handling rework needed to use vma-based ptov resolution.

the only solution is to do rmap lazily, i.e. to start building the rmap
during swapping by walking the pagetables, basically exactly like I
refill the lru with anonymous pages only after I start to need this
information recently in my 2.4 tree, so if you never need to pageout
heavily several giga of ram (like most of very high end numa servers),
you'll never waste a single cycle in locking or whatever other worthless
accounting overhead that hurts performance of all common workloads

Andrea

  reply	other threads:[~2003-02-25 19:07 UTC|newest]

Thread overview: 274+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-02-21 23:48 Minutes from Feb 21 LSE Call 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 [this message]
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
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
  -- strict thread matches above, loose matches on Subject: below --
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=20030225191817.GT29467@dualathlon.random \
    --to=andrea@suse.de \
    --cc=akpm@digeo.com \
    --cc=hannal@us.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lse-tech@lists.sf.et \
    --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