Patents by Inventor Mark Graham Stoodley

Mark Graham Stoodley 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).

  • Publication number: 20090089769
    Abstract: Illustrative embodiments provide a way to use multiple-reader locks for those paths where no writes occur. A computer implemented method, data processing system and computer program product provide a capability where only if one of the writing paths executes will a full writer lock be acquired. Illustrative embodiments may be used to create two copies of the critical section comprising a reading version and a writing version. The default execution leads to the reader version, which only acquires a reader-lock. The reader version of the code executes prior to execution of the writer lock only version, otherwise bypassing the writer lock only version. If the execution leads to a path in which a write would occur, the reader only version branches to the beginning of the writer version. The writer version is identical to the original code and obtains a full writer lock. If execution in the reader lock does not lead to a path that writes, then only the reader lock is acquired.
    Type: Application
    Filed: September 28, 2007
    Publication date: April 2, 2009
    Inventors: Nikola Grcevski, Mark Graham Stoodley
  • Publication number: 20090063595
    Abstract: The illustrative embodiments described herein provide a computer-implemented method, apparatus, and computer program product for updating references to objects. The process identifies a set of references associated with a set of live objects at a garbage collection safe point in response to detecting the garbage collection safe point. The set of live objects are at a set of first locations in a storage device. The process updates the set of references such that the set of references refer to a set of second locations of the set of live object in response to detecting a garbage collection operation. The set of second locations is in the storage device.
    Type: Application
    Filed: September 5, 2007
    Publication date: March 5, 2009
    Inventor: Mark Graham Stoodley
  • Publication number: 20090055814
    Abstract: A computer implemented method for performing inlining in a just-in-time compiler. Compilation of a first code of a program is begun. The first code is one of an interruptible code and a non-interruptible code. A try region is established around a second code of the program to form a wrapped second code. The try region is a boundary between interruptible and non-interruptible code such that a third code that modifies an observable state of the program cannot be moved across the boundary. The second code is, relative to the first code, the other of the interruptible code and the non-interruptible code. The wrapped second code is inlined with the first code during compilation. Compilation of the first code is completed to form a resultant code. The resultant code is stored.
    Type: Application
    Filed: August 20, 2007
    Publication date: February 26, 2009
    Inventors: Patrick G. Gallop, Derek Bruce Inglis, Mark Graham Stoodley
  • Publication number: 20080271005
    Abstract: Based on operations within an uncounted loop of source code, one or more calculations are generated for determining, at runtime, an expected number of iterations through which the uncounted loop can iterate before encountering an exception corresponding to at least one target exception check. A copy of the uncounted loop omitting each target exception check is generated. The uncounted loop, the copy of the uncounted loop, and the one or more calculations are arranged in compiled code so that at runtime program flow enters the copy of the uncounted loop. If a maximum number of iterations of the copy of the uncounted loop is reached, program flow proceeds from the copy of the uncounted loop to the uncounted loop. The maximum number of iterations is no more than the smallest member of a set consisting of the expected number of iterations for each target exception check.
    Type: Application
    Filed: April 27, 2007
    Publication date: October 30, 2008
    Inventor: Mark Graham Stoodley
  • Publication number: 20080250396
    Abstract: An improved system and computer programming product for acquisition and release of locks within a software program is disclosed. In an exemplary embodiment, a lock within a loop is transformed by relocating acquisition and release instructions from within the loop to positions outside the loop. This may significantly decrease unnecessarily lock acquisition and release during execution of the software program. In order to avoid contention problems which may arise from acquiring and keeping a lock on an object over a relatively long period of time, a contention test may be inserted into the loop. Such a contention test may temporarily release the lock if another thread in the software program requires access to the locked object.
    Type: Application
    Filed: June 9, 2008
    Publication date: October 9, 2008
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Nikola Grcevski, Kevin Alexander Stoodley, Mark Graham Stoodley, Vijay Sundaresan
  • Patent number: 7404183
    Abstract: An improved method and system for acquisition and release of locks within a software program is disclosed. In an exemplary embodiment, a lock within a loop is transformed by relocating acquisition and release instructions from within the loop to positions outside the loop. This may significantly decrease unnecessarily lock acquisition and release during execution of the software program. In order to avoid contention problems which may arise from acquiring and keeping a lock on an object over a relatively long period of time, a contention test may be inserted into the loop. Such a contention test may temporarily release the lock if another thread in the software program requires access to the locked object.
    Type: Grant
    Filed: May 13, 2004
    Date of Patent: July 22, 2008
    Assignee: International Business Machines Corporation
    Inventors: Nikola Grcevski, Kevin Alexander Stoodley, Mark Graham Stoodley, Vijay Sundaresan
  • Publication number: 20080052725
    Abstract: A code region forming part of a computer program is modified during execution of the computer program by a plurality of threads. In one aspect, identical modification instructions are provided to each thread for modifying a site in the code region having a desirable idempotent atomic modification, and the modification instructions direct each thread to make the desirable idempotent atomic modification. In another aspect, a thread is selected to modify the code region, each thread other than the selected thread is directed to execute an alternative execution path that generates output identical to the output of the code region after the code region has been modified, and, responsive to directing each thread other than the selected thread, the selected thread is directed to modify the code region.
    Type: Application
    Filed: August 21, 2007
    Publication date: February 28, 2008
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Kevin Alexander Stoodley, Mark Graham Stoodley
  • Publication number: 20080052697
    Abstract: A code region forming part of a computer program is modified during execution of the computer program by a plurality of threads. In one aspect, identical modification instructions are provided to each thread for modifying a site in the code region having a desirable idempotent atomic modification, and the modification instructions direct each thread to make the desirable idempotent atomic modification. In another aspect, a thread is selected to modify the code region, each thread other than the selected thread is directed to execute an alternative execution path that generates output identical to the output of the code region after the code region has been modified, and, responsive to directing each thread other than the selected thread, the selected thread is directed to modify the code region.
    Type: Application
    Filed: August 21, 2007
    Publication date: February 28, 2008
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Kevin Alexander Stoodley, Mark Graham Stoodley
  • Publication number: 20080052498
    Abstract: A code region forming part of a computer program is modified during execution of the computer program by a plurality of threads. In one aspect, identical modification instructions are provided to each thread for modifying a site in the code region having a desirable idempotent atomic modification, and the modification instructions direct each thread to make the desirable idempotent atomic modification. In another aspect, a thread is selected to modify the code region, each thread other than the selected thread is directed to execute an alternative execution path that generates output identical to the output of the code region after the code region has been modified, and, responsive to directing each thread other than the selected thread, the selected thread is directed to modify the code region.
    Type: Application
    Filed: August 21, 2007
    Publication date: February 28, 2008
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Kevin Alexander Stoodley, Mark Graham Stoodley
  • Patent number: 7287244
    Abstract: In preparing inlined program code for compiling, a synchronization depth is recorded in a table for ranges of program counter addresses. Furthermore, a stack frame is dedicated for the recordation of references to objects locked during the execution of the code. Such references are recorded in the stack frame at a location based on synchronization depth. When an exception occurs, the synchronization depth may be determined from the table and used to obtain, from the stack frame, a reference to an object from which a lock should be removed.
    Type: Grant
    Filed: December 9, 2003
    Date of Patent: October 23, 2007
    Assignee: International Business Machines Corporation
    Inventor: Mark Graham Stoodley
  • Publication number: 20040250240
    Abstract: Repetitive synchronization in program code is optimized through lock coarsening that is performed subject to a number of constraints. Using a forward pass over the program code followed by a backward pass, region extent bits may be determined that identify the points in the program where object locking can be coarsened. The program code may then be modified to realize coarsened locking regions determined based on the region extent bits. Alternatively, previously determined value numbers may provide much of the information collected by the two passes. In such a case, a single pass over the program code may locate features that limit lock coarsening opportunities. A set of synchronization operations that can be removed may then be determined and used when modifying the program code to coarsen locking regions.
    Type: Application
    Filed: May 27, 2004
    Publication date: December 9, 2004
    Applicant: International Business Machines Corporation
    Inventors: Mark Graham Stoodley, Vijay Sundaresan
  • Publication number: 20040243792
    Abstract: In preparing inlined program code for compiling, a synchronization depth is recorded in a table for ranges of program counter addresses. Furthermore, a stack frame is dedicated for the recordation of references to objects locked during the execution of the code. Such references are recorded in the stack frame at a location based on synchronization depth. When an exception occurs, the synchronization depth may be determined from the table and used to obtain, from the stack frame, a reference to an object from which a lock should be removed.
    Type: Application
    Filed: December 9, 2003
    Publication date: December 2, 2004
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Mark-Graham Stoodley