IP Library Granted Patent US 8,464,023
Granted Patent B2
US 8,464,023 · App. 12/869,927 · Granted Jun 11, 2013

Application run-time memory optimizer

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,464,023
App. No.
12/869,927
Granted
Jun 11, 2013
Kind
B2
Abstract

A computer implemented method optimizes memory page sizes during runtime. A process is identified from a policy file. The policy file contains at least one policy based threshold. A resource usage profiler monitors the process during runtime. The resource usage profiler determines whether the process exceeds the set of stated desired policies from the at least one policy based threshold. If the process exceeds the set of stated desired policies from the set of policy based thresholds, a performance projection for the process is executed to determine whether the process would experience a performance benefit from a different page size. Responsive to determining that the process would experience the performance benefit from the different page size, the page size for the process is changed.

Claims (59)

1. A computer implemented method for optimizing memory page sizes during runtime, the computer implemented method comprising:

identifying a process from a policy file, the policy file containing at least one policy based threshold for a set of stated desired policies;

monitoring the process during runtime;

determining whether the process exceeds the set of stated desired policies from the set of policy based thresholds:

responsive to determining whether the process exceeds the set of stated desired policies from the set of policy based thresholds, executing a performance projection for the process, wherein the computer implemented step of executing the performance projection for the process further comprises: examining a plurality of logical addresses for a plurality of referenced pages from a plurality of translation lookaside buffer misses; identifying pages of the plurality of referenced pages that are logically located adjacent to one another for consideration as a larger page size; and determining a number of translation lookaside buffer misses that would have occurred using the larger page size;

determining from the performance projection whether the process would experience a performance benefit from a different page size; and

responsive to determining that the process would experience the performance benefit from the different page size, changing a page size for the process.

2. The computer implemented method of claim 1 , wherein the computer implemented step of monitoring the process during runtime further comprises:

gathering system statistics by a resource usage profile, wherein the system statistics are selected from a group consisting of central processing unit resource usage, memory access patterns, page translation misses from a translation lookaside buffer, cache misses from data and instruction caches, and combinations thereof.

3. The computer implemented method of claim 2 , wherein the computer implemented step of determining whether the process exceeds the set of stated desired policies from the set of policy based thresholds, comprises:

determining whether the cache misses from data and instruction caches exceeds a cache miss threshold of the at least one policy based threshold.

4. The computer implemented method of claim 1 , wherein the computer implemented step of determining from the performance projection whether the process would experience the performance benefit from the different page size further comprises:

determining whether the number of translation lookaside buffer misses that would have occurred using the larger page size is less than the plurality of translation lookaside buffer misses for an original page size.

5. The computer implemented method of claim 1 , wherein the computer implemented step of changing the page size for the process further comprises:

making a kernel call to a system kernel; and

performing page promotion or demotion for the process within the system kernel.

6. The computer implemented method of claim 1 , wherein the computer implemented step of determining whether the process exceeds the set of stated desired policies from the set of policy based thresholds, further comprises:

determining whether the process exceeds a processor usage policy based threshold; and

determining whether the process exceeds a memory usage policy based threshold.

7. A non-transitory computer readable storage medium having computer usable instructions encoded thereon for optimizing memory page sizes during runtime, the computer readable storage medium comprising:

first instructions for identifying a process from a policy file, the policy file containing at least one policy based threshold for a set of stated desired policies;

second instructions for monitoring the process during runtime;

third instructions for determining whether the process exceeds the set of stated desired policies from the set of policy based thresholds;

fourth instructions, responsive to determining whether the process exceeds the set of stated desired policies from the set of policy based thresholds, for executing a performance projection for the process, wherein the fourth instructions for executing the performance projection for the process further comprises: instructions for examining a plurality of logical addresses for a plurality of referenced pages from a plurality of translation lookaside buffer misses; instructions for identifying pages of the plurality of referenced pages that are logically located adjacent to one another for consideration as a larger page size; and instructions for determining a number of translation lookaside buffer misses that would have occurred using the larger page size;

fifth instructions for determining from the performance projection whether the process would experience a performance benefit from a different page size; and

sixth instructions, responsive to determining that the process would experience the performance benefit from the different page size, for changing a page size for the process.

8. The non-transitory computer readable storage medium of claim 7 , wherein the second instructions for monitoring the process during runtime further comprises:

instructions for gathering system statistics by a resource usage profile, wherein the system statistics are selected from a group consisting of central processing unit resource usage, memory access patterns, page translation misses from a translation lookaside buffer, cache misses from data and instruction caches, and combinations thereof.

9. The non-transitory computer readable storage medium of claim 8 , wherein the third instructions for determining whether the process exceeds the set of stated desired policies from the set of policy based thresholds, comprises:

determining whether the cache misses from data and instruction caches exceeds a cache miss threshold of the at least one policy based threshold.

10. The non-transitory computer readable storage medium of claim 7 , wherein the fifth instructions for determining from the performance projection whether the process would experience the performance benefit from the different page size further comprises:

instructions for determining whether the number of translation lookaside buffer misses that would have occurred using the larger page size is less than the plurality of translation lookaside buffer misses for an original page size.

11. The non-transitory computer readable storage medium of claim 7 , wherein the sixth instructions for changing the page size for the process further comprises:

instructions for making a kernel call to a system kernel; and

instructions for performing page promotion or demotion for the process within the system kernel.

12. The non-transitory computer readable storage medium of claim 7 , wherein the fourth instructions for determining whether the process exceeds the set of stated desired policies from the set of policy based thresholds, further comprises:

instructions for determining whether the process exceeds a processor usage policy based threshold; and

determining whether the process exceeds a memory usage policy based threshold.

13. A data processing system comprising:

a storage having computer usable instructions encoded thereon for optimizing memory page sizes during runtime;

a bus system connecting the storage to a processor; and

a processor, wherein the processor executes the computer usable instructions:

to identify a process from a policy file, the policy file containing at least one policy based threshold for a set of stated desired policies;

to monitor the process during runtime; to determine whether the process exceeds the set of stated desired policies from the at least one policy based threshold;

responsive to determining whether the process exceeds the set of stated desired policies from the at least one policy based threshold, to execute a performance projection for the process, wherein executing the performance projection for the process further comprises the processor executing the computer usable instructions: to examine a plurality of logical addresses for a plurality of referenced pages from a plurality of translation lookaside buffer misses; to identify pages of the plurality of referenced pages that are logically located adjacent to one another for consideration as a larger page size; and to determine a number of translation lookaside buffer misses that would have occurred using the larger page size;

to determine from the performance projection whether the process would experience a performance benefit from a different page size; and

responsive to determining that the process would experience the performance benefit from the different page size, to change a page size for the process.

14. The data processing system of claim 13 , wherein the processor executing the computer usable instructions to monitor the process during runtime further comprises the processor executing the computer usable instructions:

to gather system statistics by a resource usage profile, wherein the system statistics are selected from a group consisting of central processing unit resource usage, memory access patterns, page translation misses from a translation lookaside buffer, cache misses from data and instruction caches, and combinations thereof.

15. The data processing system of claim 14 , wherein the processor executing the computer usable instructions to determine whether the process exceeds the set of stated desired policies from the at least one policy based threshold, comprises the processor executing the computer usable instructions:

to determine whether the cache misses from data and instruction caches exceeds a cache miss threshold of the at least one policy based threshold.

16. The data processing system of claim 13 , wherein the processor executing the computer usable instructions to determine from the performance projection whether the process would experience the performance benefit from the different page size further comprises the processor executing the computer usable instructions:

to determine whether the number of translation lookaside buffer misses that would have occurred using the larger page size is less than the plurality of translation lookaside buffer misses for an original page size.

17. The data processing system of claim 13 , wherein the processor executing the computer usable instructions to change the page size for the process further comprises the processor executing the computer usable instructions:

to make a kernel call to a system kernel; and

to perform page promotion or demotion for the process within the system kernel.

18. The data processing system of claim 13 , wherein the processor executing the computer usable instructions to determine whether the process exceeds the set of stated desired policies from the at least one policy based threshold, further comprises the processor executing the computer usable instructions:

to determine whether the process exceeds a processor usage policy based threshold; and

to determine whether the process exceeds a memory usage policy based threshold.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2014
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 034194/0291 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2010
From: DEVENDRAN, SARAVANAN; GROVER, KIRAN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 024911/0757 →