RFR: 8328944: NMT reports "unknown" memory [v2]
Gerard Ziemski
gziemski at openjdk.org
Mon Dec 2 16:00:48 UTC 2024
On Wed, 20 Nov 2024 11:32:25 GMT, Afshin Zafari <azafari at openjdk.org> wrote:
>> Gerard Ziemski has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains six additional commits since the last revision:
>>
>> - avoid using mtNone
>> - Merge remote-tracking branch 'upstream/master' into JDK-8328944
>> - revert, we will re-do with a smaller change
>> - remove more mtNone
>> - remove API that allows to change the mem_tag for virtual memory, feedback
>> - do not allow default parameter for mtNone
>
> Thanks for taking this issue. I add my points here:
>
> 1) The `ReservedSpace` objects in these files have to have extra MemTag (`mtTest`) parameter:
> - test_freeRegionList.cpp
> - test_virtualspace.cpp
> - test_virtualMemoryTracker.cpp
>
> 2) The `mtNone` as default value for the parameter should be removed from the following functions, otherwise Unknown memory types can still be reported:
>
>
>
> Source root • src/hotspot/os/windows/os_windows.cpp:
> 3239: static char* map_or_reserve_memory_aligned(size_t size, size_t alignment, int file_desc, MemTag mem_tag = mtNone) {
> 3239 assert(is_aligned(alignment, os::vm_allocation_granularity()),
> 3240 assert(is_aligned(alignment, os::vm_allocation_granularity()),
>
> Source root • src/hotspot/share/cds/filemap.cpp:
> 1773 char *addr, size_t bytes, bool read_only,
> 1774: bool allow_exec, MemTag mem_tag = mtNone) {
> 1775 char* mem = os::map_memory(fd, file_name, file_offset, addr, bytes,
>
> Source root • src/hotspot/share/memory/virtualspace.hpp:
> 63 void initialize(size_t size, size_t alignment, size_t page_size,
> 64 void initialize(size_t size, size_t alignment, size_t page_size,
> 65: char* requested_address, bool executable, MemTag mem_tag = mtNone);
> 65
> 66
>
> Source root • src/hotspot/share/nmt/memReporter.hpp:
> 110 void print_total(size_t reserved, size_t committed, size_t peak = 0) const;
> 111: void print_malloc(const MemoryCounter* c, MemTag mem_tag = mtNone) const;
> 112 void print_virtual_memory(size_t reserved, size_t committed, size_t peak) const;
>
> Source root • src/hotspot/share/nmt/memTracker.hpp:
> 123 static inline void record_virtual_memory_reserve(void* addr, size_t size, const NativeCallStack& stack,
> 124: MemTag mem_tag = mtNone) {
> 125 assert_post_init();
>
> 149 static inline void record_virtual_memory_reserve_and_commit(void* addr, size_t size,
> 150: const NativeCallStack& stack, MemTag mem_tag = mtNone) {
>
> Source root • src/hotspot/share/nmt/virtualMemoryTracker.hpp:
> 299 ReservedMemoryRegion(address base, size_t size, const NativeCallStack& stack,
> 300: MemTag mem_tag = mtNone) :
>
> 383: static bool add_reserved_region (address base_addr, size_t size, const NativeCallStack& stack, MemTag mem_tag = mtNone);
> 384
>
> Source root • src/hotspot/share/runtime/os.hpp:
> 453: static char* reserve_memory(size_t bytes, bool executable = false, MemTag mem_tag = mtNone);
>
> 46...
@afshin-zafari @tstuefe @stefank
ping
-------------
PR Comment: https://git.openjdk.org/jdk/pull/21843#issuecomment-2511920933
More information about the shenandoah-dev
mailing list