CPC G06F 3/0608 (2013.01) [G06F 3/0631 (2013.01); G06F 3/0653 (2013.01); G06F 3/0659 (2013.01); G06F 3/0673 (2013.01); G06F 9/4881 (2013.01); G06F 9/5011 (2013.01); G06F 9/5016 (2013.01); G06F 16/24524 (2019.01)] | 21 Claims |
1. A computer system comprising one or more operationally interconnected hosts, each host comprising a processor and one or more storage devices storing instructions that are operable, when executed on the one or more hosts, to cause the one or more hosts to implement an instance of a memory usage tracker (MUT) in a plurality of processes running on the computer system, each instance of the memory usage tracker being operable to perform, on the process on which it is running, operations comprising:
initiating, by the MUT, a bulk free process for a memory region;
for each mapping element associated with a memory chunk in the memory region:
determining, by the MUT, a generation of the mapping element;
determining, by the MUT, whether the generation of the mapping element precedes a current generation;
based on the determining, identifying a memory account as an owner of the memory chunk associated with the mapping element; and
adjusting a balance of both the identified memory account and the mapping element by an amount equal to a full balance of the mapping element; and
returning information, by the MUT and to a memory manager system that handles allocation and deallocation requests for the process, that the bulk free process for the memory region has completed.
|