Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8082912 | emb-9 | Stefan Karlsson | P2 | Resolved | Fixed | team |
Today, the root processing code differentiates between two types of single-threaded executions:
1) n_par_threads() == 0, used from Serial GC and other code paths that executes the root processing from the VM Thread.
2) n_par_threads() == 1, used from non-Serial GCs when the root_processing is executed by one GC worker thread.
Today, the only code difference is that the latter will use cmpxchg to claim the threads in Threads::possibly_parallel_oops_do.
I propose that we use the same code for both values of n_par_threads(), and only use the cmpxchg version if we are running with more than one worker thread.
This change will enable further cleanups and unification of the code for other sub-tasks ofJDK-8080106.
1) n_par_threads() == 0, used from Serial GC and other code paths that executes the root processing from the VM Thread.
2) n_par_threads() == 1, used from non-Serial GCs when the root_processing is executed by one GC worker thread.
Today, the only code difference is that the latter will use cmpxchg to claim the threads in Threads::possibly_parallel_oops_do.
I propose that we use the same code for both values of n_par_threads(), and only use the cmpxchg version if we are running with more than one worker thread.
This change will enable further cleanups and unification of the code for other sub-tasks of
- backported by
-
JDK-8082912 Use single-threaded code in Threads::possibly_parallel_oops_do when running with only one worker thread
-
- Resolved
-