RFR: 8152196: SuspendibleThreadSet::yield scales poorly
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.
>>> 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()!
More information about the hotspot-gc-dev