RFR: 8246718: ParallelGC should not check for forward objects for copy task queue
erik.osterlund at oracle.com
Mon Jun 8 06:59:30 UTC 2020
On 2020-06-07 07:08, Kim Barrett wrote:
> Please review this change to the handling of copy tasks by ParallelGC.
> Formerly, before adding a task entry to the queue it would check
> whether the referenced object was already forwarded. If so, it would
> handle the reference immediately, inline, rather than pushing the task
> onto the queue.
> Measurements show that a no-worse and sometimes better (depending on
> the hardware configuration) approach for most applications is to not
> do the forwarding check, but to instead prefetch the start of the
> referenced object and then always push the task.
> The corresponding G1 code does a for-write prefetch on the mark word
> of the object, and a for-read prefetch past the object header.
> Measurements with ParallelGC found the for-read prefetch not very
> productive, and possibly even slightly counter-productive, so this
> change only does the for-write prefetch on the mark word.
> mach5 tier1-5
> various performance tests
More information about the hotspot-gc-dev