US 11,947,802 B1
Memory buffer management on hardware devices utilizing distributed decentralized memory buffer monitoring
Yi Yuan, Redmond, WA (US); Narayanan Ravichandran, Bellevue, WA (US); Robert Groza, Jr., Redmond, WA (US); Yevgeny Yankilevich, Tirat Carmel (IL); and Hari Daas Angepat, Redmond, WA (US)
Assigned to Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on Sep. 13, 2022, as Appl. No. 17/943,669.
Int. Cl. G06F 3/06 (2006.01)
CPC G06F 3/0611 (2013.01) [G06F 3/0656 (2013.01); G06F 3/0673 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A computer hardware device comprising:
a memory buffer within a memory buffer pool, the memory buffer having input data to be processed;
a buffer pointer that references the memory buffer having the input data; and
a plurality of processing roles for processing data;
wherein the computer hardware device causes the memory buffer to be deallocated by:
determining, by an organizer processing role of the plurality of processing roles, a number of processing roles needed to process the input data;
generating, by the organizer processing role, an augmented buffer pointer that comprises the buffer pointer, a buffer pointer cloning indicator, and a role number value indicating the number of processing roles needed to process the input data;
providing cloned versions of the augmented buffer pointer to a plurality of consumer processing roles of the plurality of processing roles;
providing, by a consumer processing role of the plurality of consumer processing roles, a deallocation request to deallocate the memory buffer after the consumer processing role utilizes the augmented buffer pointer to read the input data from the memory buffer; and
deallocating the memory buffer based on determining that the plurality of consumer processing roles and the organizer processing role have each provided a deallocation request to deallocate the memory buffer.