From 5bfe28b9d7260b9b476b09dc077ee6f1b6212ffc Mon Sep 17 00:00:00 2001 From: MBaesken Date: Fri, 5 Jun 2026 13:42:33 +0200 Subject: [PATCH] JDK-8385892 --- src/hotspot/os/linux/os_linux.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/hotspot/os/linux/os_linux.cpp b/src/hotspot/os/linux/os_linux.cpp index ba48f2b4efc..e9c39e66804 100644 --- a/src/hotspot/os/linux/os_linux.cpp +++ b/src/hotspot/os/linux/os_linux.cpp @@ -2765,7 +2765,34 @@ void os::pd_print_cpu_info(outputStream* st, char* buf, size_t buflen) { #if INCLUDE_JFR +// hwm (high water mark) in K for the VM RSS +static long jfr_rss_hwm_k = -1; + void os::jfr_report_memory_info() { + os::Linux::accurate_meminfo_t accurate_info; + if (os::Linux::query_accurate_process_memory_info(&accurate_info) && accurate_info.rss != -1) { + EventResidentSetSize event; + event.set_size(accurate_info.rss * K); + + // unfortunately the smaps_rollup/accurate_info contains no hwm (high water mark) for RSS + struct rusage ru; + if (getrusage(RUSAGE_SELF, &ru) == 0) { + if (ru.ru_maxrss > jfr_rss_hwm_k) { + jfr_rss_hwm_k = ru.ru_maxrss; + } + } + + // do not allow larger current RSS than hwm + if (accurate_info.rss > jfr_rss_hwm_k) { + jfr_rss_hwm_k = accurate_info.rss; + } + + event.set_peak(jfr_rss_hwm_k * K); + + event.commit(); + return; + } + os::Linux::meminfo_t info; if (os::Linux::query_process_memory_info(&info)) { // Send the RSS JFR event