RFR 8191278: MappedByteBuffer bulk access memory failures are not handled gracefully

Jamsheed jamsheed.c.m at oracle.com
Fri Mar 15 00:07:42 UTC 2019


Hi Tobias,

as a fix, for handling  the bugs in hand written assembly stubs, i will 
put checks like.[1]  instead of StubRoutines::contains(pc).

Best regards,

Jamsheed

[1]

bool StubRoutines::is_unsafe_copy(address pc) {
     if ((pc > StubRoutines::_jbyte_disjoint_arraycopy && pc < 
StubRoutines::_arrayof_jbyte_disjoint_arraycopy) ||
         (pc > StubRoutines::_jshort_disjoint_arraycopy && pc < 
StubRoutines::_arrayof_jshort_disjoint_arraycopy) ||
         (pc > StubRoutines::_jint_disjoint_arraycopy && pc < 
StubRoutines::_arrayof_oop_disjoint_arraycopy)) {
       return true;
     }
     return false;
   }

PS: these code ranges are shared by others too.

On 14/03/19 8:46 PM, Jamsheed wrote:
> Hi Tobias,
>
> On 14/03/19 1:58 PM, Tobias Hartmann wrote:
>> Hi Jamsheed,
>>
>> On 14.03.19 02:29, Jamsheed wrote:
>>> i will try to limit my checks to array copy stubs. will make changes 
>>> and send it for review.
>> Okay, if there's a simple way to do that. Otherwise, I'm fine with 
>> the current version of the fix.
> either i should have separate code generated for unsafe copy. or 
> setting/resetting doing_unsafe_access before after unsafe_copy should do.
>
> Best regards,
>
> Jamsheed
>>
>> Best regards,
>> Tobias


More information about the hotspot-dev mailing list