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

Daniel D. Daugherty daniel.daugherty at oracle.com
Tue May 1 20:07:12 UTC 2018


On 5/1/18 3:43 PM, Erik Österlund wrote:
> Hi Dan,
>
> In case my opinion counts, I think this looks great.

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.

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