RFR(XXS): 8227338: templateInterpreter.cpp: copy_table() needs to be safer

Daniel D. Daugherty daniel.daugherty at oracle.com
Tue Jul 9 18:02:10 UTC 2019


Serguei,

Thanks for the quick re-review!

Dan


On 7/9/19 12:34 PM, serguei.spitsyn at oracle.com wrote:
> Hi Dan,
>
> This looks good too.
>
> Thanks,
> Serguei
>
>
> n 7/9/19 07:09, Daniel D. Daugherty wrote:
>> Greetings,
>>
>> I've made one minor tweak based on Kim's code review.
>>
>> Here's the full webrev:
>>
>> http://cr.openjdk.java.net/~dcubed/8227338-webrev/1_for_jdk14.full/
>>
>> Here's the incremental webrev:
>>
>> http://cr.openjdk.java.net/~dcubed/8227338-webrev/1_for_jdk14.inc/
>>
>> Here's the context diff:
>>
>> $ hg diff
>> diff -r 32fe92d8b539 
>> src/hotspot/share/interpreter/templateInterpreter.cpp
>> --- a/src/hotspot/share/interpreter/templateInterpreter.cpp Mon Jul 
>> 08 16:58:27 2019 -0400
>> +++ b/src/hotspot/share/interpreter/templateInterpreter.cpp Tue Jul 
>> 09 10:02:46 2019 -0400
>> @@ -283,7 +283,7 @@
>>    // Copy non-overlapping tables.
>>    if (SafepointSynchronize::is_at_safepoint()) {
>>      // Nothing is using the table at a safepoint so skip atomic word 
>> copy.
>> -    while (size-- > 0) *to++ = *from++;
>> +    Copy::disjoint_words((HeapWord*)from, (HeapWord*)to, (size_t)size);
>>    } else {
>>      // Use atomic word copy when not at a safepoint for safety.
>>      Copy::disjoint_words_atomic((HeapWord*)from, (HeapWord*)to, 
>> (size_t)size);
>>
>> Thanks, in advance, for questions, comments or suggestions.
>>
>> Dan
>>
>>
>> On 7/6/19 9:53 AM, Daniel D. Daugherty wrote:
>>> Greetings,
>>>
>>> During the code review for the following fix:
>>>
>>>     JDK-8227117 normal interpreter table is not restored after 
>>> single stepping with TLH
>>>     https://bugs.openjdk.java.net/browse/JDK-8227117
>>>
>>> Erik O. noticed a potential race with templateInterpreter.cpp: 
>>> copy_table()
>>> depending on C++ compiler optimizations. The following bug is being 
>>> used
>>> to fix this issue:
>>>
>>>     JDK-8227338 templateInterpreter.cpp: copy_table() needs to be safer
>>>     https://bugs.openjdk.java.net/browse/JDK-8227338
>>>
>>> Here's the webrev URL:
>>>
>>> http://cr.openjdk.java.net/~dcubed/8227338-webrev/0_for_jdk14/
>>>
>>> This fix has been tested via Mach5 Tier[1-3] on Oracle's usual 
>>> platforms.
>>> Mach5 tier[4-6] is running now. It has also been tested with the manual
>>> jdb test from JDK-8227117 using 'release' and 'fastdebug' bits.
>>>
>>> Thanks, in advance, for questions, comments or suggestions.
>>>
>>> Dan
>>>
>>
>



More information about the serviceability-dev mailing list