mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@digeo.com>
To: Hanna Linder <hannal@us.ibm.com>
Cc: lse-tech@lists.sf.et, linux-kernel@vger.kernel.org
Subject: Re: Minutes from Feb 21 LSE Call
Date: Sat, 22 Feb 2003 19:24:24 -0800	[thread overview]
Message-ID: <20030222192424.6ba7e859.akpm@digeo.com> (raw)
In-Reply-To: <96700000.1045871294@w-hlinder>

Hanna Linder <hannal@us.ibm.com> wrote:
>
> 
> 	Dave coded up an initial patch for partial object based rmap
> which he sent to linux-mm yesterday.

I've run some numbers on this.  Looks like it reclaims most of the
fork/exec/exit rmap overhead.

The testcase is applying and removing 64 kernel patches using my patch
management scripts.  I use this because

a) It's a real workload, which someone cares about and

b) It's about as forky as anything is ever likely to be, without being a
   stupid microbenchmark.

Testing is on the fast P4-HT, everything in pagecache.

2.4.21-pre4:                    8.10 seconds
2.5.62-mm3 with objrmap:        9.95 seconds	(+1.85)
2.5.62-mm3 without objrmap:     10.86 seconds   (+0.91)

Current 2.5 is 2.76 seconds slower, and this patch reclaims 0.91 of those
seconds.


So whole stole the remaining 1.85 seconds?   Looks like pte_highmem.

Here is 2.5.62-mm3, with objrmap:

c013042c find_get_page                               601  10.7321
c01333dc free_hot_cold_page                          641   2.7629
c0207130 __copy_to_user_ll                           687   6.6058
c011450c flush_tlb_page                              725   6.4732
c0139ba0 clear_page_tables                           841   2.4735
c011718c pte_alloc_one                               910   6.5000
c013b56c do_anonymous_page                           954   1.7667
c013b788 do_no_page                                 1044   1.6519
c015b59c d_lookup                                   1096   3.2619
c013ba00 handle_mm_fault                            1098   4.6525
c0108d14 system_call                                1116  25.3636
c0137240 release_pages                              1828   6.4366
c013a1f4 zap_pte_range                              2616   4.8806
c013f5c0 page_add_rmap                              2776   8.3614
c0139eac copy_page_range                            2994   3.5643
c013f70c page_remove_rmap                           3132   6.2640
c013adb4 do_wp_page                                 6712   8.4322
c01172e0 do_page_fault                              8788   7.7496
c0106ed8 poll_idle                                 99878 1189.0238
00000000 total                                    158601   0.0869

Note one second spent in pte_alloc_one().


Here is 2.4.21-pre4, with the following functions uninlined

pte_t *pte_alloc_one(struct mm_struct *mm, unsigned long address);
pte_t *pte_alloc_one_fast(struct mm_struct *mm, unsigned long address);
void pte_free_fast(pte_t *pte);
void pte_free_slow(pte_t *pte);

c0252950 atomic_dec_and_lock                          36   0.4800
c0111778 flush_tlb_mm                                 37   0.3304
c0129c3c file_read_actor                              37   0.2569
c025282c strnlen_user                                 43   0.5119
c012b35c generic_file_write                           46   0.0283
c0114c78 schedule                                     48   0.0361
c0129050 unlock_page                                  53   0.4907
c0140974 link_path_walk                               57   0.0237
c0116740 copy_mm                                      62   0.0852
c0130740 __free_pages_ok                              62   0.0963
c0126afc handle_mm_fault                              63   0.3424
c01254c0 __free_pte                                   67   0.8816
c0129198 __find_get_page                              67   0.9853
c01309c4 rmqueue                                      70   0.1207
c011ae0c exit_notify                                  77   0.1075
c0149b34 d_lookup                                     81   0.2774
c0126874 do_anonymous_page                            83   0.3517
c0126960 do_no_page                                   86   0.2087
c01117e8 flush_tlb_page                              105   0.8750
c0106f54 system_call                                 138   2.4643
c01255c8 copy_page_range                             197   0.4603
c0130ffc __free_pages                                204   5.6667
c0125774 zap_page_range                              262   0.3104
c0126330 do_wp_page                                  775   1.4904
c0113c18 do_page_fault                               864   0.7030
c01052f8 poll_idle                                  6803 170.0750
00000000 total                                     11923   0.0087

Note the lack of pte_alloc_one_slow().

So we need the page table cache back.

We cannot put it in slab, because slab does not do highmem.

I believe the best way to solve this is to implement a per-cpu LIFO head
array of known-to-be-zeroed pages in the page allocator.  Populate it with
free_zeroed_page(), grab pages from it with __GFP_ZEROED.

This is a simple extension to the existing hot and cold head arrays, and I
have patches, and they don't work.  Something in the pagetable freeing path
seems to be putting back pages which are not fully zeroed, and I didn't get
onto debugging it.

It would be nice to get it going, because a number of architectures can
perhaps nuke their private pagetable caches.

I shall drop the patches in next-mm/experimental and look hopefully
at Dave ;)

  parent reply	other threads:[~2003-02-23  3:14 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 [this message]
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
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=20030222192424.6ba7e859.akpm@digeo.com \
    --to=akpm@digeo.com \
    --cc=hannal@us.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lse-tech@lists.sf.et \
    /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®