Patent application number | Description | Published |
20080215863 | Method and Apparatus for Autonomically Initiating Measurement of Secondary Metrics Based on Hardware Counter Values for Primary Metrics - A method, apparatus, and computer instructions in a data processing system for processing instructions are provided. Instructions are received at a processor in the data processing system. If a selected indicator is associated with the instruction, counting of each event associated with the execution of the instruction is enabled. Functionality may be provided in the performance monitoring application for initiating the measurement of secondary metrics with regard to identified instructions, data addresses, ranges of identified instructions, or ranges of identified data addresses, based on counter values for primary metrics. Thus, for example, when a primary metric counter, or a combination of primary metric counters, meets or exceeds a predetermined threshold value, an interrupt may be generated. In response to receiving the interrupt, counters associated with the measuring of secondary metrics of a range of instructions/data addresses may be initiated. | 09-04-2008 |
20080216091 | Autonomic Method and Apparatus for Hardware Assist for Patching Code - A method, apparatus and computer instructions for hardware assist for autonomically patching code. The present invention provides hardware microcode to a new type of metadata to selectively identify instructions to be patched for specific performance optimization functions. The present invention also provides a new flag in the machine status register (MSR) to enable or disable a performance monitoring application or process to perform code-patching functions. If the code patching function is enabled, the application or process may patch code at run time by associating the metadata with the selected instructions. The metadata includes pointers pointing to the patch code block code. The program code may be patched autonomically without modifying original code. | 09-04-2008 |
20080229156 | Method and Apparatus for Hardware Awareness of Data Types - A method, apparatus, and computer instructions in a processor for associating a data type with a memory location. The type is associated with a location by means of metadata that is generated and manipulated by hardware instructions that are typically generated by a compiler as it generates the other instructions that comprise the machine code version of a program. A determination is made as to whether a data value about to be stored is of the required data type for that location. The hardware indicates an error condition if the types do not match. | 09-18-2008 |
20080235495 | Method and Apparatus for Counting Instruction and Memory Location Ranges - A method, apparatus, and computer instructions in a data processing system for processing instructions and monitoring accesses to memory location ranges. An instruction for execution is identified. A determination is made as to whether the instruction is within a contiguous range of instructions. Execution information relating to the instruction is identified if the instruction is within the contiguous range of instructions. With memory location accesses, an access to a memory location is identified. A determination of whether the memory location is within a contiguous range of memory locations is made. Access information is identified if the memory location is within the contiguous range of memory locations. | 09-25-2008 |
20080244239 | Method and System for Autonomic Monitoring of Semaphore Operations in an Application - A method, an apparatus, and a computer program product in a data processing system are presented for using hardware assistance for gathering performance information that significantly reduces the overhead in gathering such information. Performance indicators are associated with instructions or memory locations, and processing of the performance indicators enables counting of events associated with execution of those instructions or events associated with accesses to those memory locations. The performance information that has been dynamically gathered from the assisting hardware is available to the software application during runtime in order to autonomically affect the behavior of the software application, particularly to enhance its performance. For example, the counted events may be used to autonomically collecting statistical information about the ability of a software application to successfully acquire a semaphore. | 10-02-2008 |
20080270995 | Method for Automatic Detection of Build Regressions - A method and apparatus for automatically performing regression processing on trace data are provided. With the apparatus and method, call tree data structures are generated for two or more executions of two or more builds of a computer program. The apparatus and method perform a “tree-minimization” operation on each set of call tree data structures for each of the builds to generate minimized call tree data structures for each build of the computer program. The minimized call tree data structures are then subtracted from one another to generate a subtracted minimized call tree data structure. From this subtracted minimized call tree data structure, the portions of the computer program that are different from build to build and which appreciably and consistently affect the difference in execution of the computer program from build to build may be identified. Thus, the analyst's attention is directed to these areas of the computer program code which may be optimized in order to obtain better execution of the computer program. | 10-30-2008 |
20080307441 | System and Method for Call Stack Sampling Combined with Node and Instruction Tracing - A system and method for Java™ call stack sampling combined with native sampling is presented. A kernel-mode device driver records and stores sampled context information that includes a program counter, a thread identifier, and a process identifier. The sampling thread receives a notification from the kernel-mode device driver, and proceeds to collect call stack information from a Java™ Virtual Machine. In turn, the sampling thread retrieves the sampled context information and harvests symbols corresponding to a loaded module. Once symbols are harvested, the sampling thread combines returned call stack nodes with native function leaf nodes into a unified output tree that provides the relationship between the two different node types. In one embodiment, the sampling thread may generate native function leaf nodes and the unified output tree in a post-processing manner. | 12-11-2008 |
20080320448 | Method and Apparatus for Autonomic Test Case Feedback Using Hardware Assistance for Data Coverage - A method, apparatus, and computer instructions for presenting coverage data relating to data access occurring during execution of code. The coverage data containing data access indicators associated with memory locations is obtained. The data access indicators that have been set by a processor in the data processing system in response to access of the memory locations during execution of the code by the processor are identified to form set data access indicators. Each set instruction access indicator is associated with a portion of the memory locations allocated for the code. A presentation for coverage data is generated, wherein the set data access indicators are identified in the presentation. | 12-25-2008 |
20090007075 | Method and System for Tracing Profiling Information Using Per Thread Metric Variables with Reused Kernel Threads - A method and system for tracing profiling information using per thread metric variables with reused kernel threads is disclosed. In one embodiment kernel thread level metrics are stored by the operating system kernel. A profiler request metric information for the operating system kernel in response to an event. After the kernel thread level metrics are read by the operating system for a profiler, their values are reset to zero by the operating system kernel. The profiler then applies the metric values to base metric values to appropriate Java threads that are stored in nodes in a tree structure base on the type of event and whether or not the kernel thread has been reused. In another embodiment non-zero values of thread level metrics are entered on a liked list. In response to a request from a profiler, the operating system kernel reads each kernel thread's entry in the linked list and zeros each entry. The profiler can then update the intermediate full tree snapshots of profiling information with the collection of non-zero metric variables. | 01-01-2009 |
20090044198 | Method and Apparatus for Call Stack Sampling in a Data Processing System - A computer implemented method, apparatus, and computer usable program code for sampling call stack information. An event is monitored during execution of a plurality of threads executed by a plurality of processors. In response to an occurrence of the event, a thread is identified in the plurality of threads to form an identified thread. A plurality of sampling threads is woken, wherein a sampling thread within the plurality of sampling threads is associated with each processor in the plurality of processors and wherein one sampling thread in the plurality of sampling threads obtains call stack information for the identified thread. | 02-12-2009 |
20090083002 | Method and Apparatus for Analyzing Idle States in a Data Processing System - A computer implemented method, apparatus, and computer usable program code to collect information for a system or processor having a transition between an idle state and a non-idle state to form collected system or processor information. The collected system or processor information is provided for analysis by an application. | 03-26-2009 |
20090083715 | METHOD AND SYSTEM FOR INSTRUCTION TRACING WITH ENHANCED INTERRUPT AVOIDANCE - A method, system, apparatus, and computer program product is presented for tracing operations. A set of related methodologies can be used within instruction tracing software, such as a tracing program, to reduce its tendency to generate interrupts that cause unwanted effects in the system that is being captured. A first methodology allows access to protected memory blocks so that instructions may be read from those memory blocks. A second methodology provides for the trace output buffer to be accessed using physical addressing. A third methodology traces only instruction addresses, which are resolved later during a post-processing phase of operation. A fourth methodology comprises multiple different methods for obtaining copies of instructions that have already executed rather than obtaining them before they are executed. | 03-26-2009 |
20090089800 | Method and Apparatus for Compensating for Instrumentation Overhead Using Execution Environment Overhead - A computer implemented method, apparatus, and computer program code for profiling an application. Execution of an application is monitored. A set of metrics relating to execution of the application occurring during monitoring execution of the application are collected to form a set of observed metrics. An execution environment overhead occurring with respect to the set of observed events is identified to form an identified execution environment overhead. The set of observed metrics is adjusted using the identified execution environment overhead to form a set of calibrated metrics. | 04-02-2009 |
20090089801 | Method and Apparatus for Compensating for Instrumentation Overhead Using Sequences of Events - A computer implemented method, apparatus, and computer program product for processing events. Events occurring during execution of an application are monitored to form monitored events. A plurality of sequences of method types and transition types from the monitored events are identified to form an identified plurality of sequences of method types and transitions types. Overhead compensation values are identified for the identified plurality of sequences of method types and transitions types to form identified overhead compensation values. Observed metrics for the monitored events are adjusted using the identified overhead compensation values. | 04-02-2009 |
20090100414 | Method and Apparatus for Autonomic Test Case Feedback Using Hardware Assistance for Code Coverage - A method, apparatus, and computer instructions for presenting coverage data for code. The coverage data containing instruction access indicators associated with the code is obtained. Particular instruction access indicators that have been set by a processor in the data processing system in response to execution of the code by the processor are identified to form set instruction access indicators. Each set instruction access indicator is associated with a portion of the code. A presentation for the coverage data is generated. The set instruction access indicators are identified in the presentation. This presentation may be, for example, a graphical presentation. | 04-16-2009 |
20090113450 | Adaptive Prevention of Data Loss During Continuous Event Tracing with Limited Buffer Size - This invention describes how to avoid data loss due to limited buffer size during continuous tracing of high frequency events such as branches. Buffer data loss is adaptively avoided by either temporarily patching an instruction with a jump to itself or by using delay loops with an adaptive number of iterations during exception handling in which the trace event is written to the buffer. | 04-30-2009 |
20090178036 | Method and Apparatus for Call Stack Sampling Using a Virtual Machine - A computer implemented method, apparatus, and computer usable program code for sampling call stack information. A flag associated with a target thread is set in a memory work area associated with a virtual machine in response to an interrupt. Monitoring for an event during execution of a plurality of threads created by the virtual machine. A determination is made as to whether the flag is set in response to an occurrence of the event. If the flag is set, the virtual machine makes a call out to a profiler which initiates sampling of the call stack information in response to the flag being set. | 07-09-2009 |
20090210630 | Method and Apparatus for Prefetching Data from a Data Structure - A method, apparatus, and computer instructions for providing hardware assistance to prefetch data during execution of code by a process or in the data processing system. In response to loading of an instruction in the code into a cache, a determination is made, by the processor unit, as to whether metadata for a prefetch is present for the instruction. In response to metadata being present for the instruction, selectively prefetching data, from within a data structure using the metadata, into the cache in a processor. | 08-20-2009 |
20090241095 | Call Stack Sampling for Threads Having Latencies Exceeding a Threshold - A computer implemented method, apparatus, and computer usable program code for sampling call stack information. An accumulated latency time is monitored for a set of threads executing in a data processing system. The call stack information is obtained for the thread in response to a thread in the set of threads having an associated accumulated latency exceeding a threshold. | 09-24-2009 |
20090288103 | Method and Apparatus for Processing Access Requests for a Disk Drive - A computer implemented method, apparatus, and computer usable program code for managing access requests for access to a disk drive. A placement of a set of disk heads tracked and an expected time to process already queued access requests by the disk drive are tracked. In response to receiving the request to access the disk drive at a device driver, a determination is made as to whether the request can be completed within a specified amount of time associated with the request without sending the access request to the disk drive. The request is placed, by the device driver, in a queue for execution if a determination is made that the access request can be completed within the specified amount of time. | 11-19-2009 |
20100017447 | Managing Garbage Collection in a Data Processing System - A computer implemented method, apparatus, and computer program product for managing garbage collection. Monitoring is performed for a garbage collection state in a virtual machine. Responsive to detecting the garbage collection state, a priority for a set of garbage collection threads is increased. | 01-21-2010 |
20100017583 | Call Stack Sampling for a Multi-Processor System - A computer implemented method, apparatus, and computer usable program code for sampling call stack information. Responsive to identifying an interrupt, a determination is made as to whether all processors in a plurality of processors have generated the interrupt. A determination is made as whether to sample the call stack information based on a policy in response to a determination that all of the processors have generated the interrupt. The call stack information is sampled if a determination is made to sample the call stack information based on the policy | 01-21-2010 |
20100017584 | Call Stack Sampling for a Multi-Processor System - A computer implemented method for sampling call stack information. Responsive to identifying a set of interrupts, a determination is made as to whether all processors in a plurality of processors have generated the set of interrupts. A number of addresses are identified for a set of interrupted threads identified by the set of interrupts response to a determination that all of the processors have generated the set of interrupts. A determination is made as to whether the identified address falls within a set of address ranges. Responsive to a determination that the identified address falls within the set of address ranges, a sampler thread is notified to obtain call stack information. | 01-21-2010 |
20100017789 | Selectively Obtaining Call Stack Information Based on Criteria - A computer implemented method, apparatus, and computer program product for sampling call stack information. A set of methods and a set of criteria are received. Responsive to detecting an event associated with a method in the set of methods, a determination is made as to whether the method has met a set of criteria comprising at least one of a time based metric and a hardware performance monitor counter metric. A call stack is retrieved for the method if the method has met the set of criteria. The retrieved call stack is saved in a tree. | 01-21-2010 |
20100211950 | Automated Termination of Selected Software Applications in Response to System Events - The illustrative embodiments disclose a computer implemented method, apparatus, and computer program product for managing a set of applications. In one embodiment, the process registers a system management event in an application configuration database. Responsive to detecting the registered system management event during execution of one application of the set of applications, the process identifies applications of the set of applications associated with the registered system management event that are executing. The process then terminates the applications of the set of applications associated with the registered system management event that are executing. Responsive to terminating the applications of the set of applications associated with the registered system managing event that are executing, the process then executes a handler that processes the registered system management event. | 08-19-2010 |
20100223241 | Method, System and Computer Program Product for Certifying a Timestamp of a Data Processing System - The disclosed embodiments present a system, method, and computer program product for certifying a timestamp generated by a data processing system. In some embodiments, the method includes receiving a request to certify a timestamp generated by a trusted data processing system, analyzing historical data related to a system time of the data processing system, and certifying the timestamp in response to determining that the historical data indicates a trustworthy system time of the data processing system when the timestamp was generated. | 09-02-2010 |
20100223469 | Method, System and Computer Program Product for Certifying Software Origination - The disclosed embodiments present a method, system and computer program product for certifying software origination. The method for certifying software origination comprises generating at least one certificate of originality for a software artifact, generating a key for authenticating the certificate of originality, incorporating the key into the certificate of originality, and embedding the certificate of originality in the software artifact. | 09-02-2010 |
20100223598 | Collecting profile-specified performance data on a multithreaded data processing system - A method, apparatus, and computer program product for collecting performance data. In one illustrative embodiment, signaling is performed to start collecting the performance data by an operating system support unit in a multithreaded data processing system. Responsive to a thread switch to an incoming thread after signaling has occurred, the performance data for the incoming thread is collected using a thread specific data collection profile to form collected performance data if the incoming thread is associated with the thread specific data collection profile, wherein the thread specific data collection profile specifies a type of data to collect. Responsive to a subsequent thread switch, the collected performance data is sent to a number of destinations. | 09-02-2010 |
20110106994 | METHOD AND APPARATUS FOR QUALIFYING COLLECTION OF PERFORMANCE MONITORING EVENTS BY TYPES OF INTERRUPT WHEN INTERRUPT OCCURS - A method, apparatus, and computer instructions for qualifying events by types of interrupt when interrupt occurs in the processor of a data processing system. A programmable performance monitoring unit (PMU) is used to program hardware counters that collect events associated with a type of interrupt, including nested interrupts. The performance monitoring unit may also count events that occur while servicing interrupt requests based upon the state of interrupt processing. Events that are known to the performance monitoring unit such as instruction retired, TLB misses, may be counted at the same time using a number of performance monitoring counters in the performance monitoring unit. | 05-05-2011 |
20110107149 | METHOD AND APPARATUS FOR IDENTIFYING ACCESS STATES FOR VARIABLES - A method, apparatus, and computer instructions in a processor for selectively performing operations on data. An operation to be performed on data is identified to form an identified operation. A determination is made as to whether metadata identifying a state of the data is associated with the data. A determination is made as to whether the identified operation can be performed on the data based on the state of the data, in response to the metadata being associated with the data. The operation is performed on the data if the state of the data allows for the operation to be performed. The processor selectively performs the operations based on the state of the data. | 05-05-2011 |
20120151465 | Autonomic Method and Apparatus for Hardware Assist for Patching Code - Hardware assist to autonomically patch code. The present invention provides hardware microcode to a new type of metadata to selectively identify instructions to be patched for specific performance optimization functions. The present invention also provides a new flag in the machine status register (MSR) to enable or disable a performance monitoring application or process to perform code-patching functions. If the code patching function is enabled, the application or process may patch code at run time by associating the metadata with the selected instructions. The metadata includes pointers pointing to the patch code block code. The program code may be patched autonomically without modifying original code. | 06-14-2012 |
20120311543 | REMOVAL OF ASYNCHRONOUS EVENTS IN COMPLEX APPLICATION PERFORMANCE ANALYSIS - A method and apparatus for identifying a minimum call tree data structure from a plurality of call tree data structures are provided. With the apparatus and method, call tree data structures are generated for two or more executions of a build of a computer program. The apparatus and method perform a “tree-minimization” operation in which the two or more call trees generated during runs of the computer program are walked and only those nodes that are present in each of the tree data structures are maintained in a minimized tree data structure. In addition, the minimum values for these common nodes are maintained in the minimized tree data structure. In this way, asynchronous events are removed from the minimum tree data structure and analysis may focus on those areas of the computer program that are consistent between runs of the computer program. | 12-06-2012 |
20130227586 | Recording Activity of Software Threads in a Concurrent Software Environment - The present disclosure provides a method, computer program product, and activity recording system for identifying idleness in a processor via a concurrent software environment. A thread state indicator records an indication of a synchronization state of a software thread that is associated with an identification of the software thread. A time profiler identifies a processor of the computer system being idle and records an indication that the processor is idle. A dispatch monitor identifies a dispatch of the software thread to the processor. In response to the dispatch monitor determining the indication identifies that the processor is idle and the indication of a synchronization state of the software thread indicating the software thread ceases to execute in the processor, the dispatch monitor generates a record attributing the idleness of the processor to the software thread and the indicated synchronization state. | 08-29-2013 |
20140344831 | EXCLUDING COUNTS ON SOFTWARE THREADS IN A STATE - The present disclosure provides a method, computer program product, and system for compensating for event counts for a thread occurring during targeted states on the thread. In example embodiments, the state is a spin loop state and instructions completed during the spin loop are eliminated from a performance report and are presented in the absence of the spin loop. In another embodiment, the event counts are interrupt counts eliminated during the spin loop. | 11-20-2014 |
20140373029 | Recording Activity of Software Threads in a Concurrent Software Environment - The present disclosure provides a method for identifying idleness in a processor via a concurrent software environment. A thread state indicator records an indication of a synchronization state of a software thread that is associated with an identification of the software thread. A time profiler identifies a processor of the computer system being idle and records an indication that the processor is idle. A dispatch monitor identifies a dispatch of the software thread to the processor. In response to the dispatch monitor determining the indication identifies that the processor is idle and the indication of a synchronization state of the software thread indicating the software thread ceases to execute in the processor, the dispatch monitor generates a record attributing the idleness of the processor to the software thread and the indicated synchronization state. | 12-18-2014 |