Patents by Inventor Kean G. Kuiper

Kean G. Kuiper 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: 9176783
    Abstract: A process generates a sample based on an event. The process identifies, with a dispatch monitor, a next dispatched monitored thread that is dispatched by a current processor. The process sets a processor affinity of the next dispatched monitored thread such that the next dispatched monitored thread runs only on the current processor without being able to migrate to a different processor. The process also retrieves, with a sampled thread that runs on the current processor, a next dispatched monitored thread call stack after the processor affinity of the next dispatched monitored thread has been set to the processor. The process restores the processor affinity of the next dispatched monitored thread after the next dispatched monitored thread call stack has been obtained.
    Type: Grant
    Filed: May 24, 2010
    Date of Patent: November 3, 2015
    Assignee: International Business Machines Corporation
    Inventors: Kean G. Kuiper, Frank E. Levine, Enio M. Pineda
  • Patent number: 8843684
    Abstract: A sample is generated based on an event. Further, an interrupt handler captures information for an interrupted thread on a current processor. In addition, an affinity of the interrupted thread is set such that the interrupted thread runs only on the current processor without being able to migrate to a different processor. A sampler thread that runs on the current processor retrieves a call stack associated with the interrupted thread after the affinity of the interrupted thread has been set to the current processor. The affinity of the interrupted thread is restored after the call stack has been retrieved.
    Type: Grant
    Filed: June 11, 2010
    Date of Patent: September 23, 2014
    Assignee: International Business Machines Corporation
    Inventors: Scott T. Jones, Kean G. Kuiper, Frank E. Levine, Enio M. Pineda
  • Patent number: 8799904
    Abstract: An interrupt is generated based on an event. Further, a thread is selected for monitoring. In addition, an interrupt handler captures information for the monitored thread. An affinity of the monitored thread is set such that the monitored thread runs only on a current processor without being able to migrate to a different processor. A sampler thread that runs on the current processor retrieves a call stack associated with a monitored thread after the affinity of the monitored thread has been set to the current processor.
    Type: Grant
    Filed: January 21, 2011
    Date of Patent: August 5, 2014
    Assignee: International Business Machines Corporation
    Inventors: Kean G. Kuiper, Frank E. Levine
  • Patent number: 8589928
    Abstract: An interrupt is generated based on an event. Further, a thread is selected for monitoring. In addition, an interrupt handler captures information for the monitored thread. An affinity of the monitored thread is set such that the monitored thread runs only on a current processor without being able to migrate to a different processor. A sampler thread that runs on the current processor retrieves a call stack associated with a monitored thread after the affinity of the monitored thread has been set to the current processor.
    Type: Grant
    Filed: January 21, 2011
    Date of Patent: November 19, 2013
    Assignee: International Business Machines Corporation
    Inventors: Kean G. Kuiper, Frank E. Levine
  • Publication number: 20120191893
    Abstract: An interrupt is generated based on an event. Further, a thread is selected for monitoring. In addition, an interrupt handler captures information for the monitored thread. An affinity of the monitored thread is set such that the monitored thread runs only on a current processor without being able to migrate to a different processor. A sampler thread that runs on the current processor retrieves a call stack associated with a monitored thread after the affinity of the monitored thread has been set to the current processor.
    Type: Application
    Filed: January 21, 2011
    Publication date: July 26, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Kean G. Kuiper, Frank E. Levine
  • Patent number: 8132170
    Abstract: 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.
    Type: Grant
    Filed: August 7, 2007
    Date of Patent: March 6, 2012
    Assignee: International Business Machines Corporation
    Inventors: Kean G. Kuiper, Frank Eliot Levine, Enio Manuel Pineda
  • Publication number: 20110307640
    Abstract: A sample is generated based on an event. Further, an interrupt handler captures information for an interrupted thread on a current processor. In addition, an affinity of the interrupted thread is set such that the interrupted thread runs only on the current processor without being able to migrate to a different processor. A sampler thread that runs on the current processor retrieves a call stack associated with the interrupted thread after the affinity of the interrupted thread has been set to the current processor. The affinity of the interrupted thread is restored after the call stack has been retrieved.
    Type: Application
    Filed: June 11, 2010
    Publication date: December 15, 2011
    Applicant: International Business Machines Corporation
    Inventors: Scott T. Jones, Kean G. Kuiper, Frank E. Levine, Enio M. Pineda
  • Publication number: 20110289361
    Abstract: A process generates a sample based on an event. The process identifies, with a dispatch monitor, a next dispatched monitored thread that is dispatched by a current processor. The process sets a processor affinity of the next dispatched monitored thread such that the next dispatched monitored thread runs only on the current processor without being able to migrate to a different processor. The process also retrieves, with a sampled thread that runs on the current processor, a next dispatched monitored thread call stack after the processor affinity of the next dispatched monitored thread has been set to the processor. The process restores the processor affinity of the next dispatched monitored thread after the next dispatched monitored thread call stack has been obtained.
    Type: Application
    Filed: May 24, 2010
    Publication date: November 24, 2011
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Kean G. Kuiper, Frank E. Levine, Enio M. Pineda
  • Patent number: 7962924
    Abstract: 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.
    Type: Grant
    Filed: June 7, 2007
    Date of Patent: June 14, 2011
    Assignee: International Business Machines Corporation
    Inventors: Kean G. Kuiper, Frank Eliot Levine, Enio Manuel Pineda
  • Patent number: 7925473
    Abstract: 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. Idle counts occurring during execution of code are collected. The idle counts are provided to an application for analyzing why a processor becomes idle.
    Type: Grant
    Filed: December 4, 2008
    Date of Patent: April 12, 2011
    Assignee: International Business Machines Corporation
    Inventors: Jimmie Earl DeWitt, Jr., Jesse M. Gordon, Frank Eliot Levine, Kean G. Kuiper, Enio Manuel Pineda, Robert John Urquhart
  • Publication number: 20100333071
    Abstract: Mechanisms for time based context sampling of trace data with support for multiple virtual machines are provided. In response to the occurrence of an event, a plurality of sampling threads associated with a plurality of executing threads executing on processors of a data processing system are awakened. For each sampling thread, an execution state of a corresponding executing thread is determined with regard to one or more virtual machines of interest. For each sampling thread, based on the execution state of the corresponding executing thread, a determination is made whether to retrieve trace information from a virtual machine of interest associated with the corresponding executing thread. For each sampling thread, in response to a determination that trace information is to be retrieved from a virtual machine of interest associated with the corresponding executing thread, the trace information is retrieved from the virtual machine.
    Type: Application
    Filed: June 30, 2009
    Publication date: December 30, 2010
    Applicant: International Business Machines Corporation
    Inventors: Kean G. Kuiper, Frank E. Levine
  • Publication number: 20100017583
    Abstract: 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.
    Type: Application
    Filed: July 15, 2008
    Publication date: January 21, 2010
    Applicant: International Business Machines Corporation
    Inventors: Kean G. Kuiper, Frank Eliot Levine, Enio Manuel Pineda, Patrick Chien-Pai Shih
  • Patent number: 7548989
    Abstract: A method, a system, an apparatus, and a computer program product are presented for loading LDIF ((Lightweight Directory Access Protocol (LDAP) Data Interchange Format) data into a directory. A single reader thread reads entries from an LDIF file; each entry is associated with a priority value, e.g., the priority value for an entry may be based on the number of delimiters in the distinguished name within the entry. Multiple loading threads concurrently add the entries into an LDAP directory in accordance with their associated priority values. The entries are added to the LDAP directory in an order of highest indicated priority to lowest indicated priority; entries that are associated with priority values that indicate equal priority are considered to be equivalent for the purposes of ordering the entries, so entries that have equal priority may be added to the LDAP directory in any order.
    Type: Grant
    Filed: July 1, 2003
    Date of Patent: June 16, 2009
    Assignee: International Business Machines Corporation
    Inventors: William Preston Alexander, III, Kean G Kuiper, Christopher Michael Richardson
  • Publication number: 20090083002
    Abstract: 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.
    Type: Application
    Filed: December 4, 2008
    Publication date: March 26, 2009
    Applicant: International Business Machines Corporation
    Inventors: Jimmie Earl DeWitt, JR., Jesse M. Gordon, Frank Eliot Levine, Kean G. Kuiper, Enio Manuel Pineda, Robert John Urquhart
  • Patent number: 7506330
    Abstract: A method and apparatus for identifying differences in runs of a computer program that are due to changes in the code of the computer program. With the apparatus and method, call trees are generated for two or more builds of a computer program. The apparatus and method perform a “tree-subtract” operation in which the two or more call trees generated during runs of two or more different builds of a computer program are subtracted from one another to identify build to build differences in the execution of the computer program. From the resulting tree, portions of the runs of the different builds of the computer program where the resource utilization of the computer program has not changed are easily identifiable. Moreover, portions of the runs of the different builds of the computer program where there are improvements or regressions in resource utilization of the computer program may be easily identifiable.
    Type: Grant
    Filed: February 12, 2004
    Date of Patent: March 17, 2009
    Assignee: International Business Machines Corporation
    Inventors: William Preston Alexander, III, Robert Tod Dimpsey, Kean G. Kuiper, Frank Eliot Levine, Robert John Urquhart
  • Publication number: 20090044198
    Abstract: 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.
    Type: Application
    Filed: August 7, 2007
    Publication date: February 12, 2009
    Inventors: Kean G Kuiper, Frank Eliot Levine, Enio Manuel Pineda
  • Patent number: 7474991
    Abstract: 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. Idle counts occurring during execution of code are collected to form collected system or processor information. The collected system or processor information is provided to an application for analyzing why a processor becomes idle.
    Type: Grant
    Filed: January 19, 2006
    Date of Patent: January 6, 2009
    Assignee: International Business Machines Corporation
    Inventors: Jimmie Earl DeWitt, Jr., Jesse M. Gordon, Frank Eliot Levine, Kean G. Kuiper, Enio Manuel Pineda, Robert John Urquhart
  • Publication number: 20080307441
    Abstract: 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.
    Type: Application
    Filed: June 7, 2007
    Publication date: December 11, 2008
    Inventors: Kean G. Kuiper, Frank Eliot Levine, Enio Manuel Pineda
  • Patent number: 7010555
    Abstract: A system and method for incrementally compacting a computer system heap is presented. A heap, such as a garbage-collected heap in a Java environment, is divided into logical regions. When the heap is becoming fragmented, an incremental compaction cycle is commenced. During a first time period, the first region of the heap is compacted, with subsequent regions being compacted during subsequent time periods. A time period commences when a garbage collection event occurs. In a multiprocessor environment the regions can be divided into a number of sections which are each compacted using a different processor. One or more break tables are constructed indicating how far contiguous groups of moveable objects should be moved to better group objects and eliminate interspersed free spaces. References throughout the heap that point to objects within the compacted region are then adjusted so that the references point to the new object locations.
    Type: Grant
    Filed: October 17, 2002
    Date of Patent: March 7, 2006
    Assignee: International Business Machines Corporation
    Inventors: Geoffrey Owen Blandy, Robert Tod Dimpsey, Kean G. Kuiper, Matthew Francis Peters
  • Publication number: 20040128329
    Abstract: A method for incremental compaction, including selecting a first section from a plurality of sections in a memory, and identifying references to elements in the first section. While identifying, selecting a sub-area of the first section and continuing the identifying while identifying only those references to elements in the sub-area. The method further includes holding in a data structure the identified references to elements in the first section, and if the data structure overflows, deleting from the data structure the reference elements not in the sub-area. The identifying is continued while holding in the data structure only those references to elements in the sub-area. Selecting, identifying and continuing may be performed by a plurality of threads performing the steps in parallel.
    Type: Application
    Filed: December 31, 2002
    Publication date: July 1, 2004
    Applicant: International Business Machines Corporation
    Inventors: Ori Ben-Yitzhak, Irit Goft, Elliot K. Kolodner, Kean G. Kuiper, Victor Leikehman, Avi Owshanko