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