Patents by Inventor Robert Francis Berry

Robert Francis Berry has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 6678883
    Abstract: An apparatus and method for cataloging symbolic data for use in performance analysis of computer programs is provided. The apparatus and method stores symbolic data for loaded modules during or shortly after a performance trace and utilizes the stored symbolic data when performing a performance analysis at a later time. A merged symbol file is generated for a computer program, or application, under trace. The merged symbol file contains information useful in performing symbolic resolution of address information in trace files for each instance of a module. During post processing of the trace information generated by a performance trace of a computer program, symbolic information stored in the merged symbol file is compared to the trace information stored in the trace file. The correct symbolic information in the merged symbol file for loaded modules is identified based on a number of validating criteria.
    Type: Grant
    Filed: July 10, 2000
    Date of Patent: January 13, 2004
    Assignee: International Business Machines Corporation
    Inventors: Robert Francis Berry, Chester Charles John, Jr., Frank Eliot Levine, Donald Lawrence Mulvey, Christopher Michael Richardson, Robert J. Urguhart
  • Patent number: 6662359
    Abstract: The present invention is directed to a system, method and instructions for handling path flow exception and finalization processing in an object oriented programming language. Initially, each instrumentation method is checked for a code to indicated an exception being thrown. A hook is inserted before the exception code and identifies the method throwing the exception. Methods must also be checked for exception tables. When an exception table is found, then a hook is inserted at the entry point of each exception handler for every entry in the exception table. This hook identifies the method which catches the exception.
    Type: Grant
    Filed: July 20, 2000
    Date of Patent: December 9, 2003
    Assignee: International Business Machines Corporation
    Inventors: Robert Francis Berry, John Day Howard, Riaz Y. Hussain, Frank Eliot Levine, Robert John Urquhart
  • Patent number: 6662358
    Abstract: A method and system for monitoring performance of a program is provided. A trace record containing a call stack associated with the program is periodically generated. An occurrence of a selected event or a timer interrupt is detected, and in response, an execution context sample is obtained that contains a process identifier, a thread identifier, a program counter, and a stack pointer. A trace record containing the execution context sample data is generated. During post-processing, the execution context samples are compared with a call stack to identify the routine associated with the execution sample data.
    Type: Grant
    Filed: December 14, 1999
    Date of Patent: December 9, 2003
    Assignee: International Business Machines Corporation
    Inventors: Robert Francis Berry, Frank Eliot Levine
  • Patent number: 6662362
    Abstract: A method, system, apparatus, and computer program product is presented for improving the execution performance of an application in a data processing system. Instrumentation code is inserted into an application in which the instrumentation code generates trace data for method entry events and method exit events when the instrumented application is executed. The trace output data that is generated by the instrumentation code is then analyzed to detect patterns which indicate an inefficient coding construct in the application. The source code for the inefficient coding construct in the application associated with the detected pattern may be modified according to indications provided to an application developer. For example, a specific inefficient coding construct may be an inefficient use of a cross-language boundary, such as the interface between Java code and native code, in which data is inefficiently transferred across the interface through a local array in the native code.
    Type: Grant
    Filed: July 6, 2000
    Date of Patent: December 9, 2003
    Assignee: International Business Machines Corporation
    Inventors: Rajiv Arora, Robert Francis Berry
  • Patent number: 6658654
    Abstract: A low-overhead performance measurement of an application executing in a data processing system is provided in order to generate per-thread performance information in a multithreaded environment. While a first set of events is being monitored for a particular thread as a first metric, events that may indirectly cause inaccuracies in the first metric, such as thread switches, are also monitored as a second metric. The presence of a positive value for the second metric is then used to determine that the first metric is inaccurate or unreliable, after which the first metric may be discarded; otherwise, the first metric is considered accurate. For example, the first metric may then be considered a thread-relative metric as it has been observed during a time period in which no thread switch events or interrupt events would have caused the first metric to become inaccurate during the execution of a particular thread.
    Type: Grant
    Filed: July 6, 2000
    Date of Patent: December 2, 2003
    Assignee: International Business Machines Corporation
    Inventors: Robert Francis Berry, Robert Tod Dimpsey, Frank Eliot Levine, Enio Manuel Pineda, Robert John Urquhart
  • Patent number: 6658471
    Abstract: A method, system, and computer program product is presented for minimizing overhead that may be incurred by executing specialized code, such as debug code or instrumentation code for monitoring the performance of the application, that is present within an application. The application executes on a data processing system having a processor containing predicate registers. The application is compiled in a manner in which the processor instructions for the specialized code are predicated using a set of one or more predicate registers that are dedicated or reserved by software convention for predicating the specialized code. In other words, for a given application, compilers and other sources of machine instructions do not generate any predicated processor instructions, other than processor instructions for the specialized code, which use the reserved predicate registers. When the application executes, neither the operating system nor other applications use the reserved predicate registers.
    Type: Grant
    Filed: June 29, 2000
    Date of Patent: December 2, 2003
    Assignee: International Business Machines Corporation
    Inventors: Robert Francis Berry, Raymond Morris Bryant
  • Patent number: 6651243
    Abstract: A method and system for profiling a program using periodic trace sampling is provided. During the execution of the program, sample-based profiling of the executing program is performed—for a predetermined period, a profiler performs trace processing for the program, after which the profiler pauses and does not perform trace processing for a predetermined period. The periods controlling the profiler may be selected by a user, and the periods may be measured by temporal or non-temporal metrics. The profiler cycles through these periods, during which selected events are processed to generate a profile of the execution flows within the program. For each sample period, a tree data structure is generated in which nodes of the tree data structure represent the routines of the program that execute during the sample period, as may be indicated by entry and exit events caused by the execution of the routines.
    Type: Grant
    Filed: October 14, 1999
    Date of Patent: November 18, 2003
    Assignee: International Business Machines Corporation
    Inventors: Robert Francis Berry, Frank Eliot Levine, Robert J. Urguhart
  • Patent number: 6598012
    Abstract: A method and system for compensating for output overhead in trace data is provided by analyzing and compensating for the overhead associated with outputting trace information to a trace buffer or a trace file in the form of trace records. A trace record represents an occurrence of some profiling event of interest. Each trace record contains a starting timestamp representing the time at which the generation of the trace record was commenced and an ending timestamp representing the time at which the generation of the trace record was completed. In order to compute the period of execution time attributable to the application program or system being profiled, a starting timestamp of a trace record is compared with the ending timestamp of a preceding trace record, and the difference between the timestamps is directly related to the execution time of the application program or system being profiled.
    Type: Grant
    Filed: October 7, 1999
    Date of Patent: July 22, 2003
    Assignee: International Business Machines Corporation
    Inventors: Robert Francis Berry, Jesse Mannes Gordon, Riaz Y. Hussain, Frank Eliot Levine, Robert J. Urquhart
  • Patent number: 6553564
    Abstract: A process and system for profiling code executing on a data processing system is provided. Event-based trace data is recorded in response to selected events, and the event-based trace data includes an indication of which code is being interrupted. The trace data may be processed to identify a thread or method that was executing during the event. A periodically occurring event is also detected, and a stack associated with the profiled code is identified in response to detection of the periodically occurring event, such as a timer interrupt. The stack is examined to identify each routine that is currently executing during the periodically occurring event.
    Type: Grant
    Filed: June 30, 1999
    Date of Patent: April 22, 2003
    Assignee: International Business Machines Corporation
    Inventors: William Preston Alexander, III, Robert Francis Berry, Frank Eliot Levine, Chester Charles John, Jr., Robert John Urquhart
  • Patent number: 6546548
    Abstract: A method and system for compensating for trace overhead is provided by analyzing and compensating for the temporal overhead associated with generating or outputting trace information to a trace buffer or a trace file in the form of trace records. A trace record generally represents an occurrence of a profiling event of interest. The amount of time required to generate a trace record may be determined, and the trace times retrieved from the trace records are adjusted to compensate for the amount of time required to generate those trace records. A trace overhead calibration value may be determined by computing the average time necessary to generate a trace record, or in certain cases, by computing the minimum time necessary to generate a trace record. The trace overhead calibration value is stored for subsequent use in a profiling-related process in the data processing system.
    Type: Grant
    Filed: October 7, 1999
    Date of Patent: April 8, 2003
    Assignee: International Business Machines Corporation
    Inventors: Robert Francis Berry, Jesse Mannes Gordon, Riaz Y. Hussain, Frank Eliot Levine, Robert J. Urquhart
  • Patent number: 6539339
    Abstract: A method and system for maintaining a thread-relative metric for trace data using device driver support is provided. A profiling process may detect a current event, and in response to the current event, may request an elapsed metric since a preceding event. The profiling process then receives a thread-relative elapsed metric and may output a trace record for the current event in which is stored a metric equal to the received thread-relative elapsed metric. In response to a notification of an occurrence of the current event, a device driver computes the thread-relative elapsed metric by: determining a current thread; retrieving a stored metric for the preceding event of the current thread; obtaining a current metric; and computing the thread-relative elapsed metric as a difference between the current metric and the stored metric.
    Type: Grant
    Filed: September 9, 1999
    Date of Patent: March 25, 2003
    Assignee: International Business Machines Corporation
    Inventors: Robert Francis Berry, Ronald O'Neal Edmark, Frank Eliot Levine, Robert J. Urquhart
  • Patent number: 6513155
    Abstract: A process and system for profiling code executing on a data processing system is provided. Event-based trace data is recorded in response to selected events, and the event-based trace data includes an indication which code is being interrupted. The trace data may be processed to identify a thread or method that was executing during the event. A periodically occurring event is also detected, and a call stack associated with the profiled code is identified in response to detection of the periodically occurring event, such as a timer interrupt. The call stack is examined to identify each routine that is currently executing during the periodically occurring event, and the trace data is recorded with the call stack information. The trace data from the recorded events and the trace data from the call stacks are processed to generate a tree structure in which the nodes indicate the call structure of the routine information from both the trace events and the call stacks.
    Type: Grant
    Filed: June 30, 1999
    Date of Patent: January 28, 2003
    Assignee: International Business Machines Corporation
    Inventors: William Preston Alexander, III, Robert Francis Berry, Frank Eliot Levine, Robert John Urquhart
  • Publication number: 20020194421
    Abstract: A computer system is used to run one or more programs. It includes a memory having at least a first heap and a second heap in which objects are stored, with a first object being stored on the first heap. A write barrier is provided for detecting that said the first object has been updated by a program to include a first reference to a memory location in the second heap. The write barrier outputs a cross-heap event specifying information about the first reference and the current state of said program. The system further includes a reset facility for the second heap whereby all objects stored within the second heap are deleted. As part of the reset, if a reference from the first heap to the second heap is detected, a reset event is fired specifying information about the second reference. The information in the reset event can be combined with the information in the cross-heap event to determine if the first reference matches the second reference.
    Type: Application
    Filed: March 12, 2002
    Publication date: December 19, 2002
    Applicant: International Business Machines Corporation
    Inventors: Robert Francis Berry, Edward John Slattery, Matthew Alexander Webster
  • Patent number: 6434575
    Abstract: A method and apparatus for instrumenting garbage collection in a data processing system is provided. During garbage collection, a pass is made through the object heap and a plurality of heap data is retrieved and written to a trace file. The data may include the type of object, the size of the object on the heap, the class of the object, if appropriate, and a plurality of pointers, including live set pointers, and one or more tags representing attributes that may be associated with the particular object. The instrumentation may controlled to occur at a preselected phase of the garbage collection process. Additionally, a user may dynamically initiate a garbage collection instrumentation if the user determines that an event has occurred during the operation of the data processing system about which the user wishes further data.
    Type: Grant
    Filed: November 12, 1998
    Date of Patent: August 13, 2002
    Assignee: International Business Machines Corporation
    Inventors: Robert Francis Berry, Raymond M. Bryant, Weiming Gu, John Day Howard, William Robert Reynolds, Robert J. Urquhart
  • Patent number: 6381558
    Abstract: Understanding a third-party vendor's benchmark can be difficult when its source code is proprietary. In particular, the factors on which the benchmark's score depend can not easily be discovered. Furthermore, the sensitivity of the score to the execution speed of various components of the benchmark, which is important for optimizing the score in a competitive environment, is not readily accessible. The present invention shows how insertion of known delays into selected components of a benchmark can be used to elucidate its computational structure, profile it, find the sensitivity of its score to the time spent in a functional component. In all these uses of the present invention, execution of a predetermined amount of code is used to introduce a known delay into a target function or Java method. The benchmark is then re-executed to determine the delay's impact on the benchmark's score.
    Type: Grant
    Filed: December 18, 1998
    Date of Patent: April 30, 2002
    Assignee: International Business Machines Corporation
    Inventors: Robert Francis Berry, Rangarajan Thiruvenkata Chari, Riaz Yousuf Hussain, Robert John Urguhart
  • Patent number: 6338159
    Abstract: The present invention is a system, method, and computer readable medium for representing program event trace information in a way which is very compact and efficient, and yet supports a wide variety of queries regarding system performance. The tracing and reduction of the present invention may be dynamic, in which case information is obtained and added to the trace representation in real-time. Alternately, the tracing and reduction may be static, in which case a trace text file or binary file is obtained from a trace buffer, and the reduction takes place using the trace file as input. The trace information, whether obtained statically or dynamically, is represented as a tree of events. The present invention may be used to present many types of trace information in a compact manner which supports performance queries.
    Type: Grant
    Filed: June 30, 1999
    Date of Patent: January 8, 2002
    Assignee: International Business Machines Corporation
    Inventors: William Preston Alexander, III, Robert Francis Berry, Riaz Y. Hussain, Chester Charles John, Jr., Frank Eliot Levine, Robert John Urquhart
  • Patent number: 6332117
    Abstract: During the recording of events occurring within the operation of a data processing system, a user-selected metric of interest is recorded along with the trace data for each recorded event. The metric of interest is a monotonically increasing variable that provides a non-time relationship between the recorded events. This relationship may be time or non-time based.
    Type: Grant
    Filed: October 22, 1998
    Date of Patent: December 18, 2001
    Assignee: International Business Machines Corporation
    Inventors: Robert Francis Berry, Riaz Y. Hussain, Chester Charles John, Jr., Frank Eliot Levine, Robert John Urquhart
  • Patent number: 6311325
    Abstract: A method and apparatus in a data processing system for profiling code for processes executing in a data processing system. Trace data is recorded in response to a selected interrupt, wherein the trace data includes an indication of which code is being interrupted. The trace data is processed to identify whether the interrupted code is interpreted code.
    Type: Grant
    Filed: October 22, 1998
    Date of Patent: October 30, 2001
    Assignee: International Business Machines Corporation
    Inventors: Frank Eliot Levine, Robert Francis Berry, Chester Charles John, Jr, Riaz Yousuf Hussain
  • Patent number: 6289503
    Abstract: When building an image for a JavaOS client, a date/time stamp is inserted into the symbolic image produced. When a trace program is initiated against this image, the same Build Identifier is inserted into the produced trace data. A comparison is made between the Build Identifiers to ensure that the trace file is analyzed using the correct symbolic image.
    Type: Grant
    Filed: September 24, 1998
    Date of Patent: September 11, 2001
    Assignee: International Business Machines Corporation
    Inventors: Robert Francis Berry, Riaz Y. Hussain, Chester Charles John, Jr., Frank Eliot Levine
  • Patent number: 6118940
    Abstract: Method and apparatus for creating benchmark programs for the analysis of java virtual machine implementations are implemented. Java applications and applets are compiled into an intermediate code referred to as byte code. The Java byte code forms the machine code for the Java Virtual Machine. The Java Virtual Machine running on top of a hardware platform translates the byte code into native machine code for execution on the hardware platform on which the Java Virtual Machine is running. The performance of a Java Virtual Machine is improved by the use of a so-called "just in time" (JIT) compiler that translates commonly occurring sequences of bytes codes in the native instruction sequences which are then stored for later execution. Critical to the performance of the JIT is the ability of the JIT to optimally compile for the most commonly occurring sequences of byte codes. The method and apparatus for creating benchmark programs provides a means for performance measurements with respect to such sequences.
    Type: Grant
    Filed: November 25, 1997
    Date of Patent: September 12, 2000
    Assignee: International Business Machines Corp.
    Inventors: William Preston Alexander, III, Robert Francis Berry, Riaz Hussain, Paul Jerome Kilpatrick, Robert John Urquhart