On Thu, 31 Oct 2024 15:52:04 GMT, Quan Anh Mai <qa...@openjdk.org> wrote:
> Hi, > > This patch makes `MemorySessionImpl.state` a `Stable` field so that liveness > check of non-closeable scopes such as the global scope can be elided. > > Currently, the `state` field is overloaded with 2 responsibilities, to act as > a communication device between `close` and `checkValidState`, as well as a > communication device between `close`, `acquire`, and `release`. This patch > separates those concerns into `state` and `acquireCount`, allowing `state` to > be marked as `@Stable`. > > With the patch, in `MemorySegmentGetUnsafe`, `panama` is able to be on par > with `unsafe`: > > Benchmark Mode Cnt Score Error Units > MemorySegmentGetUnsafe.panama avgt 30 0.340 ± 0.008 ns/op > MemorySegmentGetUnsafe.unsafe avgt 30 0.332 ± 0.004 ns/op > > For reference this is the results without this patch: > > Benchmark Mode Cnt Score Error Units > MemorySegmentGetUnsafe.panama avgt 30 0.420 ± 0.019 ns/op > MemorySegmentGetUnsafe.unsafe avgt 30 0.329 ± 0.003 ns/op > > Please kindly review, thanks very much. This pull request has now been integrated. Changeset: 1d117f65 Author: Quan Anh Mai <qa...@openjdk.org> URL: https://git.openjdk.org/jdk/commit/1d117f65f06456ae571aecc146542c2f79d402cf Stats: 267 lines in 7 files changed: 224 ins; 17 del; 26 mod 8343394: Make MemorySessionImpl.state a stable field Co-authored-by: Maurizio Cimadamore <mcimadam...@openjdk.org> Reviewed-by: mcimadamore, jvernee ------------- PR: https://git.openjdk.org/jdk/pull/21810