summaryrefslogtreecommitdiff
path: root/compiler/optimizing/loop_optimization.h
diff options
context:
space:
mode:
author Hans Boehm <hboehm@google.com> 2021-09-23 12:26:04 -0700
committer Hans Boehm <hboehm@google.com> 2021-10-27 20:05:43 +0000
commit4dcac3629ea5925e47b522073f3c49420e998911 (patch)
tree51219b64e869c15149a7397c8ab1eac2dc4e3cd4 /compiler/optimizing/loop_optimization.h
parent48fb9f43a81fa0cab09ed4a4f3d478c1a0ecbe9e (diff)
Initially allocate smaller local IRT
Introduce a separate small object allocator to allocate tables for the initial local indirect reference tables, so they don't each occupy a full page. This seemed to be easier than using linear_alloc, since these allocations are done from multiple threads. This also has the advantage that GC roots are concentrated on separate pages, that could be protected as before, but there are many fewer of then than before. As discussed with Lokesh, it might eventually be better to allocate these in the Java heap. But doing that cleanly seems to require a major refactoring to split IrtEntrys into two separate components, which complicates iteration, etc. And that has locality disadvantages during lookup. Or we need to either drop the serial number of merge it into the GcRoot, neither of which is ideal either. Drive-by-fix: When trimming, don't call madvise on empty address ranges. Test: Build and boot AOSP. Test: art/test/testrunner/testrunner.py --host -b --64 Bug: 184847225 Change-Id: I297646acbdd9dbeab4af47461849fffa2fee23b1
Diffstat (limited to 'compiler/optimizing/loop_optimization.h')
0 files changed, 0 insertions, 0 deletions