-
Enhancement
-
Resolution: Duplicate
-
P3
-
hs23
-
generic
-
generic
Currently, the G1 GC code is robust wrt to a reference field being scanned twice. The main reason this was done was to deal with cards being scanned twice (given that currently a GC worker that scans a card does not claim it atomically). See also "7114095: G1: assert(obj == oopDesc::load_decode_heap_oop(p)) failed: p should still be pointing to obj" for an additional scenario.
The downside of the above approach is that we need two "is in CSet" checks for every ref field we push on / pop from the "to do" taskqueue. If we guarantee that each ref field is scanned once we can avoid the second check which might speed up GCs (a bit) and will also simplify the GC code.
The downside of the above approach is that we need two "is in CSet" checks for every ref field we push on / pop from the "to do" taskqueue. If we guarantee that each ref field is scanned once we can avoid the second check which might speed up GCs (a bit) and will also simplify the GC code.
- duplicates
-
JDK-8270924 G1: Investigate to avoid scanning an object in card table for multiple times
-
- Open
-
- relates to
-
JDK-7114095 G1: assert(obj == oopDesc::load_decode_heap_oop(p)) failed: p should still be pointing to obj
-
- Closed
-