RFR: 8349146: [REDO] Implement a better allocator for downcalls [v6]

Maurizio Cimadamore mcimadamore at openjdk.org
Thu May 1 09:35:48 UTC 2025


On Wed, 30 Apr 2025 15:33:52 GMT, Per Minborg <pminborg at openjdk.org> wrote:

>> This PR is based on the work of @mernst-github and aims to implement an _internal_ thread-local 'stack' allocator, which works like a dynamically sized arena, but with reset functionality to reset the allocated size back to a certain level. The underlying memory could stay around between calls, which could improve performance.
>> 
>> Re-allocated segments are not zeroed between allocations.
>
> Per Minborg has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Improve on comments

src/java.base/share/classes/jdk/internal/foreign/BufferStack.java line 139:

> 137:             public MemorySegment allocate(long byteSize, long byteAlignment) {
> 138:                 // Make sure we are on the right thread
> 139:                 if (((MemorySessionImpl) scope()).ownerThread() != Thread.currentThread()) {

This can also be rewritten as:
`MemorySession.toMemorySession(confinedArena).checkValidState()` -- which is what we use elsewhere

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

PR Review Comment: https://git.openjdk.org/jdk/pull/24829#discussion_r2070089765


More information about the core-libs-dev mailing list