[lworld] RFR: 8336845: [lworld] Virtual threads don't support the value class calling convention [v2]
Patricio Chilano Mateo
pchilanomate at openjdk.org
Thu Sep 11 23:59:00 UTC 2025
> Please review the following patch which adds virtual thread support for the value class calling convention. Most of the changes are needed to handle extended frames, i.e c1 or c2 frames that use more stack space for arguments than the stack space allocated by the caller. These include changes in freeze and thaw code, plus changes in the stackChunk walking code where we now need a similar repair of the caller sp as in the current sender code. In this case though, we only adjust _unextended_sp and keep the value of _sp. This is because frames are walked without a full RegisterMap, but we still need to be able to access the saved fp in the callee for gc purposes. The remaining changes deal with saving and restoring the extra return registers when calling thaw.
>
> Thanks to Tobias for working on the initial changes and for providing the very useful new test TestVirtualThreads.java, included in this PR, which has been great for catching many bugs. I also run the changes with the valhalla-comp-stress job in mach5. It uncovered a couple of extra failures in TestVirtualThreads.java, but I was able to reproduce them with platform threads as well (8367151 and 8367258). I also added extra testing for value classes in existing test Fuzz.java which has proven very useful too.
>
> Thanks,
> Patricio
Patricio Chilano Mateo has updated the pull request incrementally with one additional commit since the last revision:
add string to assert in is_in_frame()
-------------
Changes:
- all: https://git.openjdk.org/valhalla/pull/1556/files
- new: https://git.openjdk.org/valhalla/pull/1556/files/39669832..e8759568
Webrevs:
- full: https://webrevs.openjdk.org/?repo=valhalla&pr=1556&range=01
- incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1556&range=00-01
Stats: 2 lines in 2 files changed: 0 ins; 0 del; 2 mod
Patch: https://git.openjdk.org/valhalla/pull/1556.diff
Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1556/head:pull/1556
PR: https://git.openjdk.org/valhalla/pull/1556
More information about the valhalla-dev
mailing list