System and method for preferred memory affinity
First Claim
1. A method for allocating memory from a local and remote memory pool to an application being executed by a given processor in a computer system, wherein the given processor has at least one of (i) a more direct access path to the local memory pool than to the remote memory pool, and (ii) ownership of the local memory pool and nonownership of the remote memory pool, said method comprising:
- enabling the application to store data in the local memory pool until a designated threshold is reached;
freeing memory in the local memory pool in response to the threshold being reached, thereby allowing the application to continue storing data in the local memory pool; and
allowing the application to store data in the remote memory pool if memory is not freed fast enough from the local memory pool to satisfy the memory needs of the application.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for freeing memory from individual pools of memory in response to a threshold being reached that corresponds with the individual memory pools is provided. The collective memory pools form a system wide memory pool that is accessible from multiple processors. When a threshold is reached for an individual memory pool, a page stealer method is performed to free memory from the corresponding memory pool. Remote memory is used to store data if the page stealer is unable to free pages fast enough to accommodate the application'"'"'s data needs. Memory subsequently freed from the local memory area is once again used to satisfy the memory needs for the application. In one embodiment, memory affinity can be set on an individual application basis so that affinity is maintained between the memory pools local to the processors running the application.
-
Citations
20 Claims
-
1. A method for allocating memory from a local and remote memory pool to an application being executed by a given processor in a computer system, wherein the given processor has at least one of (i) a more direct access path to the local memory pool than to the remote memory pool, and (ii) ownership of the local memory pool and nonownership of the remote memory pool, said method comprising:
-
enabling the application to store data in the local memory pool until a designated threshold is reached;
freeing memory in the local memory pool in response to the threshold being reached, thereby allowing the application to continue storing data in the local memory pool; and
allowing the application to store data in the remote memory pool if memory is not freed fast enough from the local memory pool to satisfy the memory needs of the application. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An information handling system comprising:
-
a plurality of processors;
a plurality of memory pools, each of which is accessible by the processors, wherein each memory pool is a local memory pool to one of the processors and a remote memory pool to the other processors;
a memory management tool to preferentially store data in local memory pools, the memory management tool including;
means for determining which of the processors is running an application;
means for enabling the application to store data in the local memory pool corresponding to the determined processor until a designated threshold is reached;
means for freeing memory in the local memory pool in response to the threshold being reached, thereby allowing the application to continue storing data in the local memory pool; and
means for allowing the application to store data in at least one of the remote memory pools if memory is not freed fast enough from the local memory pool to satisfy the memory needs of the application. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A computer program product stored on a computer operable media for allocating memory from a local and remote memory pool to an application being executed by a given processor in a computer system, wherein the given processor has at least one of (i) a more direct access path to the local memory pool than to the remote memory pool, and (ii) ownership of the local memory pool and nonownership of the remote memory pool, said computer program product comprising:
-
means for enabling the application to store data in the local memory pool until a designated threshold is reached;
means for freeing memory in the local memory pool in response to the threshold being reached, thereby allowing the application to continue storing data in the local memory pool; and
means for allowing the application to store data in the remote memory pool if memory is not freed fast enough from the local memory pool to satisfy the memory needs of the application. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification