From a99308314c7c3be28b90fde7ab51149cdbaf7aa2 Mon Sep 17 00:00:00 2001 From: gerard ziemski <63425797+gerard-ziemski@users.noreply.github.com> Date: Mon, 19 May 2025 15:10:47 -0500 Subject: [PATCH 1/4] convert to UL --- .../share/nmt/virtualMemoryTracker.cpp | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/src/hotspot/share/nmt/virtualMemoryTracker.cpp b/src/hotspot/share/nmt/virtualMemoryTracker.cpp index e6fac91f2450b..479622b9a34ad 100644 --- a/src/hotspot/share/nmt/virtualMemoryTracker.cpp +++ b/src/hotspot/share/nmt/virtualMemoryTracker.cpp @@ -22,6 +22,7 @@ * */ #include "logging/log.hpp" +#include "logging/logStream.hpp" #include "memory/metaspaceStats.hpp" #include "memory/metaspaceUtils.hpp" #include "nmt/memTracker.hpp" @@ -29,6 +30,7 @@ #include "nmt/threadStackTracker.hpp" #include "nmt/virtualMemoryTracker.hpp" #include "runtime/os.hpp" +#include "utilities/defaultStream.hpp" #include "utilities/ostream.hpp" VirtualMemorySnapshot VirtualMemorySummary::_snapshot; @@ -374,7 +376,7 @@ bool VirtualMemoryTracker::add_reserved_region(address base_addr, size_t size, VirtualMemorySummary::record_reserved_memory(rgn.size(), mem_tag); *reserved_rgn = rgn; - return true; + //return true; } // CDS mapping region. @@ -401,17 +403,23 @@ bool VirtualMemoryTracker::add_reserved_region(address base_addr, size_t size, return true; } - // Print some more details. Don't use UL here to avoid circularities. - tty->print_cr("Error: existing region: [" INTPTR_FORMAT "-" INTPTR_FORMAT "), memory tag %u.\n" - " new region: [" INTPTR_FORMAT "-" INTPTR_FORMAT "), memory tag %u.", - p2i(reserved_rgn->base()), p2i(reserved_rgn->end()), (unsigned)reserved_rgn->mem_tag(), - p2i(base_addr), p2i(base_addr + size), (unsigned)mem_tag); + // Print some more details. + stringStream ss; + MemTag mem_tag_old = NMTUtil::index_to_tag((unsigned)reserved_rgn->mem_tag()); + MemTag mem_tag_new = NMTUtil::index_to_tag((unsigned)mem_tag); + ss.print_cr("Error: old region: [" INTPTR_FORMAT "-" INTPTR_FORMAT "), memory tag %s.\n" + " new region: [" INTPTR_FORMAT "-" INTPTR_FORMAT "), memory tag %s.", + p2i(reserved_rgn->base()), p2i(reserved_rgn->end()), NMTUtil::tag_to_name(mem_tag_old), + p2i(base_addr), p2i(base_addr + size), NMTUtil::tag_to_name(mem_tag_new)); if (MemTracker::tracking_level() == NMT_detail) { - tty->print_cr("Existing region allocated from:"); - reserved_rgn->call_stack()->print_on(tty); - tty->print_cr("New region allocated from:"); - stack.print_on(tty); + ss.print_cr("Existing region allocated from:"); + reserved_rgn->call_stack()->print_on(&ss); + ss.print_cr("New region allocated from:"); + stack.print_on(&ss); } + const char* msg = ss.as_string(true /* on C-heap */); + log_debug(nmt)("%s", msg); + ShouldNotReachHere(); return false; } From e7e87fe3154840c0737d36be3faac8cdf14b5a5f Mon Sep 17 00:00:00 2001 From: gerard ziemski <63425797+gerard-ziemski@users.noreply.github.com> Date: Mon, 19 May 2025 15:16:16 -0500 Subject: [PATCH 2/4] revert header change --- src/hotspot/share/nmt/virtualMemoryTracker.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/hotspot/share/nmt/virtualMemoryTracker.cpp b/src/hotspot/share/nmt/virtualMemoryTracker.cpp index 479622b9a34ad..bb7785fb83492 100644 --- a/src/hotspot/share/nmt/virtualMemoryTracker.cpp +++ b/src/hotspot/share/nmt/virtualMemoryTracker.cpp @@ -22,7 +22,6 @@ * */ #include "logging/log.hpp" -#include "logging/logStream.hpp" #include "memory/metaspaceStats.hpp" #include "memory/metaspaceUtils.hpp" #include "nmt/memTracker.hpp" @@ -30,7 +29,6 @@ #include "nmt/threadStackTracker.hpp" #include "nmt/virtualMemoryTracker.hpp" #include "runtime/os.hpp" -#include "utilities/defaultStream.hpp" #include "utilities/ostream.hpp" VirtualMemorySnapshot VirtualMemorySummary::_snapshot; From b32dbbec00885e7cfefcab33d51754a6f44b508b Mon Sep 17 00:00:00 2001 From: gerard ziemski <63425797+gerard-ziemski@users.noreply.github.com> Date: Mon, 19 May 2025 15:16:48 -0500 Subject: [PATCH 3/4] revert debug change --- src/hotspot/share/nmt/virtualMemoryTracker.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hotspot/share/nmt/virtualMemoryTracker.cpp b/src/hotspot/share/nmt/virtualMemoryTracker.cpp index bb7785fb83492..f0895ec7624d3 100644 --- a/src/hotspot/share/nmt/virtualMemoryTracker.cpp +++ b/src/hotspot/share/nmt/virtualMemoryTracker.cpp @@ -374,7 +374,7 @@ bool VirtualMemoryTracker::add_reserved_region(address base_addr, size_t size, VirtualMemorySummary::record_reserved_memory(rgn.size(), mem_tag); *reserved_rgn = rgn; - //return true; + return true; } // CDS mapping region. From 985856eca563acdf73d128e8d2df4af1770ecfc2 Mon Sep 17 00:00:00 2001 From: gerard ziemski <63425797+gerard-ziemski@users.noreply.github.com> Date: Tue, 20 May 2025 11:00:12 -0500 Subject: [PATCH 4/4] Johan's feedback --- src/hotspot/share/nmt/virtualMemoryTracker.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/hotspot/share/nmt/virtualMemoryTracker.cpp b/src/hotspot/share/nmt/virtualMemoryTracker.cpp index f0895ec7624d3..04a720794607b 100644 --- a/src/hotspot/share/nmt/virtualMemoryTracker.cpp +++ b/src/hotspot/share/nmt/virtualMemoryTracker.cpp @@ -403,20 +403,17 @@ bool VirtualMemoryTracker::add_reserved_region(address base_addr, size_t size, // Print some more details. stringStream ss; - MemTag mem_tag_old = NMTUtil::index_to_tag((unsigned)reserved_rgn->mem_tag()); - MemTag mem_tag_new = NMTUtil::index_to_tag((unsigned)mem_tag); ss.print_cr("Error: old region: [" INTPTR_FORMAT "-" INTPTR_FORMAT "), memory tag %s.\n" " new region: [" INTPTR_FORMAT "-" INTPTR_FORMAT "), memory tag %s.", - p2i(reserved_rgn->base()), p2i(reserved_rgn->end()), NMTUtil::tag_to_name(mem_tag_old), - p2i(base_addr), p2i(base_addr + size), NMTUtil::tag_to_name(mem_tag_new)); + p2i(reserved_rgn->base()), p2i(reserved_rgn->end()), NMTUtil::tag_to_name(reserved_rgn->mem_tag()), + p2i(base_addr), p2i(base_addr + size), NMTUtil::tag_to_name(mem_tag)); if (MemTracker::tracking_level() == NMT_detail) { ss.print_cr("Existing region allocated from:"); reserved_rgn->call_stack()->print_on(&ss); ss.print_cr("New region allocated from:"); stack.print_on(&ss); } - const char* msg = ss.as_string(true /* on C-heap */); - log_debug(nmt)("%s", msg); + log_debug(nmt)("%s", ss.freeze()); ShouldNotReachHere(); return false;