[lworld] RFR: 8311219: [lworld] VM option "InlineFieldMaxFlatSize" cannot work well

Tobias Hartmann thartmann at openjdk.org
Wed Aug 23 09:25:02 UTC 2023


On Mon, 21 Aug 2023 03:50:35 GMT, Xiaohong Gong <xgong at openjdk.org> wrote:

>>> > Are you inclined to re-instantiate the old behavior ?
>>> 
>>> May I ask what the "old behavior" do you mean? Thanks!
>> 
>> Hi @XiaohongGong ,
>> Updated my previous comment, I am able reproduce an intermittent crash in another test "compiler/valhalla/inlinetypes/TestGetfieldChains.java" with additional JVM options :  "-Xbatch -XX:TieredStopAtLevel=1 -XX:CompileThresholdScaling=0.1 -XX:InlineFieldMaxFlatSize=0"
>> [hs_err_pid1570004.txt](https://github.com/openjdk/valhalla/files/12385038/hs_err_pid1570004.txt)
>> [replay_pid1570004.txt](https://github.com/openjdk/valhalla/files/12385039/replay_pid1570004.txt)
>> [TestGetfieldChains.txt](https://github.com/openjdk/valhalla/files/12385040/TestGetfieldChains.txt)
>> 
>> Please find attached relevant logs and replay file.
>> 
>> Best Regards,
>> Jatin
>
>> > > Are you inclined to re-instantiate the old behavior ?
>> > 
>> > 
>> > May I ask what the "old behavior" do you mean? Thanks!
>> 
>> Hi @XiaohongGong , Updated my previous comment, I am able reproduce an intermittent crash in another test "compiler/valhalla/inlinetypes/TestGetfieldChains.java" with additional JVM options : "-Xbatch -XX:TieredStopAtLevel=1 -XX:CompileThresholdScaling=0.1 -XX:InlineFieldMaxFlatSize=0" [hs_err_pid1570004.txt](https://github.com/openjdk/valhalla/files/12385038/hs_err_pid1570004.txt) [replay_pid1570004.txt](https://github.com/openjdk/valhalla/files/12385039/replay_pid1570004.txt) [TestGetfieldChains.txt](https://github.com/openjdk/valhalla/files/12385040/TestGetfieldChains.txt)
>> 
>> Please find attached relevant logs and replay file.
>> 
>> Best Regards, Jatin
> 
> Thanks for pointing out this! I can reproduce this issue after I rebase my patch to latest `lworld` branch. I will try my best to look at what is changed. 
> 
> Best Regards,
> Xiaohong

Hi @XiaohongGong,

> I think there maybe some potential issues exposed after this change, since almost all value objects cannot be flattened anymore with -XX:InlineFieldMaxFlatSize=0, which may need the buffer allocated.

Yes, I think it's likely that this change reveals some existing issues. I can help with debugging but only later next month.

> Could you please show more env/options information on this issue? I cannot reproduce it even with -XX:InlineFieldMaxFlatSize=0 -XX:TieredStopAtLevel=1 on our internal Arm NEON machine.

It fails quite reliable in our testing on x86_64 with one of the following flag combinations:
- `-Xcomp -XX:TieredStopAtLevel=1 -DIgnoreCompilerControls=true`
- `-Xcomp -XX:-TieredCompilation -DIgnoreCompilerControls=true`
- `-DWarmup=0 -DVerifyIR=false`
- `-DWarmup=0 -XX:TieredStopAtLevel=1`

But you can reproduce this now, right?

> Actually I don't quite understand what this assertion mean? Why the null_free value type must be allocated in this routine?

The `is_allocated` assertion checks that the InlineTypeNode should always have a valid oop to a heap buffer now that we just loaded it from an oop value. That's not guaranteed if the field/argument can be NULL though, that's why the assert checks for `!null_free`. Does that make sense?

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

PR Comment: https://git.openjdk.org/valhalla/pull/888#issuecomment-1689445893



More information about the valhalla-dev mailing list