Patents by Inventor Andrew James CRAIK
Andrew James CRAIK 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: 11740947Abstract: A computer-implemented method and system for resilient adaptive biased locking. The method includes adding, in a system including an adaptive lock reservation scheme having a learning state, a component comprising a per class counter that counts, collectively, a number of learning failures and a number of revocation failures. An embodiment includes initializing the per class counter upon loading a class with a predetermined value representing at least one of a maximum number of learning failures and cancellation instances associated with the class. An embodiment includes initializing, based on a determination of an operational state of the per class counter for an object transitioning from one of the learning state and a biased state to a flatlock state, a lock word of the object directly to the flatlock state while bypassing the biased state.Type: GrantFiled: May 25, 2022Date of Patent: August 29, 2023Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventor: Andrew James Craik
-
Patent number: 11609752Abstract: Embodiments relate to a system, program product, and method for implementing loop lock reservations, and, more specifically, for holding a lock reservation across some or all of the iterations of a loop, and under certain conditions, temporarily effect a running thread to yield the reservation and allow other threads to enter the lock.Type: GrantFiled: April 12, 2022Date of Patent: March 21, 2023Assignee: International Business Machines CorporationInventor: Andrew James Craik
-
Publication number: 20220283879Abstract: A computer-implemented method and system for resilient adaptive biased locking. The method includes adding, in a system including an adaptive lock reservation scheme having a learning state, a component comprising a per class counter that counts, collectively, a number of learning failures and a number of revocation failures. An embodiment includes initializing the per class counter upon loading a class with a predetermined value representing at least one of a maximum number of learning failures and cancellation instances associated with the class. An embodiment includes initializing, based on a determination of an operational state of the per class counter for an object transitioning from one of the learning state and a biased state to a flatlock state, a lock word of the object directly to the flatlock state while bypassing the biased state.Type: ApplicationFiled: May 25, 2022Publication date: September 8, 2022Applicant: International Business Machines CorporationInventor: Andrew James Craik
-
Patent number: 11409580Abstract: Provided are a computer program product, system, and method for modifying a series of lock acquire and release operations to use a single lock reservation. A representation of source code is scanned to determine a series of acquire lock program statement and release lock program statement pairs to acquire and release a lock by a thread. A first acquire lock program statement in the series is modified to be an acquire with reserve program statement that when executed by the thread causes the thread to acquire the lock and indicate the lock as reserved for use by the thread. A last release lock program statement in the series is modified to be a release with cancel program statement that when executed by the thread causes the thread to release the lock and indicate the lock as not reserved.Type: GrantFiled: February 26, 2020Date of Patent: August 9, 2022Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventor: Andrew James Craik
-
Patent number: 11409578Abstract: A computer-implemented method and system for resilient adaptive biased locking. The method includes adding, in a system including an adaptive lock reservation scheme having a learning state, a component comprising a per class counter that counts, collectively, a number of learning failures and a number of revocation failures. An embodiment includes initializing the per class counter upon loading a class with a predetermined value representing at least one of a maximum number of learning failures and cancellation instances associated with the class. An embodiment includes initializing, based on a determination of an operational state of the per class counter for an object transitioning from one of the learning state and a biased state to a flatlock state, a lock word of the object directly to the flatlock state while bypassing the biased state.Type: GrantFiled: November 27, 2019Date of Patent: August 9, 2022Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventor: Andrew James Craik
-
Publication number: 20220244928Abstract: Embodiments relate to a system, program product, and method for implementing loop lock reservations, and, more specifically, for holding a lock reservation across some or all of the iterations of a loop, and under certain conditions, temporarily effect a running thread to yield the reservation and allow other threads to enter the lock.Type: ApplicationFiled: April 12, 2022Publication date: August 4, 2022Inventor: Andrew James Craik
-
Patent number: 11397568Abstract: An embodiment performs escape analysis of a function as a compiler optimization and stack-allocates an object referenced by the function. At runtime, the embodiment includes detecting a hot code replacement of a portion of the function while the referenced object is stored in stack memory. Responsive to detecting the hot code replacement, the embodiment includes allocating heap memory for the object and moving the object from the stack memory to the allocated heap memory. The embodiment also updates references to the object that were pointing to the object in the stack memory to instead point to the object in the heap memory.Type: GrantFiled: May 13, 2020Date of Patent: July 26, 2022Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Andrew James Craik, Vijay Sundaresan
-
Patent number: 11334331Abstract: Embodiments relate to a system, program product, and method for implementing loop lock reservations, and, more specifically, for holding a lock reservation across some or all of the iterations of a loop, and under certain conditions, temporarily effect a running thread to yield the reservation and allow other threads to enter the lock.Type: GrantFiled: March 25, 2020Date of Patent: May 17, 2022Assignee: International Business Machines CorporationInventor: Andrew James Craik
-
Patent number: 11226799Abstract: An embodiment includes requesting, by a compiler responsive to execution of a first code segment, a first profile dataset associated with the first code segment. The embodiment also includes executing, responsive to receiving an indication that the first profile dataset is not available, a querying process that searches other code segments based on specified criteria relating to an attribute of the first code segment. The embodiment also includes receiving a search result from the querying process, where the search result includes a second code segment. The embodiment also includes generating an extrapolated profile dataset based at least in part on the second code segment. The embodiment stores the extrapolated profile dataset in memory associated with the first code segment, and the compiler performs an optimization process on the first code segment using the extrapolated profile dataset.Type: GrantFiled: August 31, 2020Date of Patent: January 18, 2022Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Vijay Sundaresan, Andrew James Craik, Mark Graham Stoodley, Daniel Heidinga
-
Patent number: 11188316Abstract: An embodiment includes executing a code interpretation engine such that the interpretation engine interprets a first portion of a source code that includes a first comparison between a first pair of operands. The embodiment also includes performing, in memory, a first bitwise comparison between a block A1 and a block B1 of the first portion of the source code. The embodiment also speeds up execution of the first portion of the source code responsive to the first bitwise comparison producing a negative result. The embodiment speeds up the first portion by omitting at least one of (i) a second bitwise comparison between a block A2 and a block B2, and (ii) a field-wise comparison between a block A3 and a block B3.Type: GrantFiled: March 9, 2020Date of Patent: November 30, 2021Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Oluwatobi Ajila, Andrew James Craik, Daniel Heidinga, Graham Alan Chapman
-
Patent number: 11188364Abstract: A method list is built for a currently executing application within a process virtual machine at a snapshot point, the method list comprising a set of methods capable of being executed by the currently executing application after the snapshot point, the snapshot point comprising an execution state of the currently executing application when a snapshot process is triggered. Profiling data of the currently executing application, collected prior to reaching the snapshot point, is committed, to a designated storage location. Using the profiling data and a just-in-time compiler of the process virtual machine, a method in the method list is compiled. Snapshot data comprising data of the execution state of the currently executing application at the snapshot point, including a result of the compiling, is stored.Type: GrantFiled: August 28, 2020Date of Patent: November 30, 2021Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Vijay Sundaresan, Mark Graham Stoodley, Andrew James Craik, Daniel Heidinga, Ashutosh Mehra
-
Patent number: 11182149Abstract: A computer-implemented method and related system for runtime code patching comprises determining, by a runtime, that a runtime event occurred. In response to the determination, performing by the runtime blocking processing of the runtime event, and runtime patching a method in response to an executing thread associated with the method yielding. Each executing thread receives runtime patching and only methods currently executing are runtime patched. Unblocking the runtime event allows execution to continue.Type: GrantFiled: September 30, 2019Date of Patent: November 23, 2021Assignee: International Business Machines CorporationInventor: Andrew James Craik
-
Patent number: 11157252Abstract: A method, computer system, and computer program product for estimation of post-inlining transformation benefits are provided. The embodiment may include performing abstract interpretation on a program to find potential post-inlining transformations. The embodiment may also include encoding potential post-inlining transformations into a profitability metric by associating constraints under which a profit is determined to be realized. The embodiment may further include scaling the profitability metric using the relative execution frequency of the program point to which the transformation applies to favor applying transformations in the most frequently executed code paths. The embodiment may also include generating method summaries to store the potential post-inlining transformations in the method summaries. The embodiment may further include creating a method summary map to match each method with each method summary.Type: GrantFiled: April 30, 2019Date of Patent: October 26, 2021Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Andrew James Craik, Erick Ochoa, Jose Nelson Amaral, Karim Ali
-
Publication number: 20210303373Abstract: Embodiments relate to a system, program product, and method for implementing loop lock reservations, and, more specifically, for holding a lock reservation across some or all of the iterations of a loop, and under certain conditions, temporarily effect a running thread to yield the reservation and allow other threads to enter the lock.Type: ApplicationFiled: March 25, 2020Publication date: September 30, 2021Inventor: Andrew James Craik
-
Publication number: 20210279044Abstract: An embodiment includes executing a code interpretation engine such that the interpretation engine interprets a first portion of a source code that includes a first comparison between a first pair of operands. The embodiment also includes performing, in memory, a first bitwise comparison between a block A1 and a block B1 of the first portion of the source code. The embodiment also speeds up execution of the first portion of the source code responsive to the first bitwise comparison producing a negative result. The embodiment speeds up the first portion by omitting at least one of (i) a second bitwise comparison between a block A2 and a block B2, and (ii) a field-wise comparison between a block A3 and a block B3.Type: ApplicationFiled: March 9, 2020Publication date: September 9, 2021Applicant: International Business Machines CorporationInventors: Oluwatobi Ajila, Andrew James Craik, Daniel Heidinga, Graham Alan Chapman
-
Publication number: 20210263787Abstract: Provided are a computer program product, system, and method for modifying a series of lock acquire and release operations to use a single lock reservation. A representation of source code is scanned to determine a series of acquire lock program statement and release lock program statement pairs to acquire and release a lock by a thread. A first acquire lock program statement in the series is modified to be an acquire with reserve program statement that when executed by the thread causes the thread to acquire the lock and indicate the lock as reserved for use by the thread. A last release lock program statement in the series is modified to be a release with cancel program statement that when executed by the thread causes the thread to release the lock and indicate the lock as not reserved.Type: ApplicationFiled: February 26, 2020Publication date: August 26, 2021Inventor: Andrew James Craik
-
Patent number: 11061703Abstract: A portion of a native memory is configured as a buffer within a native execution environment. Execution of a managed runtime code is initiated by a virtual machine. Data from a managed runtime memory of the virtual machine is marshaled by the virtual machine into the buffer. Control of execution is transferred from the managed runtime code to the native code. The native code is executed. The native code operates directly upon the marshaled data in the buffer.Type: GrantFiled: January 10, 2019Date of Patent: July 13, 2021Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventor: Andrew James Craik
-
Publication number: 20210173622Abstract: An embodiment performs escape analysis of a function as a compiler optimization and stack-allocates an object referenced by the function. At runtime, the embodiment includes detecting a hot code replacement of a portion of the function while the referenced object is stored in stack memory. Responsive to detecting the hot code replacement, the embodiment includes allocating heap memory for the object and moving the object from the stack memory to the allocated heap memory. The embodiment also updates references to the object that were pointing to the object in the stack memory to instead point to the object in the heap memory.Type: ApplicationFiled: May 13, 2020Publication date: June 10, 2021Applicant: International Business Machines CorporationInventors: Andrew James Craik, Vijay Sundaresan
-
Publication number: 20210157657Abstract: A computer-implemented method and system for resilient adaptive biased locking. The method includes adding, in a system including an adaptive lock reservation scheme having a learning state, a component comprising a per class counter that counts, collectively, a number of learning failures and a number of revocation failures. An embodiment includes initializing the per class counter upon loading a class with a predetermined value representing at least one of a maximum number of learning failures and cancellation instances associated with the class. An embodiment includes initializing, based on a determination of an operational state of the per class counter for an object transitioning from one of the learning state and a biased state to a flatlock state, a lock word of the object directly to the flatlock state while bypassing the biased state.Type: ApplicationFiled: November 27, 2019Publication date: May 27, 2021Applicant: International Business Machines CorporationInventor: Andrew James Craik
-
Publication number: 20210096843Abstract: A computer-implemented method and related system for runtime code patching comprises determining, by a runtime, that a runtime event occurred. In response to the determination, performing by the runtime blocking processing of the runtime event, and runtime patching a method in response to an executing thread associated with the method yielding. Each executing thread receives runtime patching and only methods currently executing are runtime patched. Unblocking the runtime event allows execution to continue.Type: ApplicationFiled: September 30, 2019Publication date: April 1, 2021Inventor: Andrew James Craik