RFR (S): 8183226: Remembered set summarization accesses not fully initialized java thread DCQS

Thomas Schatzl thomas.schatzl at oracle.com
Mon Jul 3 12:12:50 UTC 2017


Hi all,

  can I get reviews for the following change that breaks some
dependency cycle in g1remset initialization to fix some (at this time
benign) bug when printing remembered set summarization information?

The problem is that G1Remset initializes its internal remembered set
summarization helper data structure in the constructor, which accesses
some DCQS members before we call the initialize methods on the various
global DCQS'es in G1CollectedHeap::initialize().
By splitting the initialization of the remembered set summarization
into an extra method, this one can be called at the very end of
G1CollectedHeap::initialize(), thus breaking the dependency.

Benign because the values accessed at that time have the same values as
the values after initialization.

This also allows for grouping together the initialization of
G1RemSet/DCQS/G1ConcurrentRefine related data structures more easily in
G1CollectedHeap::initialize().

CR:
https://bugs.openjdk.java.net/browse/JDK-8183226
Webrev:
http://cr.openjdk.java.net/~tschatzl/8183226/webrev/
Testing:
local testing running remembered set summarization manually, jprt

Thanks,
  Thomas




More information about the hotspot-gc-dev mailing list