Change API used for computing code cache size in low memory environments (0.40.0) #17682
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR #17425 introduced a change for limiting the total size of the Code Cache to no more than 25% of available physical memory. This is done based on the output from the
computeAndCacheFreePhysicalMemory()
function. This function takes into consideration the amount of physical memory installed on the machine and the limits imposed by cgroups, but also looks at how much free physical memory is available (not used by other proceses) at the moment of the call. Thus, if there is a transient and very narrow spike of memory usage by some other process when our JVM starts, the JVM may think that it has very limitted physical memory and allocate a very small code cache repository.This commit changes the function used for computing physical memory to
omrsysinfo_get_addressable_physical_memory()
which looks at how much physical memory the JVM is allowed to use, rather than at how much physical memory is available.Cherry-pick of commit 11674ac