RFR: 8247820: ParallelGC: Process strong OopStorage entries in parallel
Stefan Karlsson
stefan.karlsson at oracle.com
Tue Jun 23 10:29:28 UTC 2020
On 2020-06-23 12:23, Kim Barrett wrote:
>> On Jun 23, 2020, at 4:23 AM, Stefan Karlsson <stefan.karlsson at oracle.com> wrote:
>>
>> Hi all,
>>
>> Please review this patch to both unify handling of all OopStorage instances and parallelize it in the root processing of the Parallel GC.
>>
>> https://cr.openjdk.java.net/~stefank/8247820/webrev.01/
>> https://bugs.openjdk.java.net/browse/JDK-8247820
>>
>> This removes the explicit enumeration of "strong" OopStorages in the Parallel GC. This is a step towards allowing the Runtime code to add new OopStorages without having to update all GCs.
>>
>> It also parallelizes the processing of the OopStorages, using the class that's being introduced in:
>> https://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2020-June/030152.html
>>
>> Tested with tier1-3
>>
>> Thanks,
>> StefanK
>
> ------------------------------------------------------------------------------
> src/hotspot/share/gc/parallel/psScavenge.cpp
> 367 // Scavenge OopStorages
> ...
> 376 PSThreadRootsTaskClosure closure(worker_id);
> 377 Threads::possibly_parallel_threads_do(true /*parallel */, &closure);
>
> I think it's better to do these in the other order. Processing the
> OopStorages is very parallel, with relatively small work chunks.
> Thread processing could encounter a large thread late in the process,
> leaving the one thread processing it as the long pole, with other
> threads possibly not having much to do, other than (relatively
> expensive) stealing.
>
> Similarly for psParallelCompact.
>
> ------------------------------------------------------------------------------
>
> Other than that one comment, looks good.
Updated webrev:
https://cr.openjdk.java.net/~stefank/8247820/webrev.02.delta/
https://cr.openjdk.java.net/~stefank/8247820/webrev.02/
>
> Gosh, I thought that was going to be much harder. I'm guessing Leo's
> conversion of ParallelGC to use workgangs simplified things some.
:)
Thanks for reviewing,
StefanK
>
>
More information about the hotspot-gc-dev
mailing list