diff options
author | 2023-07-09 11:26:32 +0000 | |
---|---|---|
committer | 2023-07-12 06:34:15 +0000 | |
commit | 1702d6ab4a48ce093e40d123f8045e299168917f (patch) | |
tree | 6f2d632405f8a0428c0e369f6abdabf9c9e8c3da /compiler/optimizing/graph_visualizer.cc | |
parent | 33aba2c05aec7065fab5e863ad9708de20c3b57c (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/optimizing/graph_visualizer.cc')
0 files changed, 0 insertions, 0 deletions