A couple of questions for G1 developers
Andrew Haley
aph at redhat.com
Mon Jun 3 10:42:42 UTC 2019
I'm debugging a crash that may have nothing to do with G1. However:
1. What is the structure of the G1BlockOffsetTable? It looks like an
offset (in HeapWords?) for each chunk, from the start of the chunk
to the start of the object which begins that chunk. So, if an
object straddles a chunk binary, the offset is subtracted from the
start of the chunk to give an oop.
2. Why does G1BlockOffsetTablePart::forward_to_block_containing_addr
need an acquiring load on
if (oop(q)->klass_or_null_acquire() == NULL) {
return q;
I guess it must be because of a race, but what is it racing with?
Thanks.
--
Andrew Haley
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
https://keybase.io/andrewhaley
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671
More information about the hotspot-gc-dev
mailing list