[9] RFR(XS): 8059559: SIGSEGV at CodeHeap::allocate(unsigned int, bool)

Tobias Hartmann tobias.hartmann at oracle.com
Fri Oct 3 13:23:29 UTC 2014


Hi Vitaly,

yes, but the comment only says that we don't need any _method_ code 
heaps. Of course we do need the non-nmethod code heap (for example to 
store the interpreter).

Best,
Tobias

On 03.10.2014 14:29, Vitaly Davidovich wrote:
>
> Ok.  The reason I mentioned this is because of these lines right below 
> the one you changed:
>
> 264     // No TieredCompilation: we only need the non-nmethod and 
> non-profiled code heap
> 265     return (code_blob_type == CodeBlobType::NonNMethod) ||
> 266            (code_blob_type == CodeBlobType::MethodNonProfiled);
>
> That one mentions that it needs non-nmethod heap, so thought similar 
> comment was warranted in your change.  But you know better than me :).
>
> Thanks
> Sent from my phone
>
> On Oct 3, 2014 3:47 AM, "Tobias Hartmann" <tobias.hartmann at oracle.com 
> <mailto:tobias.hartmann at oracle.com>> wrote:
>
>     Hi Vitaly,
>
>     thanks for the feedback.
>
>     On 02.10.2014 18:21, Vitaly Davidovich wrote:
>>     Hi Tobias,
>>
>>       } else if (Arguments::mode() == Arguments::_int) {
>>
>>       258     // Interpreter only: we don't need any method code heaps
>>       259     return (code_blob_type == CodeBlobType::NonNMethod);
>>
>>     Minor point, but perhaps the comment should be amended?
>
>     The comment is still correct because we don't need any method code
>     heaps in interpreter-only mode.
>
>     However, if TieredStopAtLevel=0 is set, we are not in
>     interpreter-only mode and therefore need the non-profiled code
>     heap (we exit through the else branch annotated with "No
>     TieredCompilation").
>
>     Best,
>     Tobias
>
>>
>>     Thanks
>>
>>     On Thu, Oct 2, 2014 at 7:49 AM, Tobias Hartmann
>>     <tobias.hartmann at oracle.com <mailto:tobias.hartmann at oracle.com>>
>>     wrote:
>>
>>         Hi,
>>
>>         please review the following patch.
>>
>>         Bug: https://bugs.openjdk.java.net/browse/JDK-8059559
>>         Webrev:
>>         http://cr.openjdk.java.net/~thartmann/8059559/webrev.00/
>>         <http://cr.openjdk.java.net/%7Ethartmann/8059559/webrev.00/>
>>
>>         Problem:
>>         'CodeCache::heap_available' assumes that with
>>         '-XX:TieredStopAtLevel=0' we only use the interpreter. This
>>         is wrong because we still generate compiled forms of method
>>         handle intrinsics (see
>>         'SystemDictionary::find_method_handle_intrinsic'). We
>>         therefore need to create the non-profiled code heap.
>>
>>         Solution:
>>         Change 'CodeCache::heap_available' to create the non-profiled
>>         code heap if TieredStopAtLevel=0 is set. I also adapted the
>>         test ' compiler/codecache/CheckSegmentedCodeCache'.
>>
>>         Thanks,
>>         Tobias
>>
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20141003/2324d4e2/attachment.html>


More information about the hotspot-compiler-dev mailing list