RFR: 8357570: [macOS] os::Bsd::available_memory() might return too low values

Matthias Baesken mbaesken at openjdk.org
Thu Jun 5 08:01:50 UTC 2025


Currently os::Bsd::available_memory() returns on macOS
`vmstat.free_count * os::vm_page_size();`
But just using free_count is rather conservative because there are other memory categories on macOS that can be made available too. Unfortunately the different memory categories 
There is a bit of additional information here https://developer.apple.com/forums/thread/118867
that confirms that free memory / free_count is only a fraction of what is available.

There is also some info here
https://developer.apple.com/library/archive/documentation/Performance/Conceptual/ManagingMemory/Articles/AboutMemory.html#//apple_ref/doc/uid/20001880-BCICIHAB
containing this relevant info :
"The inactive list contains pages that are currently resident in physical memory but have not been accessed recently. These pages contain valid data but may be removed from memory at any time. The free list contains pages of physical memory that are not associated with any address space of VM object. These pages are available for immediate use by any process that needs them."

and also about purgeable memory at
https://developer.apple.com/library/archive/documentation/Performance/Conceptual/ManagingMemory/Articles/CachingandPurgeableMemory.html#//apple_ref/doc/uid/TP40013104-SW1

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

Commit messages:
 - JDK-8357570

Changes: https://git.openjdk.org/jdk/pull/25657/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=25657&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8357570
  Stats: 2 lines in 1 file changed: 1 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/25657.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/25657/head:pull/25657

PR: https://git.openjdk.org/jdk/pull/25657


More information about the hotspot-runtime-dev mailing list