RFR: Reinstate single-threaded reference processing
Roman Kennke
rkennke at redhat.com
Tue Oct 16 14:44:32 UTC 2018
Back in August I proposed to get rid of the single-threaded
reference-processing path because the oom-scope in VMThread would
deadlock with the oom-scope in workers. I discussed the required RP
changes upstream:
http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2018-October/023516.html
And it has been pointed out that this is only a half-solution and may
show bad behaviour because RP would attempt to balance queues for
1-threaded execution which is not needed.
The problem only exists in traversal (conc-mark does not evac). We can
work around it differently by moving the oom-scope into the KeepAlive
and Drain closures:
http://cr.openjdk.java.net/~rkennke/redo-1thread-refproc/webrev.00/
This reverts the remaining upstream change in RP. It may pose a slight
performance issue in 1-threaded keep-alive-closure, but it appears that
if there were lots of work to do there, it would not go 1-threaded to
begin with.
Testing: tier3_gc_shenandoah
Ok?
Roman
More information about the shenandoah-dev
mailing list