Page MenuHomeFreeBSD

subr_pctrie: straightline climbing
Needs ReviewPublic

Authored by dougm on Nov 20 2024, 4:57 AM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Dec 10, 4:23 AM
Unknown Object (File)
Thu, Dec 5, 8:03 PM
Unknown Object (File)
Thu, Dec 5, 4:36 AM
Unknown Object (File)
Fri, Nov 29, 9:17 PM
Unknown Object (File)
Fri, Nov 29, 4:57 PM
Unknown Object (File)
Fri, Nov 29, 2:08 PM
Unknown Object (File)
Nov 25 2024, 7:10 AM
Unknown Object (File)
Nov 24 2024, 10:20 AM
Subscribers
None

Details

Reviewers
alc
Summary

Add code so that the most common cases of climbing the iterator path, which don't climb at all, can be expressed in straightline code.

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

dougm requested review of this revision.Nov 20 2024, 4:57 AM
dougm created this revision.

Apply suggestions from feedback on D46724 to improve performance.

sys/vm/vm_page.c
1719

Split off this change. It measurably improves _kmem_unback() and vm_object_page_remove(). Be consistent. Other vm_page_iter functions have the iterator as the first argument.

dougm marked an inline comment as done.

Drop the vm_page_iter_free() parts committed elsewhere.

The timing results for 8-10 buildworlds, with and without this patch. Without:

57024.168u 1419.042s 1:03:49.95 1525.9% 79515+3176k 169306+34851io 126689pf+0w
57039.703u 1442.503s 1:03:49.49 1527.1% 79504+3175k 153034+33347io 107099pf+0w
57041.569u 1463.610s 1:03:55.62 1525.3% 79489+3176k 130076+34662io 105836pf+0w
57030.743u 1495.205s 1:03:54.53 1526.2% 79446+3175k 125633+33894io 105239pf+0w
57016.482u 1500.173s 1:03:53.79 1526.3% 79455+3175k 110310+34351io 104128pf+0w
57040.873u 1542.961s 1:03:52.14 1528.7% 79416+3173k 107332+34692io 103646pf+0w
57021.394u 1543.953s 1:03:55.56 1526.9% 79405+3173k 107087+34399io 103698pf+0w
57109.092u 1552.643s 1:04:01.27 1527.1% 79391+3175k 107063+34640io 103655pf+0w

With:

56952.301u 1415.111s 1:03:46.03 1525.5% 79524+3177k 168865+34681io 126696pf+0w
57053.860u 1459.616s 1:03:53.13 1526.5% 79482+3176k 107357+34862io 103619pf+0w
57016.362u 1495.152s 1:03:47.60 1528.6% 79453+3175k 107376+34101io 103653pf+0w
56975.541u 1496.806s 1:03:48.10 1527.4% 79461+3174k 107043+34267io 103669pf+0w
57117.010u 1553.774s 1:04:01.13 1527.4% 79400+3174k 107122+33958io 103620pf+0w
56995.638u 1557.533s 1:03:47.42 1529.8% 79386+3174k 107086+34102io 103608pf+0w
56986.002u 1553.172s 1:03:53.80 1526.9% 79398+3173k 107490+34045io 103665pf+0w
57069.189u 1549.260s 1:04:00.89 1526.1% 79402+3174k 107217+33986io 103660pf+0w
56998.231u 1548.065s 1:03:57.70 1525.5% 79404+3173k 107125+34297io 103682pf+0w
56979.664u 1549.411s 1:03:55.42 1526.0% 79409+3173k 107016+34173io 103619pf+0w