Method, system and computer program product for dynamically allocating large memory pages of different sizes
AssigneeSilicon Graphics, Inc.
InventorsNarayanan Ganapathy, Luis F. Stevens, Curt F. Schimmel
Life of this patent
Estimating the term…
Loading patent…
AssigneeSilicon Graphics, Inc.
InventorsNarayanan Ganapathy, Luis F. Stevens, Curt F. Schimmel
Estimating the term…
A method, system and computer program product for dynamically allocating large memory pages of different sizes. Each process can select multiple page sizes. An algorithm referred to as a “Coalescing Daemon” is used to allocate large pages. “High water marks” are specified to the operating system. A high water mark is the maximum percentage of total system memory that the Coalescing Daemon coalesces for a given page size. The high water marks are used to allocate a number of free memory pages for each specified page size. Separate freelists are created and maintained for each page size. Each freelist comprises a linked list of data structures that represent free physical memory pages. A bitmap is set-up by the operating system to represent all memory available to processes. The bitmap is used for determining which memory pages are free during coalescing. The Coalescing Daemon allocates memory pages using a weak, mild and strong coalescing policy. The weak policy is performed first, followed by the mild and the strong policies. The mild and strong policies are performed only if the preceding policy or policies fail. The weak policy searches the bitmap for free contiguous areas of memory and inserts an entry into the associated freelist if found. If the weak policy is unsuccessful, the mild policy attempts to find a suitable chunk of memory which is used to create a contiguous chunk of free memory by migrating busy base pages to other areas. The mild coalescing policy searches the bitmap for a chunk of memory in which the set bits (i.e. the free base pages) are above a tunable predetermined threshold value. Thus, a limited amout of migration is performed according to predetermined threshold. If the mild coalescing policy fails the strong coalescing policy is performed. In the strong coalescing policy, base pages are migrated to create a free chunk, regardless of a threshold amount.
A method for dynamically allocating memory pages in a portion of memory within a computer system, said memory pages being of various page sizes from a base page size to a largest page size, said method comprising the steps of:
A system for dynamically allocating memory pages in a portion of memory within a computer system, said memory pages being of various page sizes from a base page size to a largest page size, said system comprising:
A method for dynamically allocating memory pages in a portion of memory within a computer system, said memory pages being of various page sizes from a base page size to a largest page size, said method comprising the steps of:
A method for dynamically allocating memory pages in a portion of memory within a computer system, said memory pages being of various page sizes from a base page size to a largest page size, said method comprising the steps of:
A system for dynamically allocating memory pages in a portion of memory within a computer system, said memory pages being of various page sizes from a base page size to a largest page size, said system comprising:
A system for dynamically allocating memory pages in a portion of memory within a computer system, said memory pages being of various page sizes from a base page size to a largest page size, said system comprising:
A computer program product comprising a computer useable medium having computer program logic stored therein, said computer program logic for dynamically allocating memory pages in a portion of memory within a computer system, said memory pages being of various page sizes from a base page size to a largest page size, wherein said computer program logic comprises:
A computer program product comprising a computer useable medium having computer program logic stored therein, said computer program logic for dynamically allocating memory pages in a portion of memory within a computer system, said memory pages being of various page sizes from a base page size to a largest page size, wherein said computer program logic comprises:
A system for dynamically allocating memory pages in a portion of memory within a computer system, said memory pages being of various page sizes from a base page size to a largest page size, said system comprising:
A system for dynamically allocating memory pages in a portion of memory within a computer system, said memory pages being of various page sizes from a base page size to a largest page size, said system comprising:
Dependencies are inferred from the claim text.