On 16/06/2022 10:09, Aleksey Shipilev wrote:
On 6/15/22 20:26, Ron Pressler wrote:
Am I right to understand that to mean that the x86-32 port does fully
implement the virtual
threads spec, albeit with the “fake virtual thread” implementation
rather than VM continuations?
Yes. Although it is still not clear to me if that implementation even
passes JCK.
The intention is that it does. The jtreg tests that exercise the API
surface re-run with -XX:-VMContinuations to ensure that the alternative
implementation is tested. The only surprising part may be that it lends
on the optionality of JVM TI.
Sure, but let me talk about a huge elephant-in-the-room caveat.
I firmly believe port maintainers should not be put into position of
deciphering the current Loom implementation, guessing the
implementation intents, and only then figuring out where those intents
are broken for a particular port. The porters job is the second part:
looking at clean implementation, having their "Aha, this code/comment
says something that does not hold for my arch" moments, and working
those out.
The first part is the responsibility of Loom developers: readability,
documentation clarity, reasonable pre-/post-conditions, extensive
verification, etc. I am sure many non-Loom developers would lend a
helping hand in that. I, for one, contributed a few rewrites already.
We haven't had JVMLS or OpenJDK Committers Workshops for 2 years and
those are venues where there may have been opportunities to have walk
through and discuss the porting challenges. A few recordings of TOIs
might have helped to get more people up to speed and maybe more help on
cleanup and re-writing the areas of the hotspot code that need
attention. I'm not so sure about the "first part" vs. "second part", at
least not for the the first one of two ports after x64/aarch64 as there
will be issues, leading to improvements for other ports that follow.
-Alan