RFR: 8152196: SuspendibleThreadSet::yield scales poorly

Derek White derek.white at oracle.com
Wed Mar 23 21:30:29 UTC 2016


On 3/23/16 4:56 PM, Kim Barrett wrote:
>> On Mar 23, 2016, at 3:07 PM, Derek White <derek.white at oracle.com> wrote:
>>
>> On 3/18/16 3:58 PM, Kim Barrett wrote:
>>> Please review this fix for a performance scaling problem in
>>> SuspendibleThreadSet, leading to unnecessary additional safepoint
>>> latency as the number of suspendible threads increases. See the CR for
>>> details of the problem and some performance data.
>>>
>>> CR:
>>>
>>> https://bugs.openjdk.java.net/browse/JDK-8152196
>>>
>>>
>>> Webrev:
>>>
>>> http://cr.openjdk.java.net/~kbarrett/8152196/webrev.00/
>>>
>>>
>>> Testing:
>>> JPRT, RBT GC Nightly, local specjbb2015.
>>>
>> Hi Kim, this looks good.
>>
>> I looked at the suspendibleThreadSet.cpp, line 88 for a bit. There used to be notify_all() after "_nthreads_stopped--;". But the thinking is that nobody cares about the " is_synchronized() -> ! is_synchronized()" transition, so this was never really needed, and certainly isn't needed now. Is this correct?
> That’s correct.
>
OK, Thanks for the info Kim. And I really appreciated the documentation 
around the signal()!

reviewed.

  - Derek



More information about the hotspot-gc-dev mailing list