summaryrefslogtreecommitdiff
path: root/tests/stdio_test.cpp
diff options
context:
space:
mode:
authorRyan Prichard <rprichard@google.com>2020-10-09 05:08:36 -0700
committerhangl <hangl@codeaurora.org>2021-03-03 18:21:29 +0800
commit2a9f47a679b36a537594509897e4263b57ff1942 (patch)
treef5615c5d52df6d0bbb29ad07b4659c6c6e004af6 /tests/stdio_test.cpp
parentd8308a71eac004e4710a8c874673d813d01f49e2 (diff)
Fix __cxa_atexit run-time regression with many registrations
When an array element is added or removed, make only the relevant page writable, rather than the entire array. The entire array is still made writable during recompaction and expansion. This change fixes most of a large regression in __cxa_atexit runtime (blueline, taskset 10, performance governor, 100000 registrations, times are in seconds) - Q: _Exit=0.292380, exit=0.626801 - R: _Exit=28.435082, exit=95.785110 - new: _Exit=0.352285, exit=0.713893 Test: bionic unit tests Test: adb shell taskset 10 \ /data/benchmarktest64/bionic-spawn-benchmarks/bionic-spawn-benchmarks \ --benchmark_filter='atexit' \ --benchmark_display_aggregates_only=true \ --benchmark_repetitions=10 Bug: http://b/168043760 CRs-Fixed: 2858874 (cherry picked from commit de523c02bbea1923ee5fbe9d1d60a905f6e965b0) Change-Id: I88cc15c29c9890b422b7f621f29f98a03ca1f886
Diffstat (limited to 'tests/stdio_test.cpp')
0 files changed, 0 insertions, 0 deletions