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 ;)
next prev 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®