RFR: 8366658: Add missing locks when accessing the VirtualMemoryTracker instance in tests and MemMapPrinter

Johan Sjölen jsjolen at openjdk.org
Thu Sep 11 10:14:53 UTC 2025


On Tue, 2 Sep 2025 07:07:51 GMT, Johan Sjölen <jsjolen at openjdk.org> wrote:

> Hi,
> 
> This PR adds the missing locks for the tests and MemMapPrinter, also fixes a small bug in `walk_virtual_memory`. See inline review comments.
> 
> Passes tier1.

src/hotspot/share/nmt/memTracker.hpp line 182:

> 180:     return VirtualMemoryTracker::Instance::walk_virtual_memory(walker);
> 181:   }
> 182: 

Added this so that we can do the usual checks and lock taking in the place where we typically take the lock.

src/hotspot/share/nmt/virtualMemoryTracker.cpp line 221:

> 219:   });
> 220:   return ret;
> 221: }

A VirtualMemoryWalker returned true or false depending on whether or not its operation succeeded, and we are meant to pass that along as the return value of walk_virtual_memory. That was missing, now fixed.

src/hotspot/share/nmt/virtualMemoryTracker.hpp line 349:

> 347: public:
> 348:   virtual bool do_allocation_site(const ReservedMemoryRegion* rgn) { return false; }
> 349: };

Indentation fix

test/hotspot/gtest/runtime/test_virtualMemoryTracker.cpp line 63:

> 61:   LOG("In reserved region " PTR_FORMAT ", size %X:", p2i(rmr.base()), rmr.size());
> 62:   vmt.tree()->visit_committed_regions(rmr, [&](CommittedMemoryRegion& region) {
> 63:     LOG("   committed region: " PTR_FORMAT ", size %X", p2i(region.base()), region.size());

Here the VMT was passed along but never actually used for printing

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

PR Review Comment: https://git.openjdk.org/jdk/pull/27038#discussion_r2321147605
PR Review Comment: https://git.openjdk.org/jdk/pull/27038#discussion_r2321146800
PR Review Comment: https://git.openjdk.org/jdk/pull/27038#discussion_r2321143077
PR Review Comment: https://git.openjdk.org/jdk/pull/27038#discussion_r2321144236


More information about the hotspot-runtime-dev mailing list