RFR: JDK-8215196: [Graal] vmTestbase/nsk/jvmti/PopFrame/popframe003/TestDescription.java fails with "changes for the arguments of the popped frame's method, did not remain current argument values"
serguei.spitsyn at oracle.com
serguei.spitsyn at oracle.com
Mon Nov 11 11:15:42 UTC 2019
On 11/11/19 03:06, serguei.spitsyn at oracle.com wrote:
> Hi Chris,
>
>
> On 11/8/19 16:55, Chris Plummer wrote:
>> Hi Alex,
>>
>> Comments below:
>>
>> On 11/8/19 4:39 PM, Alex Menkov wrote:
>>>
>>>
>>> On 11/08/2019 15:22, Alex Menkov wrote:
>>>> Hi all,
>>>>
>>>> Please review the fix for
>>>> https://bugs.openjdk.java.net/browse/JDK-8215196
>>>> webrev:
>>>> http://cr.openjdk.java.net/~amenkov/jdk14/popframe_args/webrev/
>> I don't really see a resolution in the JDK-8215196 comments as to
>> what is actually broken. Are we sure we want to fix this in the test,
>> and not require different behavior by the compiler (and also clarify
>> the spec)?
>
> This is one more case to the topic "Should optimizations be observable
> for JVMTI agents?"
> which was recently discussed on the serviceability-dev mailing list.
> The question is about the following statement of the JVMTI PopFrame spec:
> "Note however, that any changes to the arguments, which occurred in
> the called method, remain;
> when execution continues, the first instruction to execute will be
> the invoke."
>
> One point is we could consider this statement as a possible side
> affect which has to be preserved by the JIT compiler.
> So, the optimization to delete such a code which "looks useless" has
> to be disabled.
>
> Another point is that it is hard to understand why such a side effect
> can be really useful.
> Maybe it was specified like this just because it does not make sense
> to preserve original argument values at the call side.
> We can consider to relax the JVMTI PopFrame spec by changing it to
> something like:
> "Note however, that the original argument values are not preserved
> and can be changed by the called method;"
Forgot to list one more option which is:
Consider it is Okay for compiler to eliminate useless code,
so the argument values can be reinitialized by the PopFrame.
Than this problem becomes just a test bug.
Thanks,
Serguei
>
> Let's wait for other opinions.
>
> Thanks,
> Serguei
>
>>>>
>>>> Currently PopFrame is disabled with JVMCI by [1], so for testing I
>>>> reverted [1] changes.
>>>
>>> Just to be clear - I temporary reverted [1] for test runs.
>>>
>> The description for JDK-8218025 says that the intention is to only
>> disable these capabilities for JDK12. Is there a CR to re-enabled them?
>>
>> thanks,
>>
>> Chris
>>> --alex
>>>
>>>>
>>>> [1] https://bugs.openjdk.java.net/browse/JDK-8218025
>>>>
>>>> --alex
>>
>
More information about the serviceability-dev
mailing list