From: Andrew Morton <akpm@digeo.com>
To: Dave McCracken <dmccr@us.ibm.com>, linux-mm@kvack.org
Subject: shared pagetable benchmarking
Date: Fri, 20 Dec 2002 03:11:09 -0800 [thread overview]
Message-ID: <3E02FACD.5B300794@digeo.com> (raw)
Did a bit of timing and profiling. It's a uniprocessor
kernel, 7G, PAE.
The workload is application and removal of ~80 patches using
my patch scripts. Tons and tons of forks from bash.
2.5 ends up being 13% slower than 2.4, after disabling highpte
to make it fair. 3%-odd of this is HZ=1000. So say 10%.
Pagetable sharing actually slowed this test down by several
percent overall. Which is unfortunate, because the main
thing which Linus likes about shared pagetables is that it
"speeds up forks".
Is there anything we can do to fix all of this up a bit?
2.4.21-pre2:
c0106d60 system_call 10 0.1786
c012ca00 __free_pages_ok 10 0.0124
c0114c38 mm_init 13 0.0396
c0124a84 find_vma 13 0.1548
c01283ac generic_file_write 13 0.0073
c012cd24 rmqueue 14 0.0201
c0122570 __free_pte 16 0.1667
c0123df0 handle_mm_fault 16 0.0625
c0123aac do_anonymous_page 25 0.0801
c0126c3c file_read_actor 33 0.1684
c0123be4 do_no_page 37 0.0706
c01226d0 copy_page_range 47 0.0810
c0112878 do_page_fault 49 0.0352
c01225e8 clear_page_tables 70 0.3017
c0122914 zap_page_range 72 0.1118
c01234b0 do_wp_page 275 0.3736
00000000 total 1062 0.0008
created /tmp/prof.time
akpm-prof pushpatch 99 11.83s user 10.56s system 99% cpu 22.439 total
c01283ac generic_file_write 9 0.0050
c012d8b4 free_page_and_swap_cache 9 0.1500
c012625c __find_get_page 10 0.2083
c0118cdc exit_notify 11 0.0174
c012ca00 __free_pages_ok 11 0.0137
c013c030 link_path_walk 16 0.0077
c012cd24 rmqueue 18 0.0259
c0123aac do_anonymous_page 20 0.0641
c0126c3c file_read_actor 25 0.1276
c01226d0 copy_page_range 27 0.0466
c0123be4 do_no_page 29 0.0553
c01225e8 clear_page_tables 32 0.1379
c01052b0 poll_idle 33 0.8250
c0122914 zap_page_range 42 0.0652
c0112878 do_page_fault 50 0.0359
c01234b0 do_wp_page 161 0.2188
00000000 total 791 0.0006
created /tmp/prof.time
akpm-prof poppatch 99 8.60s user 7.57s system 97% cpu 16.530 total
2.5.52-mm3:
c012b998 free_hot_cold_page 94 0.4896
c0117348 do_schedule 103 0.1717
c012ba7c buffered_rmqueue 110 0.5729
c01c1b4c strnlen_user 116 1.3810
c012e36c kmem_cache_alloc 120 1.8750
c0134454 find_vma 133 1.5114
c010a558 system_call 134 3.0455
c01504ac d_lookup 143 0.6164
c0148af4 link_path_walk 153 0.0915
c0116b88 kmap_atomic_to_page 175 1.9886
c0133060 handle_mm_fault 195 0.6414
c01c1d48 __copy_from_user 212 1.8929
c011598c pte_alloc_one 213 1.6641
c0132c74 do_anonymous_page 260 0.6311
c011cab0 do_softirq 300 1.7045
c01c1ce0 __copy_to_user 369 3.5481
c0132e10 do_no_page 529 0.8936
c013c9e4 pte_unshare 572 0.5789
c0116b04 kmap_atomic 585 5.2232
c0131b44 zap_pte_range 585 1.4199
c0115bc0 do_page_fault 600 0.4808
c0136428 page_add_rmap 766 2.1517
c0131890 clear_page_tables 860 2.6220
c013658c page_remove_rmap 928 1.9333
c013250c do_wp_page 2594 3.3601
00000000 total 15261 0.0097
created /tmp/prof.time
akpm-prof pushpatch 99 12.36s user 14.61s system 97% cpu 27.768 total
c0117348 do_schedule 77 0.1283
c010a558 system_call 85 1.9318
c0134454 find_vma 90 1.0227
c01504ac d_lookup 106 0.4569
c0116b88 kmap_atomic_to_page 107 1.2159
c0133060 handle_mm_fault 113 0.3717
c011598c pte_alloc_one 135 1.0547
c0148af4 link_path_walk 135 0.0807
c01c1d48 __copy_from_user 162 1.4464
c0132c74 do_anonymous_page 218 0.5291
c01c1ce0 __copy_to_user 297 2.8558
c011cab0 do_softirq 319 1.8125
c0132e10 do_no_page 325 0.5490
c0131b44 zap_pte_range 362 0.8786
c013c9e4 pte_unshare 375 0.3796
c0116b04 kmap_atomic 384 3.4286
c0115bc0 do_page_fault 447 0.3582
c0136428 page_add_rmap 505 1.4185
c0131890 clear_page_tables 563 1.7165
c013658c page_remove_rmap 585 1.2188
c013250c do_wp_page 1559 2.0194
00000000 total 10586 0.0067
created /tmp/prof.time
akpm-prof poppatch 99 9.00s user 10.31s system 96% cpu 19.926 total
OK, remove shpte:
=================
c0134344 find_vma 110 1.2500
c01c07fc strnlen_user 112 1.3333
c0118c94 copy_process 113 0.0456
c012b77c buffered_rmqueue 120 0.6250
c014f0a0 __d_lookup 133 0.6520
c010a558 system_call 145 3.2955
c01474e0 link_path_walk 162 0.0769
c0116b28 kmap_atomic_to_page 165 1.8750
c0132f00 handle_mm_fault 166 0.5461
c012e02c kmem_cache_alloc 185 2.8906
c012e0d8 kmem_cache_free 188 2.9375
c0115a0c pgd_alloc 193 0.9650
c01c09f8 __copy_from_user 196 1.7500
c011598c pte_alloc_one 216 1.6875
c0132b24 do_anonymous_page 249 0.6163
c011c880 do_softirq 293 1.6648
c01c0990 __copy_to_user 418 4.0192
c0132cb8 do_no_page 446 0.7637
c01317b4 copy_page_range 496 0.7425
c0116aa4 kmap_atomic 591 5.2768
c0115b60 do_page_fault 594 0.4760
c0131a50 zap_pte_range 609 1.2378
c0136314 page_add_rmap 632 1.7556
c01314f0 clear_page_tables 688 2.2051
c013647c page_remove_rmap 817 1.7021
c01323d4 do_wp_page 2600 3.4759
00000000 total 14713 0.0094
created /tmp/prof.time
akpm-prof pushpatch 99 12.29s user 14.40s system 99% cpu 26.913 total
c014f0a0 __d_lookup 91 0.4461
c010a558 system_call 93 2.1136
c0132f00 handle_mm_fault 111 0.3651
c012e02c kmem_cache_alloc 113 1.7656
c01474e0 link_path_walk 118 0.0560
c011598c pte_alloc_one 129 1.0078
c0116b28 kmap_atomic_to_page 129 1.4659
c012e0d8 kmem_cache_free 140 2.1875
c01c09f8 __copy_from_user 160 1.4286
c0115a0c pgd_alloc 170 0.8500
c0132b24 do_anonymous_page 184 0.4554
c011c880 do_softirq 297 1.6875
c01317b4 copy_page_range 309 0.4626
c01c0990 __copy_to_user 318 3.0577
c0132cb8 do_no_page 335 0.5736
c0131a50 zap_pte_range 364 0.7398
c01314f0 clear_page_tables 393 1.2596
c0115b60 do_page_fault 441 0.3534
c0136314 page_add_rmap 441 1.2250
c0116aa4 kmap_atomic 448 4.0000
c013647c page_remove_rmap 550 1.1458
c01323d4 do_wp_page 1593 2.1297
00000000 total 10335 0.0066
created /tmp/prof.time
akpm-prof poppatch 99 9.07s user 10.03s system 99% cpu 19.290 total
Also remove highpte
===================
c01c037c strnlen_user 108 1.2857
c010a558 system_call 111 2.5227
c012b79c buffered_rmqueue 113 0.5885
c0134144 find_vma 117 1.3295
c01171e4 do_schedule 118 0.1954
c0132d20 handle_mm_fault 132 0.4583
c014ebf0 __d_lookup 142 0.6961
c0131010 page_address 147 1.0500
c0116ae4 kmap_atomic 163 1.4554
c0147030 link_path_walk 186 0.0882
c01c0578 __copy_from_user 203 1.8125
c011597c pte_alloc_one 224 1.5556
c0115a0c pgd_alloc 231 1.1550
c0132990 do_anonymous_page 260 0.7065
c011c8d0 do_softirq 283 1.6080
c01c0510 __copy_to_user 380 3.6538
c0132b00 do_no_page 401 0.7371
c01316fc copy_page_range 451 0.7723
c0131944 zap_pte_range 588 1.1575
c013602c page_add_rmap 601 2.5042
c0115b60 do_page_fault 607 0.4716
c0131440 clear_page_tables 637 2.1233
c013611c page_remove_rmap 657 2.0030
c01322b4 do_wp_page 2530 3.6988
00000000 total 13554 0.0087
created /tmp/prof.time
akpm-prof pushpatch 99 11.97s user 13.36s system 99% cpu 25.541 total
c0132d20 handle_mm_fault 100 0.3472
c0147030 link_path_walk 106 0.0503
c0116ae4 kmap_atomic 109 0.9732
c0115a0c pgd_alloc 140 0.7000
c011597c pte_alloc_one 151 1.0486
c01c0578 __copy_from_user 162 1.4464
c0132990 do_anonymous_page 204 0.5543
c011c8d0 do_softirq 305 1.7330
c01c0510 __copy_to_user 308 2.9615
c0132b00 do_no_page 310 0.5699
c01316fc copy_page_range 314 0.5377
c013602c page_add_rmap 361 1.5042
c0131944 zap_pte_range 379 0.7461
c0115b60 do_page_fault 409 0.3178
c013611c page_remove_rmap 430 1.3110
c0131440 clear_page_tables 443 1.4767
c01322b4 do_wp_page 1662 2.4298
00000000 total 9706 0.0062
created /tmp/prof.time
akpm-prof poppatch 99 8.86s user 9.33s system 98% cpu 18.433 total
--
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/
next reply other threads:[~2002-12-20 11:11 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-12-20 11:11 Andrew Morton [this message]
2002-12-20 11:13 ` William Lee Irwin III
2002-12-20 16:30 ` Dave McCracken
2002-12-20 19:59 ` Andrew Morton
2002-12-23 16:15 ` Dave McCracken
2002-12-23 23:54 ` Andrew Morton
2002-12-27 9:39 ` Daniel Phillips
2002-12-27 9:58 ` Andrew Morton
2002-12-27 15:59 ` Daniel Phillips
2002-12-27 20:02 ` Linus Torvalds
2002-12-27 20:16 ` Dave McCracken
2002-12-27 20:18 ` Linus Torvalds
2002-12-27 20:45 ` Dave McCracken
2002-12-27 20:50 ` Linus Torvalds
2002-12-27 23:56 ` Daniel Phillips
2002-12-28 0:45 ` Martin J. Bligh
2002-12-28 2:34 ` Andrew Morton
2002-12-28 3:10 ` Linus Torvalds
2002-12-28 6:58 ` Andrew Morton
2002-12-28 7:39 ` Ingo Molnar
2002-12-28 7:47 ` Linus Torvalds
2002-12-28 23:28 ` Andrew Morton
2002-12-28 3:19 ` Martin J. Bligh
2002-12-23 18:19 ` Dave McCracken
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=3E02FACD.5B300794@digeo.com \
--to=akpm@digeo.com \
--cc=dmccr@us.ibm.com \
--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