US 11,704,020 B2
Precisely tracking memory usage in multi-process computing environment
Mohammad Foyzur Rahman, San Mateo, CA (US); George Constantin Caragea, San Mateo, CA (US); Carlos Garcia-Alvarado, San Jose, CA (US); and Michail Petropoulos, San Francisco, CA (US)
Assigned to Pivotal Software, Inc., Palo Alto, CA (US)
Filed by Pivotal Software, Inc., Palo Alto, CA (US)
Filed on Oct. 25, 2021, as Appl. No. 17/510,278.
Application 17/510,278 is a continuation of application No. 16/785,126, filed on Feb. 7, 2020, granted, now 11,188,233.
Application 16/785,126 is a continuation of application No. 16/049,468, filed on Jul. 30, 2018, granted, now 10,558,365, issued on Feb. 11, 2020.
Application 16/049,468 is a continuation of application No. 14/740,204, filed on Jun. 15, 2015, granted, now 10,037,144, issued on Jul. 31, 2018.
Claims priority of provisional application 62/012,256, filed on Jun. 13, 2014.
Prior Publication US 2022/0043579 A1, Feb. 10, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 9/46 (2006.01); G06F 3/06 (2006.01); G06F 16/2452 (2019.01); G06F 9/50 (2006.01); G06F 9/48 (2006.01)
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
OG exemplary drawing
 
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.