Integrated: 8231672: Simplify the reference processing parallelization framework
Leo Korinth
lkorinth at openjdk.java.net
Wed May 19 09:42:49 UTC 2021
On Mon, 1 Mar 2021 16:14:18 GMT, Leo Korinth <lkorinth at openjdk.org> wrote:
> With the change of parallel gc to use the same workgang implementation that other gcs uses, it is possible to remove the abstraction used to hide different worker thread management implementations (TaskExecutor).
>
> At the same time as removing the TaskExecutor, also remove part of the special casing (mostly code duplication), for single threaded execution.
>
> I consider the new method `prepare_run_task` that modifies the state of the context a step backwards from what was. However, I think removing the Executor with its proxy-tasks and removing separate code paths for serial execution makes the change worth this step back. We also removes ~270 lines of code.
>
> Some comments:
> 1) I use references in some places where they can replace pointers. I could go much further here, but I did not want to bloat the pull request, maybe later change all closures to be references as well? Should I create enhancements for this?
>
> 2) I added an enum class ThreadModel instead of using a boolean, this could also be used in many more places. I dislike sending lots of bools with a comment like `true /* _is_mt */`. It also adds type safety if a method takes many bools. However, with this limited change, and not many hard-coded bools, it feels a bit overkill and I am willing to remove the enum, what do you think?
>
> Testing:
> hotspot_gc and tier 1-3 has passed earlier versions before minor cleanups. I intend to re-run tests after review changes.
This pull request has now been integrated.
Changeset: 6ef46ce3
Author: Leo Korinth <lkorinth at openjdk.org>
URL: https://git.openjdk.java.net/jdk/commit/6ef46ce3862dd8d7b121f0cc039cd3534b1bfdc2
Stats: 893 lines in 20 files changed: 166 ins; 510 del; 217 mod
8231672: Simplify the reference processing parallelization framework
Reviewed-by: tschatzl, ayang
-------------
PR: https://git.openjdk.java.net/jdk/pull/2782
More information about the hotspot-gc-dev
mailing list