RFR: Fix and enable parallel safepoint workers
Roman Kennke
rkennke at redhat.com
Fri Sep 14 13:17:51 UTC 2018
We do have an implementation of SH::get_safepoint_workers() but it is
broken:
- the workers don't get their thread local data setup correctly, which
is needed for evacs (e.g. via oopDesc::cas_set_mark(..) )
- the workers must not identify themselves as GC workers, otherwise
OOM-evac protocol assumes that WBs are not needed. I implemented this by
narrowing the condition in write-barrier to is_GC_task_thread() which
should identify only actual GC workers, but not other threads like the
safepoint workers.
- I also propose to enable it by default. ZGC and G1 do it now, and not
doing it basically guarantees this code to rot. I lowish number of
threads seems to give the best bang for the buck.
http://cr.openjdk.java.net/~rkennke/par-sp-workers/webrev.00/
Testing: tier3_gc_shenandoah
OK?
Roman
More information about the shenandoah-dev
mailing list