Method and apparatus for structured memory analysis of data processing systems and applications
First Claim
Patent Images
1. A method in a data processing system for analyzing memory use in the data processing system, the method comprising:
- initiating a page fault in response to an occurrence of a selected type of memory access;
monitoring for the page fault in the data processing system;
identifying a call stack associated with the page fault in response to detecting the page fault; and
examining the call stack to identify each routine executing when the page fault was detected; and
representing each routine as a node in a tree structure.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for monitoring memory performance of a program. A frequently occurring event is detected and a stack associated with the program is identified in response to a detection of the periodically occurring event, which may be a page fault. The stack is examined to identify each routine (and specific invocation point, or offset) that is currently executing in association with the program. Each routine (and offset) is represented as a node in a tree structure. Classification of the page fault is performed. Page faults classified as data faults can be further sub-classified to provide additional information.
70 Citations
31 Claims
-
1. A method in a data processing system for analyzing memory use in the data processing system, the method comprising:
-
initiating a page fault in response to an occurrence of a selected type of memory access; monitoring for the page fault in the data processing system; identifying a call stack associated with the page fault in response to detecting the page fault; and examining the call stack to identify each routine executing when the page fault was detected; and representing each routine as a node in a tree structure. - View Dependent Claims (2, 3, 4, 6, 7, 8, 9)
-
-
5. A method in a data processing system for analyzing memory use in the data processing system, the method comprising:
-
initiating a page fault each time a selected type of memory access occurs; monitoring for a page fault in the data processing system; identifying a call stack associated with a page fault in response to detecting the page fault; and examining the call stack to identify each routine executing when the page fault was detected; reading the call stack, wherein the call stack includes a list of routines being executed when the page fault occurs; representing each routine as a node in the tree structure; determining whether a selected routine is found within the tree structure; and adding a new node to the tree structure in response to a determination that the selected routine is absent from the tree structure, wherein the new node is a child node descending from a parent node.
-
-
10. A method in a data processing system for analyzing memory use in the data processing system, the method comprising:
-
detecting an occurrence of a selected type of memory access in the data processing system; identifying a call stack associated with the memory access; examining the call stack to identify each routine executing when the memory access occurred; and representing each routine as a node in a tree structure. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A method in a data processing system for analyzing memory use in the data processing system, the method comprising:
-
detecting an occurrence of a selected type of memory access in the data processing system wherein the occurrence of the memory access is detected by detecting a page fault; determining whether the page fault is a data fault; identifying a type of page fault; obtaining a page fault address and a page fault instruction address for the page fault; comparing the page fault address to the page fault instruction address; identifying the type of page fault as an instruction fault in response to a determination that the page fault address is equal to the page fault instruction address; identifying the type of page fault as an instruction fault in response to a determination that the page fault address not equal to the page fault instruction address; identifying a call stack associated with the memory access; examining the call stack to identify each routine executing when the memory access occurred; and representing each routine as a node in a tree structure.
-
-
16. A data processing system for analyzing memory use in the data processing system comprising;
-
initiation means for selectively initiating a page fault in response to an occurrence of a memory access; monitoring means for monitoring the page fault in the data processing system; identification means for identifying a call stack associated with the page fault in response to detecting the page fault; examination means for examining the call stack to identify each routine executing when the page fault was detected; and representation means for representing each routine as a node in a tree structure. - View Dependent Claims (17, 18, 19)
-
-
20. A data processing system for analyzing memory use in the data processing system comprising:
-
initiation means for selectively initiating a page fault each time a memory access occurs; monitoring means for monitoring a page fault in the data processing system; identification means for identifying a call stack associated with the page fault in response to detecting the page fault; examination means for examining the call stack to identify each routine executing when the page fault was detected; reading means for reading the call stack, wherein the call stack includes a list of routines being executed when the page fault occurs; representation means for representing each routine as a node in a tree structure; determination means for determining whether a selected routine is found within the tree structure; and adding means for adding a new node to the tree structure in response to a determination that the selected routine is absent from the tree structure, wherein the new node is a child node descending from a parent node.
-
-
21. A data processing system for analyzing memory used in the data processing system, the data processing system comprising:
-
detection means for detecting an occurrence of a selected type of memory access in the data processing system; identification means for identifying a call stack associated with the memory access; examination means for examining the call stack to identify each routine executing when the memory access occurred; and representation means for representing each routine as a node in a tree structure. - View Dependent Claims (22, 23, 24, 25, 26)
-
-
27. A computer program product for use with a data processing system for structured memory analysis, the computer program product comprising:
-
first instructions for initiating a page fault in response to an occurrence of a selected type of memory access; second instructions for monitoring for the page fault in the data processing system; third instructions for identifying a call stack associated with the page fault in response to detecting the page fault; and fourth instructions for examining the call stack to identify each routine executing when the page fault was detected; and fifth instructions for representing each routine as a node in a tree structure. - View Dependent Claims (28, 29, 30)
-
-
31. A computer program product for use with a data processing system for structured memory analysis, the computer program product comprising:
-
first instructions for initiating a page fault each time a selected type of memory access occurs; second instructions for monitoring for a page fault in the data processing system; third instructions for identifying a call stack associated with the page fault in response to detecting the page fault; fourth instructions for examining the call stack to identify each routine executing when the page fault was detected; fifth instructions for reading the call stack, wherein the call stack includes a list of routines being executed when the page fault occurs; sixth instructions for representing each routine as a node in a tree structure; seventh instructions for determining whether a selected routine is found within the tree structure; and eighth instructions for adding a new node to the tree structure in response to a determination that the selected routine is absent from the tree structure, wherein the new node is a child node descending from a parent node.
-
Specification