RFR: 8357086: os::xxx functions returning memory size should return size_t [v11]

David Holmes dholmes at openjdk.org
Mon Jun 16 07:54:40 UTC 2025


On Fri, 13 Jun 2025 10:14:22 GMT, Anton Artemov <duke at openjdk.org> wrote:

>> Hi,
>> 
>> in this PR the output value type for functions which return memory are changed, namely:
>> 
>> 
>> static julong available_memory(); --> static MemRes available_memory();
>> static julong used_memory(); --> static MemRes used_memory();
>> static julong free_memory(); --> static MemRes free_memory(); 
>> static jlong total_swap_space(); --> static MemRes total_swap_space();
>> static jlong free_swap_space(); --> static MemRes free_swap_space(); 
>> static julong physical_memory(); --> static MemRes physical_memory(); 
>> 
>> 
>> `MemRes` is a struct containing a pair of values, `size_t value` to carry the return value, `int error` to carry the error if any. Currently, in case of error the latter is set to -1.
>> 
>> The changes are done so that the other parts of the code have minimal impact. 
>> Tested in GHA and Tiers 1-4.
>
> Anton Artemov has updated the pull request incrementally with one additional commit since the last revision:
> 
>   8357086: Added default val to constructor of MemRes.

src/hotspot/share/runtime/os.hpp line 148:

> 146: };
> 147: 
> 148: // struct to return from mem-related functions

Can you add some more commentary on this please: what do the fields mean? how are they used? Do we need an assert to check that there is no error if you read the value?

It seems most places are not even checking if there may be an error. ??

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

PR Review Comment: https://git.openjdk.org/jdk/pull/25450#discussion_r2149275862


More information about the hotspot-dev mailing list