RFR: 8080106: Refactor setup of parallel GC threads
Jon Masamitsu
jon.masamitsu at oracle.com
Fri May 15 14:51:20 UTC 2015
On 5/13/2015 6:17 AM, Stefan Karlsson wrote:
> Hi all,
>
> Please review these patches to unify the ways we specify the number of
> used worker threads. The main goal for these patches is to get rid of
> CollectedHeap::set_par_threads() and CollectedHeap::n_par_threads().
>
> The RFE has been split into multiple sub-tasks:
> 8080109: Use single-threaded code in
> Threads::possibly_parallel_oops_do when running with only one worker
> thread
> 8080110: Remove usage of CollectedHeap::n_par_threads() from root
> processing
> 8080111: Remove SubTaskDone::_n_threads
> 8080112: Replace and remove the last usages of
> CollectedHeap::n_par_threads()
> 8080113: Remove CollectedHeap::set_par_threads()
>
> See the description below for each individual patch:
>
> ---
> [...]
> ---
> http://cr.openjdk.java.net/~stefank/8080111/webrev.00
> 8080111: Remove SubTaskDone::_n_threads
>
> Remove the need to keep track of the number of worker threads
> currently executing in the sub-tasks of the root processing. Instead
> use the information that is already stored in StrongRootsScope.
Looks good.
You did remove set_num_workers().
>
> ---
> http://cr.openjdk.java.net/~stefank/8080112/webrev.00
> 8080112: Replace and remove the last usages of
> CollectedHeap::n_par_threads()
>
> Replace and remove the last usages of CollectedHeap::n_par_threads().
>
> The number of used threads are passed down as arguments to the
> functions that need to know how many threads are currently executing
> in parallel.
http://cr.openjdk.java.net/~stefank/8080112/webrev.00/src/share/vm/memory/cardTableModRefBS.cpp.udiff.html
Maybe worth adding a comment about the "false" being passed in?
+ DirtyCardToOopClosure* dcto_cl = sp->new_dcto_cl(cl, precision(), cl->gen_boundary(), false);
new_dcto_cl(cl, precision(), cl->gen_boundary(), false /* parallel */)
+ ClearNoncleanCardWrapper clear_cl(dcto_cl, ct, false);
clear_cl(dcto_cl, ct, false /* parallel */)
Otherwise, looks good.
>
> ---
> http://cr.openjdk.java.net/~stefank/8080113/webrev.00
> 8080113: Remove CollectedHeap::set_par_threads()
>
> Remove all the calls to the set_par_threads() functions.
This one is the best.
Looks good.
Jon
> ---
>
> The combined webrev can be found at:
> http://cr.openjdk.java.net/~stefank/8080106/webrev.00/
>
> Tested with JPRT and gc-test-suite
>
> Thanks,
> StefanK
More information about the hotspot-gc-dev
mailing list