linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@digeo.com>
To: Hugh Dickins <hugh@veritas.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH] anobjrmap 1/6 rmap.h
Date: Thu, 20 Mar 2003 22:48:13 -0800	[thread overview]
Message-ID: <20030320224813.0df5a911.akpm@digeo.com> (raw)
In-Reply-To: <Pine.LNX.4.44.0303202310440.2743-100000@localhost.localdomain>

Hugh Dickins <hugh@veritas.com> wrote:
>
> First of a sequence of six patches, extending Dave McCracken's
> objrmap to handle anonymous memory too, eliminating pte_chains.
> 
> Based upon 2.5.65-mm2, the aggregate has
>  81 files changed, 1140 insertions(+), 1634 deletions(-)
> 
> anobjrmap 1/6 create include/linux/rmap.h
> anobjrmap 2/6 free page->mapping for use by anon
> anobjrmap 3/6 remove pte-pointer-based rmap
> anobjrmap 4/6 add anonmm to track anonymous pages
> anonjrmap 5/6 virtual address chains for odd cases
> anonjrmap 6/6 updates to arches other than i386
> 
> I've not done any timings, hope others can do that better than
> I would.  My guess is that Dave has already covered the worst
> cases, but this should cut the rmap overhead when forking.

Initial indications are that it offers no performance advantage over objrmap.

This needs a lot more work.  Timings were on a 2.7G P4-HT.  The workload is
applying and removing the 125 patches in 2.5.65-mm.  Tons of bash forking.

Note that on uniprocessor kernels we're almost equal to 2.4.  But on SMP, 2.5
is way slower.

The profiles are all over the place because the readprofile -M option (which
I use to boost the profiler interrupt rate by ten) isn't working on UP+APIC
2.5 kernels for some reason.

This all needs to be redone with oprofile, find out what on earth is going
on.


objrmap+Hugh's stuff
====================

UP:
pushpatch 999  3.90s user 4.33s system 99% cpu 8.271 total
poppatch 999  2.62s user 2.96s system 99% cpu 5.599 total

SMP:
pushpatch 9999  4.11s user 8.39s system 97% cpu 12.758 total
poppatch 9999  2.82s user 5.42s system 99% cpu 8.269 total

c011c438 copy_mm                                     694   0.6968
c01590a4 link_path_walk                              696   0.3141
c01f9b30 __copy_to_user_ll                           696   6.6923
c0114dec flush_tlb_page                              766   5.3194
c013dfa0 clear_page_tables                           792   2.3294
c013fc20 do_no_page                                  833   1.0735
c013d500 install_page                                987   2.2847
c0117c5c pte_alloc_one                              1056   7.5429
c0162510 d_lookup                                   1254   3.4076
c0108f88 system_call                                1292  29.3636
c013fa50 do_anonymous_page                          1294   2.7888
c0133e28 find_get_page                              2526  27.4565
c0144280 page_add_rmap                              2793   8.4127
c013b274 release_pages                              4032  10.6105
c0117db0 do_page_fault                              4546   3.9530
c013e534 zap_pte_range                              5153  10.0645
c01443cc page_dup_rmap                              6065  63.1771
c013e2ec copy_page_range                            6878  11.7774
c013f220 do_wp_page                                 8339  10.4761
c01445b0 page_remove_rmap                           9415  40.5819
c0106f94 default_idle                             131970 2537.8846
00000000 total                                    217986   0.1157

objrmap
=======

UP:
pushpatch 999  3.91s user 4.64s system 99% cpu 8.584 total
poppatch 999  2.66s user 3.09s system 99% cpu 5.772 total

SMP:
pushpatch 999  4.00s user 8.30s system 100% cpu 12.270 total
poppatch 9999  2.75s user 5.66s system 99% cpu 8.412 total

c011c404 copy_mm                                     718   0.7671
c013df50 clear_page_tables                           770   2.1875
c013ff38 do_no_page                                  805   1.0705
c0114dec flush_tlb_page                              808   5.6111
c013d450 install_page                               1035   1.9602
c0117c5c pte_alloc_one                              1150   8.2143
c0162a60 d_lookup                                   1180   3.2065
c0108f88 system_call                                1229  27.9318
c013fc9c do_anonymous_page                          1413   2.1153
c0133d6c find_get_page                              2415  25.1562
c013b1d4 release_pages                              4175  10.9868
c0117db0 do_page_fault                              4392   3.8191
c013e704 zap_pte_range                              5790  10.6434
c013e2cc copy_page_range                            6242   5.7796
c013f410 do_wp_page                                 8462   9.9319
c0144010 page_add_rmap                             11357  24.6891
c01441dc page_remove_rmap                          11581  18.5593
c0106f94 default_idle                             126736 2437.2308
00000000 total                                    218819   0.1160

100% pte_chains
===============

UP:
pushpatch 999  3.97s user 5.97s system 99% cpu 9.947 total
poppatch 999  2.74s user 3.95s system 99% cpu 6.719 total

c01da5bc radix_tree_lookup                            55   0.7237
c013c0d8 free_page_and_swap_cache                     57   0.6786
c0149614 link_path_walk                               59   0.0322
c01dbac8 __copy_from_user_ll                          64   0.5818
c01dba60 __copy_to_user_ll                            65   0.6250
c01334dc pte_alloc_map                                74   0.4111
c0134c20 do_no_page                                   74   0.1267
c01512ac d_lookup                                     93   0.3633
c0114f5c pte_alloc_one                                97   0.6929
c0134a4c do_anonymous_page                           105   0.2244
c0108b54 system_call                                 125   2.8409
c0133624 copy_page_range                             202   0.2644
c01150b0 do_page_fault                               409   0.3658
c0133920 zap_pte_range                               421   0.9656
c013836c page_add_rmap                               570   2.7404
c013431c do_wp_page                                  846   1.1371
c013843c page_remove_rmap                            850   2.7597
00000000 total                                      5952   0.0036

SMP:
pushpatch 9999  3.89s user 10.38s system 100% cpu 14.152 total
poppatch 999  2.83s user 6.20s system 99% cpu 9.045 total

c0138478 __set_page_dirty_buffers                    654   1.6188
c01f9560 __copy_to_user_ll                           676   6.5000
c01f95c8 __copy_from_user_ll                         727   6.6091
c011c404 copy_mm                                     809   0.8643
c013def0 clear_page_tables                           817   2.3210
c0114dec flush_tlb_page                              854   5.9306
c013fea8 do_no_page                                  909   1.2625
c013d420 install_page                               1068   2.2250
c0117c5c pte_alloc_one                              1070   7.6429
c0108f88 system_call                                1230  27.9545
c013fc20 do_anonymous_page                          1316   2.0309
c0161f40 d_lookup                                   1355   3.6821
c0133d6c find_get_page                              2543  26.4896
c013b1a4 release_pages                              4227  11.1237
c0117db0 do_page_fault                              4550   3.9565
c013e6a4 zap_pte_range                              6399  11.7629
c013e26c copy_page_range                            7228   6.6926
c013f3b0 do_wp_page                                 9082  10.7607
c0143d90 page_add_rmap                             13941  41.9910
c0143edc page_remove_rmap                          18275  36.8448
c0106f94 default_idle                             137863 2651.2115
00000000 total                                    242308   0.1287

2.4.21-pre5
===========

UP:
pushpatch 9999  3.98s user 3.66s system 99% cpu 7.656 total
poppatch 9999  2.52s user 2.59s system 99% cpu 5.136 total
SMP:
pushpatch 9999  4.34s user 6.10s system 122% cpu 8.522 total
poppatch 999  2.93s user 3.90s system 118% cpu 5.761 total

c0258e70 atomic_dec_and_lock                          53   0.7067
c0129b90 unlock_page                                  63   0.5833
c0116afc copy_mm                                      71   0.0970
c01275ac handle_mm_fault                              73   0.3967
c0129cd8 __find_get_page                              77   1.1324
c011b2ec exit_notify                                  90   0.1257
c0127410 do_no_page                                   91   0.2209
c0131554 rmqueue                                      92   0.1586
c014aa94 d_lookup                                     93   0.3185
c0127324 do_anonymous_page                           100   0.4237
c0111b08 flush_tlb_page                              117   0.9750
c0106f60 system_call                                 136   2.4286
c0131b8c __free_pages                                240   6.6667
c0126080 copy_page_range                             257   0.5949
c0126230 zap_page_range                              278   0.3341
c0113ec8 do_page_fault                               954   0.7762
c0126de0 do_wp_page                                  972   1.8692
c01052c0 default_idle                               6414 114.5357
00000000 total                                     12240   0.0088



--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>

  parent reply	other threads:[~2003-03-21  6:48 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-03-20 23:12 Hugh Dickins
2003-03-20 23:14 ` [PATCH] anobjrmap 2/6 mapping Hugh Dickins
2003-03-21  6:48   ` Andrew Morton
2003-03-24 19:38     ` Stephen C. Tweedie
2003-03-24 22:12       ` Andrew Morton
2003-03-20 23:15 ` [PATCH] anobjrmap 3/6 unchained Hugh Dickins
2003-03-20 23:20   ` William Lee Irwin III
2003-03-20 23:15 ` [PATCH] anobjrmap 4/6 anonmm Hugh Dickins
2003-03-20 23:16 ` [PATCH] anobjrmap 5/6 rechained Hugh Dickins
2003-03-20 23:17 ` [PATCH] anobjrmap 6/6 arches Hugh Dickins
2003-03-21  6:48 ` Andrew Morton [this message]
2003-03-21  7:07   ` [PATCH] anobjrmap 1/6 rmap.h William Lee Irwin III
2003-03-21  7:15     ` William Lee Irwin III

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=20030320224813.0df5a911.akpm@digeo.com \
    --to=akpm@digeo.com \
    --cc=hugh@veritas.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox