RFR: 8357531: The `SegmentBulkOperations::fill` method can be improved using overlaps [v15]

Per Minborg pminborg at openjdk.org
Tue Aug 26 06:34:50 UTC 2025


On Wed, 6 Aug 2025 16:22:30 GMT, Per Minborg <pminborg at openjdk.org> wrote:

>> This PR builds on a concept John Rose told me about some time ago. Instead of combining memory operations of various sizes, a single large and skewed memory operation can be made to clean up the tail of remaining bytes.
>> 
>> This has the effect of simplifying and shortening the code. The number of branches to evaluate is reduced.
>> 
>> It should be noted that the performance of the fill operation affects the allocation of new segments (as they are zeroed out before being returned to the client code).
>> 
>> This PR passes tier1, tier2, and tier3 on multiple platforms.
>
> Per Minborg has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 18 additional commits since the last revision:
> 
>  - Merge branch 'master' into fill-overlap
>  - Fix inverted logic error
>  - Revert the default value for the fill threshold
>  - Revert the settable fill threshold
>  - Improve performance
>  - Merge branch 'master' into fill-overlap
>  - Use Unsafe directly in benchmarks
>  - Merge branch 'master' into fill-overlap
>  - Use a fixed threashold for fill
>  - Fix benchmark
>  - ... and 8 more: https://git.openjdk.org/jdk/compare/b1e061f0...bbf08938

For the same reasons as for https://github.com/openjdk/jdk/pull/26672, I think we should close this one without integrating. There are some gems here we can come back with later.

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

PR Comment: https://git.openjdk.org/jdk/pull/25383#issuecomment-3222803614


More information about the core-libs-dev mailing list