On Mon, 5 Aug 2024 08:41:49 GMT, Johan Sjölen <[email protected]> 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