RFR: 8314220: Configurable InlineCacheBuffer size [v3]

Vladimir Kozlov kvn at openjdk.org
Tue Nov 21 00:35:12 UTC 2023


On Mon, 20 Nov 2023 22:19:50 GMT, Ekaterina Vergizova <evergizova at openjdk.org> wrote:

>> InlineCacheBuffer size is currently hardcoded to 10K.
>> This can lead to multiple ICBufferFull safepoints for InlineCacheBuffer cleanup and possible performance degradation.
>> 
>> Added experimental command line option InlineCacheBufferSize with the same default value, allowing it to be configured for performance experiments with ICBufferFull safepoints frequency.
>
> Ekaterina Vergizova has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Changed type, removed unnecessary guarantees

src/hotspot/share/code/stubs.cpp line 221:

> 219:   // verify alignment
> 220:   guarantee(_buffer_size  % stub_alignment() == 0, "_buffer_size  not aligned");
> 221:   guarantee(_buffer_limit % stub_alignment() == 0, "_buffer_limit not aligned");

Why these were removed?

src/hotspot/share/compiler/compilerDefinitions.cpp line 503:

> 501:     jio_fprintf(defaultStream::error_stream(),
> 502:                 "Invalid InlineCacheBufferSize=" SIZE_FORMAT "K. Must be less than NonNMethodCodeHeapSize=" SIZE_FORMAT "K.\n",
> 503:                 InlineCacheBufferSize/K, NonNMethodCodeHeapSize/K);

You need to check for alignment of the value. In [StubQueue()](https://github.com/openjdk/jdk/blob/master/src/hotspot/share/code/stubs.cpp#L70) it is aligned up by `2*BytesPerWord` so the final value could be > `InlineCacheBufferSize`.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/15271#discussion_r1399891240
PR Review Comment: https://git.openjdk.org/jdk/pull/15271#discussion_r1399896133


More information about the hotspot-dev mailing list