Enquiries on Load Barrier Overhead

Per Liden per.liden at oracle.com
Tue Sep 17 06:28:33 UTC 2019


On 9/17/19 5:28 AM, Dawei Li wrote:
>   Hi ZGC Team,
> When I read the Jfokus 2018 slides about ZGC I have a few questions about
> load barrier overhead  at slide No 44.
> Question 1: How do you measure the execution overhead on SPECjbb 2015? How
> do you configure base line testing and correspondingly, overhead testing?

This is a bit tricky to measure, and there's been various attempts and 
approaches. In this particular case the ZGC load barrier was added to 
ParallelGC, with an always successful fast path check. The performance 
(benchmark score, instructions retired, etc) of this Franken-ParalleGC 
was then compared against vanilla ParallelGC.

> Question 2: Is the *slow* *path* a source of overhead? Is it the *main*
> source?

On a typical workload, the slow path is taken on the order of one in a 
million, so the overhead is dominated by the fast path. During marking, 
the slow path is on the order of 150 instructions, with an occasional 
cache miss when pushing to the mark stacks. During relocation, the slow 
path can be more expensive in the somewhat rare case where the mutator 
thread needs to relocate a medium sized object.


> Looking forward to your reply! Thank you!
> Warm Regards,
> Dawei Li

More information about the zgc-dev mailing list