RFR(M): 8191798 redo nested ThreadsListHandle to drop Threads_lock

Robbin Ehn robbin.ehn at oracle.com
Wed May 2 10:23:15 UTC 2018


On 2018-05-01 22:07, Daniel D. Daugherty wrote:
> On 5/1/18 3:43 PM, Erik Österlund wrote:
>> Hi Dan,
>>
>> In case my opinion counts, I think this looks great.

+1

> 
> As is usual for Thread-SMR stuff, I plan to list both you and I as
> contributors and as reviewers. Robbin reviewed internally and I
> expect he will chime in here. David H often reviews Thread-SMR stuff
> but he's a bit busy right now... I'm hoping Kim B. chimes in since
> I think he ran into this issue with some of his recent changes...
> 
> So thanks for the (re-)review!
> 
> 
>> Thank you for the thorough testing and various improvements of this patch.

Yes, thanks Dan!

/Robbin

> 
> You are quite welcome.
> 
> Dan
> 
> 
>>
>> Thanks,
>> /Erik
>>
>> On 2018-05-01 19:00, Daniel D. Daugherty wrote:
>>> Greetings,
>>>
>>> We have a fix for the following Thread-SMR bug:
>>>
>>>     JDK-8191798 redo nested ThreadsListHandle to drop Threads_lock
>>>     https://bugs.openjdk.java.net/browse/JDK-8191798
>>>
>>> Erik O is the primary author for this fix; I've only made minor tweaks
>>> here and there to the comments, the code and the tests. I have the
>>> Thread-SMR stress testing setup on my Solaris-X64 server so I'm the
>>> one shepherding the fix forward.
>>>
>>> Summary: Refactor Thread hazard ptrs and nested ThreadsLists into
>>>     SafeThreadsListPtr.
>>>
>>> Hazard ptr management logic remains the same, but the nested ThreadsList
>>> management logic uses a linked list of SafeThreadsListPtr and safe counters
>>> instead of a linked list of NestedThreadsList and the Threads_lock.
>>>
>>>
>>> Webrev URLs:
>>>
>>> http://cr.openjdk.java.net/~dcubed/8191798-webrev/1_for_jdk_jdk.full_no_code_motion/ 
>>>
>>>     This is the webrev to look at if you want to see the entire
>>>     proposed fix without code motion noise.
>>>
>>> http://cr.openjdk.java.net/~dcubed/8191798-webrev/1_for_jdk_jdk.code_motion_only/ 
>>>
>>>     This webrev is only code motion and is here for completeness.
>>>
>>> http://cr.openjdk.java.net/~dcubed/8191798-webrev/1_for_jdk_jdk.full_with_code_motion/ 
>>>
>>>     This webrev is everything and is here for completeness.
>>>
>>> Testing:
>>> - Mach5 builds-tier1,jdk-tier1,jdk-tier2,jdk-tier3,hs-tier1,hs-tier2,hs-tier3
>>>   - multiple rounds - no test failures
>>> - Solaris X64 Thread-SMR stress testing - 2 x 24+ hour runs - no failures
>>>   related to these changes
>>>
>>> Thanks, in advance, for any comments, suggestions or questions.
>>>
>>> Dan and Erik
>>
> 


More information about the hotspot-runtime-dev mailing list