RFR: JDK-8324287: Record total and free swap space in JFR [v5]
Severin Gehwolf
sgehwolf at openjdk.org
Mon Jan 29 15:37:44 UTC 2024
On Mon, 29 Jan 2024 15:16:48 GMT, Matthias Baesken <mbaesken at openjdk.org> wrote:
>> Total and free swap space should be recorded in JFR, because it is important to know e.g. in case of memory shortages.
>>
>> Currently we only have a container related event (ContainerMemoryUsage) that provides some info but no general event.
>> PhysicalMemory could be enhanced or a new event added.
>>
>> There is already some coding (see Java_com_sun_management_internal_OperatingSystemImpl_getTotalSwapSpaceSize0 and
>> Java_com_sun_management_internal_OperatingSystemImpl_getFreeSwapSpaceSize0) for the swap space info retrieval.
>
> Matthias Baesken has updated the pull request incrementally with one additional commit since the last revision:
>
> Linux: container support in os::total_swap_space
src/hotspot/os/linux/os_linux.cpp line 294:
> 292: jlong os::total_swap_space() {
> 293: if (OSContainer::is_containerized()) {
> 294: return (jlong)(OSContainer::memory_and_swap_limit_in_bytes() - OSContainer::memory_limit_in_bytes());
Shouldn't we check if `OSContainer::memory_limit_in_bytes() > 0` here first?
src/hotspot/os/linux/os_linux.cpp line 313:
> 311: }
> 312: return (jlong)(si.freeswap * si.mem_unit);
> 313: }
In a containerized environment with some memory limit this could potentially return a large value for `free_swap_space()`, and a small(er) value for `total_swap_space()`. i.e. `total_swap_space() < free_swap_space()`. Please return `-1` if the containerized value is not supported. Better yet, push the implementation to `Linux::free_swap_space()` and `Linux::total_swap_space()` which always returns host swap values and do the (container) wrappers here in `os::free_swap_space()` and `os::total_swap_space()`.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/17581#discussion_r1469776435
PR Review Comment: https://git.openjdk.org/jdk/pull/17581#discussion_r1469773728
More information about the hotspot-jfr-dev
mailing list