[lworld] RFR: 8377714: [lworld] Re-enable virtual thread tests [v2]
Patricio Chilano Mateo
pchilanomate at openjdk.org
Mon Feb 23 16:42:09 UTC 2026
On Fri, 20 Feb 2026 08:54:25 GMT, Marc Chevalier <mchevalier at openjdk.org> wrote:
>> Right, `f` is a compiled frame. So before this change, `caller.sp()` was always set to `f.sp() + f.cb()->frame_size()`, even when `f` was an extended frame. The reason for this is that we needed to keep a reference to the saved `rbp/rfp` in `f`, because we might needed to patch it later (we need to thaw the callee first before patching the caller's saved `rbp/rfp`). But now, the saved `rbp/rfp` is stored together with the saved return pc. So `caller.sp()` is set to point to `f`'s actual caller `sp`. The difference between `caller.sp()` and `f.sp()` should then be the real size of `f` (stored in `fsize` for extended frames).
>
> Riiiight, the `frame_size` is just the part with the locals (and sp_inc...), it doesn't include the extension space? Is it a method we could add to `frame`, to return frame_size, plus possibly, the extension space? Just a random idea, feel free to ignore.
I see there is a `frame_size()` method already in frame class (very few users). Maybe it should be fixed, since for this extended frames it's not returning the real size of the frame. Then we could use it here (and possibly in some other places). So I think it might be a good idea for future cleanups.
-------------
PR Review Comment: https://git.openjdk.org/valhalla/pull/2085#discussion_r2841865251
More information about the valhalla-dev
mailing list