RFR: 8253447: Remove buggy code introduced by 8249451 [v2]

Jamsheed Mohammed C M jcm at openjdk.java.net
Tue Sep 22 03:15:59 UTC 2020


On Tue, 22 Sep 2020 02:35:17 GMT, David Holmes <dholmes at openjdk.org> wrote:

>> Jamsheed Mohammed C M has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   fixing the assert message too
>
> src/hotspot/share/runtime/deoptimization.cpp line 531:
> 
>> 529: #endif
>> 530:
>> 531:   if (thread->frames_to_pop_failed_realloc() > 0 && exec_mode != Unpack_uncommon_trap) {
> 
> I'm not at all clear on whether an async-exception could be pending at this point. The original change indicated it
> could be, but now you are saying it can't. How is that known?

Async-exception can be pending for Deoptimization::load_class_by_index(Java code executed case). This can happen for
C2/ and probably for JVMCI too.
https://github.com/openjdk/jdk/blob/d1f9b8a8b54843f06a93078c4a058af86fcc2aac/src/hotspot/share/runtime/deoptimization.cpp#L1964

In all cases deopt entries are equipped to handle pending exceptions.
In my previous code I incorrectly tried to handle it using Unpack_exception route. this can have implication that I am
at method entry and I don't handle locks properly.

now i simply leave it to the deopt entries to handle pending exceptions.

-------------

PR: https://git.openjdk.java.net/jdk/pull/292


More information about the hotspot-runtime-dev mailing list