[foreign-memaccess] RFR: 8252770: MemorySegment::allocateNative should honor direct memory limits
    Paul Sandoz 
    psandoz at openjdk.java.net
       
    Thu Sep  3 20:48:40 UTC 2020
    
    
  
On Thu, 3 Sep 2020 14:18:18 GMT, Maurizio Cimadamore <mcimadamore at openjdk.org> wrote:
> Currently, `MemorySegment::allocateNative` does not honor the memory limits set for direct buffers
> (`-XX:MaxDirectMemorySize` and `-XX:+PageAlignDirectMemory`).This patch rectifies that. The changes are pretty simple,
> the main issue was that most of the methods are defined away in the `Bits` class which belongs to the nio package, so
> the usual access dance was necessary.  Since segments can already be allocated with an alignment, I slightly tweaked
> the alignment logic to compute the max between page size and requested alignment, in case the option for aligning
> direct memory chunks to page boundaries is set.   Tweak NativeMemorySegmentImpl to respect direct memory settings
Marked as reviewed by psandoz (Committer).
src/jdk.incubator.foreign/share/classes/jdk/internal/foreign/NativeMemorySegmentImpl.java line 89:
> 87:             alignmentBytes = Math.max(alignmentBytes, nioAccess.pageSize());
> 88:         }
> 89:         long alignedSize = alignmentBytes > MAX_ALIGN ?
Minor comment, it might be a little clearer if `MAX_ALIGN` was renamed to `MALLOC_MAX_ALIGN`.
-------------
PR: https://git.openjdk.java.net/panama-foreign/pull/306
    
    
More information about the panama-dev
mailing list