On Mon, 5 Aug 2024 08:41:49 GMT, Johan Sjölen <jsjo...@openjdk.org> wrote:
>> In `MemoryFileTracker`, the changes in commit/reserve are applied to a local >> `VirtualMemorySnapshot`. Here we have to apply them to the global >> `VirtualMemorySummary`. > > Yeah, that doesn't seem like a problem. > > ```c++ > for (int i = 0; i < mt_number_of_types; i++) { > r = diff.flag[i].reserve; > c = diff.flag[i].commit; > flag = NMTUtil::index_to_flag(i); > VirtualMemory* mem = VirtualMemorySummary::as_snapshot()->by_type(flag); > reserved = mem->reserved(); > committed = mem->committed(); > mem->reserve_memory(r); > mem->commit_memory(c); > if ((size_t)-r > reserved) { > print_err("release"); > } > if ((size_t)-c > reserved || (size_t)c > committed) { > print_err("uncommit"); > } > } This applies the reserve/commit regardless of outcome, so slightly different. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/20425#discussion_r1703753128