RFR: 8141133: [JVMCI] crash during safepoint deopt if rethrow_exception is set.

Christian Thalinger christian.thalinger at oracle.com
Wed Nov 11 20:11:14 UTC 2015


There was a bug in 32-bit x86 which Gilles fixed:

diff -r 24fd08e99b35 -r 372cb6e59b0d src/cpu/x86/vm/sharedRuntime_x86_32.cpp
--- a/src/cpu/x86/vm/sharedRuntime_x86_32.cpp	Wed Nov 11 10:33:08 2015 +0100
+++ b/src/cpu/x86/vm/sharedRuntime_x86_32.cpp	Wed Nov 11 18:34:15 2015 +0100
@@ -2946,7 +2946,8 @@

  oop_maps->add_gc_map( __ pc()-start, map);

-  // Discard arg to fetch_unroll_info
+  // Discard args to fetch_unroll_info
+  __ pop(rcx);
  __ pop(rcx);

  __ get_thread(dcx);

> On Nov 9, 2015, at 6:50 AM, Gilles Duboscq <gilles.m.duboscq at oracle.com> wrote:
> 
> I updated the webrev to export the UnrollBlock::_unpack_kind field through vmStruct and JVMCI's HotSpotVMConfig:
> 
> http://cr.openjdk.java.net/~gdub/webrev-8141133.1
> 
> The only difference to the previous webrev are the changes in vmStruct.cpp  and HotSpotVMConfig.java
> 
> Gilles
> 
> On 05/11/15 16:28, Gilles Duboscq wrote:
>> Hi,
>> 
>> Please review the following change:
>> 
>> Webrev:
>> http://cr.openjdk.java.net/~gdub/webrev-8141133/
>> JIRA:
>> https://bugs.openjdk.java.net/browse/JDK-8141133
>> 
>> Scopes with rethrow_exception set to true need to be handled for all types of deoptimization, not just for uncommon traps.
>> This change moves their handling from uncommon_trap_inner to fetch_unroll_info_helper and uses exception_oop and exec_mode = Unpack_exception rather than setting a pending exception.
>> fetch_unroll_info_helper can now override the exec_mode by passing it through the UnrollBlock using the existing unpack_kind field.
>> 
>> Gilles
>> 

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


More information about the hotspot-compiler-dev mailing list