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

local testing running remembered set summarization manually, jprt


More information about the hotspot-gc-dev mailing list