RFR (M): 8247819: G1: Process strong OopStorage entries in parallel

Stefan Karlsson stefan.karlsson at oracle.com
Thu Jun 25 10:37:34 UTC 2020

Hi Thomas,

This isn't needed after we rewrote the OopStorageSetParState:

+// Needed by _oop_storage_set_strong_par_state as the definition is in the
+// .inline.hpp file.
+G1RootProcessor::~G1RootProcessor() {} --- This doesn't seem to be 
used: + + template <typename Closure> + static void 
strong_oops_do(Closure* cl); }; --- Just a suggestion to lower the 
noise: + G1GCPhaseTimes::GCParPhases phase = 
G1GCPhaseTimes::GCParPhases(G1GCPhaseTimes::StrongOopStorageSetRoots + 
i); could be changed to: + G1GCPhaseTimes::GCParPhases 
phase(G1GCPhaseTimes::StrongOopStorageSetRoots + i);


On 2020-06-25 11:56, Thomas Schatzl wrote:
> Hi all,
>   can I have reviews for this follow-up change to JDK-8248132, adding 
> parallel OopStorage strong root processing for G1?
> The main difference to other collectors is that G1 has some 
> per-OopStorage timing, so a slightly different approach in iterating 
> over the OopStorages has been taken. Also, this messes up 
> G1GCPhaseTimes a bit (more), but I see fixing that, as it has been a 
> mess before, a separate CR.
> Also since the internal names of OopStorage (e.g. "VM global") are now 
> used in some log messages, I upper-cased them (ie. "VM Global") to 
> match other, existing log messages.
> This work is based on a POC from Erik Österlund, crediting him for that.
> CR:
> https://bugs.openjdk.java.net/browse/JDK-8247819
> Webrev:
> http://cr.openjdk.java.net/~tschatzl/8247819/webrev/
> Testing:
> tier1-5
> Thanks,
>   Thomas

More information about the hotspot-gc-dev mailing list