summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
author Lokesh Gidra <lokeshgidra@google.com> 2023-07-09 11:26:32 +0000
committer Lokesh Gidra <lokeshgidra@google.com> 2023-07-12 06:34:15 +0000
commit1702d6ab4a48ce093e40d123f8045e299168917f (patch)
tree6f2d632405f8a0428c0e369f6abdabf9c9e8c3da /compiler
parent33aba2c05aec7065fab5e863ad9708de20c3b57c (diff)
Scan dirty cards separate from aging them
Currently we scan objects corresponding to dirty cards while atomically aging them. This could lead to following situation: Mutator GC-thread ------- --------- 1) dirty card a) age card b) scan ref 2) store reference Although the write-barrier first stores the reference and then dirties the corresponding card. However, it may reorder and lead to the above situation. This CL separates aging the cards and scanning them for dirty objects. These two steps are done such that the mutator stack-scanning checkpoint is between the two operations, ensuring that any in-progress write barrier when cards were aged is finished before scanning the cards. Bug: 288315519 Test: atest --rerun-until-failure 100 art-run-test-658-fp-read-barrier Change-Id: Ia6f1c01905ba950047be528e3905809fe7a62df9
Diffstat (limited to 'compiler')
0 files changed, 0 insertions, 0 deletions