RFR: 8337563: NMT: rename MEMFLAGS to MemTag
David Holmes
dholmes at openjdk.org
Mon Sep 9 03:14:07 UTC 2024
On Thu, 5 Sep 2024 16:10:05 GMT, Gerard Ziemski <gziemski at openjdk.org> wrote:
> Please review this cleanup, where we rename `MEMFLAGS` to `MemTag`.
>
> `MEMFLAGS` implies that we can use more than one at the same time, but those are exclusive values, so `MemTag` is a more suitable name.
>
> This fix also includes a cleanup of all the related parameter names and local variable names.
>
> Testing is pending...
>
> Note: there is more history in old closed PRs [https://github.com/openjdk/jdk/pull/20497](https://github.com/openjdk/jdk/pull/20497) and [https://github.com/openjdk/jdk/pull/20472](https://github.com/openjdk/jdk/pull/20472)
The bulk of this seems fine but as Kim points out the `F` template parameter really needs changing too.
There are also some other questionable changes that I've flagged below.
Thanks
src/hotspot/share/nmt/memMapPrinter.cpp line 70:
> 68: //end
> 69:
> 70: static const char* get_shortname_for_nmt_flag(MemTag mem_tag) {
Shouldn't this be renamed to `get_shortname_for_nmt_tag`?
src/hotspot/share/nmt/memReporter.cpp line 852:
> 850: } else if (early_site->mem_tag() != current_site->mem_tag()) {
> 851: // This site was originally allocated with one type, then released,
> 852: // then re-allocated at the same site (as far as we can tell) with a different type.
s/type/tag/
src/hotspot/share/nmt/memTracker.hpp line 83:
> 81: if (enabled()) {
> 82: return MallocTracker::record_malloc(mem_base, size, mem_tag, stack);
> 83: return MallocTracker::record_malloc(mem_base, size, mem_tag, stack);
Did this even compile? !
Suggestion:
return MallocTracker::record_malloc(mem_base, size, mem_tag, stack);
src/hotspot/share/nmt/memoryFileTracker.cpp line 51:
> 49: for (int i = 0; i < mt_number_of_tags; i++) {
> 50: VirtualMemory* summary = file->_summary.by_type(NMTUtil::index_to_tag(i));
> 51: summary->reserve_memory(diff.type[i].commit);
Why is this `type` not `tag`?
src/hotspot/share/nmt/memoryFileTracker.cpp line 109:
> 107: tty->print_cr("Expected start out to have same type as end in, but was: %s, %s",
> 108: VMATree::statetype_to_string(broken_start->val().out.state()),
> 109: VMATree::statetype_to_string(broken_end->val().in.state()));
Not seeing what this rename has to do with current changes. ???
src/hotspot/share/nmt/virtualMemoryTracker.cpp line 400:
> 398:
> 399: // Print some more details. Don't use UL here to avoid circularities.
> 400: tty->print_cr("Error: existing region: [" INTPTR_FORMAT "-" INTPTR_FORMAT "), type %u.\n"
Again why `type` instead of `tag`?
src/hotspot/share/nmt/virtualMemoryTracker.cpp line 560:
> 558: // Given an existing memory mapping registered with NMT, split the mapping in
> 559: // two. The newly created two mappings will be registered under the call
> 560: // stack and the memory types of the original section.
types -> tags
src/hotspot/share/nmt/vmatree.cpp line 86:
> 84: // If the state is not matching then we have different operations, such as:
> 85: // reserve [x1, A); ... commit [A, x2); or
> 86: // reserve [x1, A), type1; ... reserve [A, x2), type2; or
Why type not tag?
src/hotspot/share/nmt/vmatree.hpp line 91:
> 89: private:
> 90: // Store the state and mem_tag as two bytes
> 91: uint8_t info[2];
I'm unclear about terminology here: type -> state ?
-------------
Changes requested by dholmes (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/20872#pullrequestreview-2288637165
PR Review Comment: https://git.openjdk.org/jdk/pull/20872#discussion_r1749408498
PR Review Comment: https://git.openjdk.org/jdk/pull/20872#discussion_r1749409032
PR Review Comment: https://git.openjdk.org/jdk/pull/20872#discussion_r1749409609
PR Review Comment: https://git.openjdk.org/jdk/pull/20872#discussion_r1749410180
PR Review Comment: https://git.openjdk.org/jdk/pull/20872#discussion_r1749410493
PR Review Comment: https://git.openjdk.org/jdk/pull/20872#discussion_r1749411164
PR Review Comment: https://git.openjdk.org/jdk/pull/20872#discussion_r1749411446
PR Review Comment: https://git.openjdk.org/jdk/pull/20872#discussion_r1749411720
PR Review Comment: https://git.openjdk.org/jdk/pull/20872#discussion_r1749412298
More information about the serviceability-dev
mailing list