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: 7904888
    Abstract: A method of obtaining trace data with respect to a running software program includes accessing a method in a call stack, the call stack including a sequentially ordered list of methods called during the running of the software program. If the accessed method in the call stack falls between a minimum trace offset and a maximum trace offset where the minimum trace offset and the maximum trace offset define a trace window, obtaining trace data for the method and outputting it to an output stream which is then collected into a trace data storage. If the trace data in the trace data storage meets predetermined adaptation rules then changing the position in the call stack of at least one of the minimum trace offset and the maximum trace offset.
    Type: Grant
    Filed: March 4, 2004
    Date of Patent: March 8, 2011
    Assignee: International Business Machines Corporation
    Inventors: Robert Francis Berry, Matthew Alexander Webster, Nicholas Harry Huismans, Jonathan James Davies
  • Patent number: 7536680
    Abstract: A method for modifying a class file to monitor data flow is provided. The method includes selecting (401) one or more methods in the class file and adding (206, 209) one or more lines of code to report incoming arguments and return values, if any, in the selected method. The incoming arguments and return values are reported (405, 410) to an instrumentation interface which may be an instrumentation class defining methods for each type of argument in the method. The one or more lines of code pass the incoming arguments and return values to the appropriate instrumentation class method. The method may produce a profile of data flow including a record of incoming arguments and return values, if any, for one or more methods in a class file. The record can include data describing the types and values of arguments and return values and their distribution.
    Type: Grant
    Filed: December 31, 2002
    Date of Patent: May 19, 2009
    Assignee: International Business Machines Corporation
    Inventors: Robert Francis Berry, Alan Petter Stevens
  • Patent number: 7506319
    Abstract: A model of a software system under execution including: a representation of a first node corresponding to a first function executing in the software system which obtains access to a resource, with an indicator of a number of times the first function has been called in the software system; a representation of a second node corresponding to a second function executing in the software system while the resource is accessed, with an indicator of a number of times the second function has been called; a representation of a place holder node with an indicator that the place holder node has never been called in the software system; a representation of a first call from the first node to the place holder node; and a representation of a second call from the place holder node to the second node. The first and second calls correspond to the first function calling the second function in the software system.
    Type: Grant
    Filed: June 28, 2004
    Date of Patent: March 17, 2009
    Assignee: International Business Machines Corporation
    Inventors: Christopher John Purcell, Robert Francis Berry
  • Publication number: 20090055511
    Abstract: Provided are methods, apparatus and computer programs for generating messages, for transferring data between data processing system entities such as between application programs running on data processing systems within a network, and for providing file-oriented data processing system entities with access to data and access to messaging functions. A first method generates messages for transfer within a messaging network, by creating files within one or more monitored file system directories, and using a monitoring component to identify newly created files within the monitored directories. The method involves extracting the file contents and generating a message that includes the extracted file contents, and then passing the message to a messaging manager.
    Type: Application
    Filed: June 3, 2008
    Publication date: February 26, 2009
    Applicant: International Business Machines Corporation
    Inventors: Robert Francis Berry, Gareth Edward Jones, Saket Rungta, Christopher Edward Sharp
  • Patent number: 7263700
    Abstract: In a virtual machine environment, a method and apparatus for the use of multiple heaps to retain persistent data and transient data wherein the multiple heaps enables a single virtual machine to be easily resettable, thus avoiding the need to terminate and start a new Virtual Machine as well as enabling a single virtual machine to retain data and objects across multiple applications, thus avoiding the computing resource overhead of relinking, reloading, reverifying, and recompiling classes. The memory hierarchy includes a System Heap, a Middleware Heap and a Transient Heap. The use of three heaps enables garbage collection to be selectively targeted to one heap at a time in between applications, thus avoiding this overhead during the life of an application.
    Type: Grant
    Filed: November 6, 2000
    Date of Patent: August 28, 2007
    Assignee: International Business Machines Corporation
    Inventors: David Francis Bacon, Robert Francis Berry, Rajesh Ramkrishna Bordawekar, Donna Ngar Ting Dillenberger, Elizabeth Anne Hutchison, Susan Patricia Paice, Donald William Schmidt, Martin John Trotter, Alan Michael Webb, Edmund James Whittaker West
  • Patent number: 7051026
    Abstract: A system and method for monitoring software locks is presented. Metric data collection is invoked only when thin lock contention arises in a computer system's application layer. Instrumentation in a computer system's middleware layer tracks time-based metric information such as a waiting time for an application to acquire a lock. Instrumentation tracks garbage collection events and removes garbage collection time durations from time-based metric data as to not distort time-based metric data. Instrumentation also tracks quantity-based events such as the number of applications that request a particular lock. An instrumentation user may retrieve metric data for computer system performance analysis.
    Type: Grant
    Filed: July 31, 2002
    Date of Patent: May 23, 2006
    Assignee: International Business Machines Corporation
    Inventors: Robert Francis Berry, Robert Todd Dimpsey, Benjamin Joseph Hoflich, Frank Eliot Levine, Enio Manuel Pineda
  • Patent number: 6973607
    Abstract: An apparatus and a method for testing one or more processors. The apparatus and method provide a host computer that issues test case information. The test case information is translated from the architecture used by a host computer to the architecture required by the electronic components. The processors are then able to perform the test case.
    Type: Grant
    Filed: November 29, 2001
    Date of Patent: December 6, 2005
    Assignee: International Business Machines Corporation
    Inventors: Heinz Baier, Robert Francis Berry, Michael Criscolo, Pedro Martin-de-Nicolas, Michael Timothy Saunders, Kanti C. Shah
  • Patent number: 6904594
    Abstract: A method and system for monitoring performance of a program using global metric variables to provide the support in an symmetric multiprocessor (SMP) system. A Java virtual machine (Jvm) either calls the profiler whenever bytes are allocated or provides an interface to allow the profiler to determine the value of the change in the metric for the current thread. The profiler then applies the changes to a metric for the current thread. Alternatively, per processor data areas are maintained for storing per processor metric values. Whenever a thread switch occurs or there is a request for the metric on a specified thread, an operating system kernel updates the thread level metric values with changes in the values per processor metrics.
    Type: Grant
    Filed: July 6, 2000
    Date of Patent: June 7, 2005
    Assignee: International Business Machines Corporation
    Inventors: Robert Francis Berry, John Day Howard, Frank Eliot Levine, Robert J. Urquhart
  • Publication number: 20040268297
    Abstract: A model of a software system under execution including: a representation of a first node corresponding to a first function executing in the software system which obtains access to a resource, with an indicator of a number of times the first function has been called in the software system; a representation of a second node corresponding to a second function executing in the software system while the resource is accessed, with an indicator of a number of times the second function has been called; a representation of a place holder node with an indicator that the place holder node has never been called in the software system; a representation of a first call from the first node to the place holder node; and a representation of a second call from the place holder node to the second node. The first and second calls correspond to the first function calling the second function in the software system.
    Type: Application
    Filed: June 28, 2004
    Publication date: December 30, 2004
    Applicant: International Business Machines Corporation
    Inventors: Christopher John Purcell, Robert Francis Berry
  • Publication number: 20040250242
    Abstract: A method of obtaining trace data with respect to a running software program includes accessing a method in a call stack, the call stack including a sequentially ordered list of methods called during the running of the software program. If the accessed method in the call stack falls between a minimum trace offset and a maximum trace offset where the minimum trace offset and the maximum trace offset define a trace window, obtaining trace data for the method and outputting it to an output stream which is then collected into a trace data storage. If the trace data in the trace data storage meets predetermined adaptation rules then changing the position in the call stack of at least one of the minimum trace offset and the maximum trace offset.
    Type: Application
    Filed: March 4, 2004
    Publication date: December 9, 2004
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Robert Francis Berry, Matthew Alexander Webster, Nicholas Harry Huismans, Jonathan James Davies
  • Patent number: 6766511
    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 a number of validating criteria.
    Type: Grant
    Filed: July 10, 2000
    Date of Patent: July 20, 2004
    Assignee: International Business Machines Corporation
    Inventors: Robert Francis Berry, Chester Charles John, Jr., Frank Eliot Levine, Christopher Michael Richardson, Robert J. Urguhart
  • Patent number: 6754890
    Abstract: A method of monitoring execution performance of a program is provided. A process identifier associated with a process within a program is determined, and a trace output file is created for the process such that the file name of the trace output file contains the process identifier. Trace records are generated in response to events within the process. The trace records associated with the process are then written to the trace output file associated with the process. Multiple processes may then be associated with unique trace output files simultaneously. Using this methodology, multiple instances of JVMs may be executing simultaneously, and each JVM may be generating trace records through a profiler. However, the origin of the trace records, as identified by the process identifier, or PID, of the JVM is used to place the trace information into a file that is identified through the use of the same PID.
    Type: Grant
    Filed: December 14, 1999
    Date of Patent: June 22, 2004
    Assignee: International Business Machines Corporation
    Inventors: Robert Francis Berry, Ronald O'Neal Edmark, Riaz Y. Hussain, Frank Eliot Levine
  • Patent number: 6751789
    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 or only performs lightweight 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 user may also specify parameters that are used to filter events so that profiling is performed only for specified threads or methods. The profiler cycles through these periods, during which selected events are processed to generate a profile of the execution flows within the program.
    Type: Grant
    Filed: October 14, 1999
    Date of Patent: June 15, 2004
    Assignee: International Business Machines Corporation
    Inventors: Robert Francis Berry, Frank Eliot Levine, Robert J. Urguhart
  • Patent number: 6742178
    Abstract: The present invention is directed to a system and method for modifying a class file for the purpose of instrumenting without requiring separate files to correlate the instrumentation. A class file is instrumented with hooks. Each hook is injected in a method at a critical point in the code for tracking path flow, such as where the method will be entered or exited. Each hook includes an identifier to identify the method in which it is injected. Rather than using the method's name, hooks use unique major and minor codes to identify the method. Static initializers are declared for the class to output other hooks identifying the methods being instrumented. When a class is loaded, the static initializers are executed and hooks identifying the method name and the major and minor codes for each instrumented method are output to, for instance, a trace record. Then, when a method is entered or exited, the hooks identifying the entry or exit are also outputted to a trace record.
    Type: Grant
    Filed: July 20, 2000
    Date of Patent: May 25, 2004
    Assignee: International Business Machines Corporation
    Inventors: Robert Francis Berry, Weiming Gu, Riaz Y. Hussain, Frank Eliot Levine, Wai Yee Peter Wong
  • Patent number: 6735758
    Abstract: The value of non-discrete metric variables are synchronized at the processor level. When the profiler requests metric information for non-discrete metric variables, the operating system kernel obtains a global value for the requested metric rather than obtaining per-processor metric values for each processor. The global value may be written to trace records. By using a single global per-processor metric for all processors, a single global value of the last metric variable may be used for calculating the resources consumed on all processors since a last recorded event.
    Type: Grant
    Filed: July 6, 2000
    Date of Patent: May 11, 2004
    Assignee: International Business Machines Corporation
    Inventors: Robert Francis Berry, Riaz Y. Hussain, Frank Eliot Levine, Robert J. Urquhart
  • Patent number: 6732357
    Abstract: A program is profiled with enablement of trace record generation during a first period of time and with disablement of trace record generation during a second period of time. The number of trace records output during the first period of time is determined, and a trace overhead calibration value is computed as an average time for writing the number of trace records output during the first period of time. The trace overhead calibration value may be stored for subsequent use in a profiling-related process in the data processing system. The trace overhead compensation value represents the amount of time required to generate a trace record, and the trace times retrieved from the trace records are adjusted to compensate for the amount of time required to generate those trace records.
    Type: Grant
    Filed: October 7, 1999
    Date of Patent: May 4, 2004
    Assignee: International Business Machines Corporation
    Inventors: Robert Francis Berry, Jesse Mannes Gordon, Riaz Y. Hussain, Frank Eliot Levine, Robert J. Urquhart
  • Patent number: 6728955
    Abstract: A user may specify a vector of metrics to be used while profiling a program. The vector of metrics may optionally be thread-relative. In response to a notification of an occurrence of the current event, a thread-relative elapsed metric is computed by: determining a current thread; retrieving a stored reference metric for the preceding event of the current thread; obtaining a current reference metric; and computing the thread-relative elapsed metric as a difference between the current reference metric and the stored reference metric. In order to prevent the generation of redundant metric information, the information associated with the vector of metrics maybe placed into the trace records in several different space-saving formats.
    Type: Grant
    Filed: November 5, 1999
    Date of Patent: April 27, 2004
    Assignee: International Business Machines Corporation
    Inventors: Robert Francis Berry, John Day Howard, Chester Charles John, Jr., Frank Eliot Levine, Donald L. Mulvey, Enio Manuel Pineda, Robert J. Urquhart
  • Patent number: 6708169
    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 a number of validating criteria.
    Type: Grant
    Filed: July 10, 2000
    Date of Patent: March 16, 2004
    Assignee: International Business Machines Corporation
    Inventors: Robert Francis Berry, Chester Charles John, Jr., Frank Eliot Levine, Christopher Michael Richardson, Robert J. Urquhart
  • Publication number: 20040031020
    Abstract: A method and system for modifying a class file to monitor data flow are provided. The method includes selecting (401) one or more methods in the class file and adding (206, 209) one or more lines of code to report incoming arguments and return values, if any, in the selected method. The incoming arguments and return values are reported (405, 410) to an instrumentation interface which may be an instrumentation class defining methods for each type of argument in the method. The one or more lines of code pass the incoming arguments and return values to the appropriate instrumentation class method. The method may produce a profile of data flow including a record of incoming arguments and return values, if any, for one or more methods in a class file. The record can include data describing the types and values of arguments and return values and their distribution.
    Type: Application
    Filed: December 31, 2002
    Publication date: February 12, 2004
    Applicant: International Business Machines Corporation
    Inventors: Robert Francis Berry, Alan Petter Stevens
  • Publication number: 20040024797
    Abstract: A system and method for monitoring software locks is presented. Metric data collection is invoked only when thin lock contention arises in a computer system's application layer. Instrumentation in a computer system's middleware layer tracks time-based metric information such as a waiting time for an application to acquire a lock. Instrumentation tracks garbage collection events and removes garbage collection time durations from time-based metric data as to not distort time-based metric data. Instrumentation also tracks quantity-based events such as the number of applications that request a particular lock. An instrumentation user may retrieve metric data for computer system performance analysis.
    Type: Application
    Filed: July 31, 2002
    Publication date: February 5, 2004
    Applicant: International Business Machines Corporation
    Inventors: Robert Francis Berry, Robert Todd Dimpsey, Benjamin Joseph Hoflich, Frank Eliot Levine, Enio Manuel Pineda