Patents by Inventor Michael H. Dawson
Michael H. Dawson 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: 9563405Abstract: For each of a plurality of different tenants configured to concurrently execute in a virtual environment, a respective class loader graph can be constructed. For each respective class loader graph, unique types of edges between nodes that affect class loading can be identified. The edges can be traversed. Based on traversing the edges of the class loader graph, a respective unique dependency identifier (UDI) can be assigned to each class loader request. Class loader requests that are assigned the same UDI can be identified in at least two of the tenants. Responsive to identifying the class loader requests that are assigned the same UDI, a shared class loader can be assigned to each of the class loader requests. Each respective class loader request that is assigned the same UDI can be configured to call the shared class loader to load at least one class required by the respective tenant.Type: GrantFiled: March 8, 2016Date of Patent: February 7, 2017Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Michael H. Dawson, Bentley J. Hargrave, Thomas J. Watson
-
Publication number: 20170017474Abstract: In an approach for removing tenant initialization check per tenant for compiled code, a processor receives a request to create a tenant. A processor creates the tenant. A processor marks a current thread of the tenant as not eligible to run just-in-time (JIT) code, wherein the marking indicates that when a method is invoked, a non-JIT version of the method is executed. A processor executes initialization of a first class from an optimization list, wherein the optimization list is a configurable list of classes to be initialized prior to running JIT code. A processor determines that class initialization has been executed for all classes on the optimization list. A processor adjusts the marking to indicate that the current thread is eligible to run JIT code and that the tenant may run JIT code that assumes, without checking, that classes on the optimization list are initialized.Type: ApplicationFiled: September 30, 2016Publication date: January 19, 2017Inventors: Oluwatobi A. Ajila, Graham A. Chapman, Michael H. Dawson, San Hong Li, Hui Shi
-
Publication number: 20160371103Abstract: Embodiments of the present invention disclose an approach for inserting code into a running thread of execution. A computer sets a first set of bits to a first value, wherein the first value indicates that a first set of instructions should be inserted onto a stack. The computer executes a second set of instructions associated with a first safepoint, wherein the second set of instructions comprises one or more instructions to determine if the first set of bits is set to the first value. The computer determines that the first set of bits is set to the first value, and the computer inserts the first set of instructions onto the stack.Type: ApplicationFiled: August 30, 2016Publication date: December 22, 2016Inventors: Michael H. Dawson, Graeme Johnson, San Hong Li
-
Patent number: 9495184Abstract: In an approach for removing tenant initialization check per tenant for compiled code, a processor receives a request to create a tenant. A processor creates the tenant. A processor marks a current thread of the tenant as not eligible to run just-in-time (JIT) code, wherein the marking indicates that when a method is invoked, a non-JIT version of the method is executed. A processor executes initialization of a first class from an optimization list, wherein the optimization list is a configurable list of classes to be initialized prior to running JIT code. A processor determines that class initialization has been executed for all classes on the optimization list. A processor adjusts the marking to indicate that the current thread is eligible to run JIT code and that the tenant may run JIT code that assumes, without checking, that classes on the optimization list are initialized.Type: GrantFiled: September 10, 2015Date of Patent: November 15, 2016Assignee: International Business Machines CorporationInventors: Oluwatobi A. Ajila, Graham A. Chapman, Michael H. Dawson, San Hong Li, Hui Shi
-
Patent number: 9495185Abstract: In an approach for removing tenant initialization check per tenant for compiled code, a processor receives a request to create a tenant. A processor creates the tenant. A processor marks a current thread of the tenant as not eligible to run just-in-time (JIT) code, wherein the marking indicates that when a method is invoked, a non-JIT version of the method is executed. A processor executes initialization of a first class from an optimization list, wherein the optimization list is a configurable list of classes to be initialized prior to running JIT code. A processor determines that class initialization has been executed for all classes on the optimization list. A processor adjusts the marking to indicate that the current thread is eligible to run JIT code and that the tenant may run JIT code that assumes, without checking, that classes on the optimization list are initialized.Type: GrantFiled: February 23, 2015Date of Patent: November 15, 2016Assignee: International Business Machines CorporationInventors: Oluwatobi A. Ajila, Graham A. Chapman, Michael H. Dawson, San Hong Li, Hui Shi
-
Patent number: 9471343Abstract: Embodiments of the present invention disclose an approach for inserting code into a running thread of execution. A computer sets a first set of bits to a first value, wherein the first value indicates that a first set of instructions should be inserted onto a stack. The computer executes a second set of instructions associated with a first safepoint, wherein the second set of instructions comprises one or more instructions to determine if the first set of bits is set to the first value. The computer determines that the first set of bits is set to the first value, and the computer inserts the first set of instructions onto the stack.Type: GrantFiled: August 31, 2015Date of Patent: October 18, 2016Assignee: International Business Machines CorporationInventors: Michael H. Dawson, Graeme Johnson, San Hong Li
-
Publication number: 20160274868Abstract: For each of a plurality of different tenants configured to concurrently execute in a virtual environment, a respective class loader graph can be constructed. For each respective class loader graph, unique types of edges between nodes that affect class loading can be identified. The edges can be traversed. Based on traversing the edges of the class loader graph, a respective unique dependency identifier (UDI) can be assigned to each class loader request. Class loader requests that are assigned the same UDI can be identified in at least two of the tenants. Responsive to identifying the class loader requests that are assigned the same UDI, a shared class loader can be assigned to each of the class loader requests. Each respective class loader request that is assigned the same UDI can be configured to call the shared class loader to load at least one class required by the respective tenant.Type: ApplicationFiled: March 8, 2016Publication date: September 22, 2016Inventors: Michael H. Dawson, Bentley J. Hargrave, Thomas J. Watson
-
Publication number: 20160274924Abstract: For each of a plurality of different tenants configured to concurrently execute in a virtual environment, a respective class loader graph can be constructed. For each respective class loader graph, unique types of edges between nodes that affect class loading can be identified. The edges can be traversed. Based on traversing the edges of the class loader graph, a respective unique dependency identifier (UDI) can be assigned to each class loader request. Class loader requests that are assigned the same UDI can be identified in at least two of the tenants. Responsive to identifying the class loader requests that are assigned the same UDI, a shared class loader can be assigned to each of the class loader requests. Each respective class loader request that is assigned the same UDI can be configured to call the shared class loader to load at least one class required by the respective tenant.Type: ApplicationFiled: March 25, 2016Publication date: September 22, 2016Inventors: Michael H. Dawson, Bentley J. Hargrave, Thomas J. Watson
-
Patent number: 9436614Abstract: In a computing system including an application executing on top of a virtualization control layer, wherein the virtualization control layer maps portions of a virtual memory to portions of a physical memory, a method for managing memory including: identifying, by the application, a range of virtual memory whose probability of being replicated in the virtual memory exceeds a given threshold; obtaining, by the application, at least one memory address corresponding to the range of virtual memory; and passing, from the application to the virtualization control layer, an identifier for the range of virtual memory and the memory address corresponding to the range of virtual memory, wherein the identifier is useable by the virtualization control layer to identify similar ranges within the virtual memory.Type: GrantFiled: May 2, 2013Date of Patent: September 6, 2016Assignee: GLOBALFOUNDRIES INC.Inventors: Michael H. Dawson, Arun K. Iyengar, Graeme Johnson
-
Publication number: 20160246623Abstract: In an approach for removing tenant initialization check per tenant for compiled code, a processor receives a request to create a tenant. A processor creates the tenant. A processor marks a current thread of the tenant as not eligible to run just-in-time (JIT) code, wherein the marking indicates that when a method is invoked, a non-JIT version of the method is executed. A processor executes initialization of a first class from an optimization list, wherein the optimization list is a configurable list of classes to be initialized prior to running JIT code. A processor determines that class initialization has been executed for all classes on the optimization list. A processor adjusts the marking to indicate that the current thread is eligible to run JIT code and that the tenant may run JIT code that assumes, without checking, that classes on the optimization list are initialized.Type: ApplicationFiled: February 23, 2015Publication date: August 25, 2016Inventors: Oluwatobi A. Ajila, Graham A. Chapman, Michael H. Dawson, San Hong Li, Hui Shi
-
Publication number: 20160246621Abstract: In an approach for removing tenant initialization check per tenant for compiled code, a processor receives a request to create a tenant. A processor creates the tenant. A processor marks a current thread of the tenant as not eligible to run just-in-time (JIT) code, wherein the marking indicates that when a method is invoked, a non-JIT version of the method is executed. A processor executes initialization of a first class from an optimization list, wherein the optimization list is a configurable list of classes to be initialized prior to running JIT code. A processor determines that class initialization has been executed for all classes on the optimization list. A processor adjusts the marking to indicate that the current thread is eligible to run JIT code and that the tenant may run JIT code that assumes, without checking, that classes on the optimization list are initialized.Type: ApplicationFiled: September 10, 2015Publication date: August 25, 2016Inventors: Oluwatobi A. Ajila, Graham A. Chapman, Michael H. Dawson, San Hong Li, Hui Shi
-
Patent number: 9384019Abstract: Embodiments of the present invention disclose an approach for inserting code into a running thread of execution. A computer sets a first set of bits to a first value, wherein the first value indicates that a first set of instructions should be inserted onto a stack. The computer executes a second set of instructions associated with a first safepoint, wherein the second set of instructions comprises one or more instructions to determine if the first set of bits is set to the first value. The computer determines that the first set of bits is set to the first value, and the computer inserts the first set of instructions onto the stack.Type: GrantFiled: March 25, 2014Date of Patent: July 5, 2016Assignee: International Business Machines CorporationInventors: Michael H. Dawson, Graeme Johnson, San Hong Li
-
Patent number: 9355039Abstract: In a computing system including an application executing on top of a virtualization control layer, wherein the virtualization control layer maps portions of a virtual memory to portions of a physical memory, an apparatus for managing memory configured to: identify, by the application, a range of virtual memory whose probability of being replicated in the virtual memory exceeds a given threshold; obtain, by the application, at least one memory address corresponding to the range of virtual memory; and pass, from the application to the virtualization control layer, an identifier for the range of virtual memory and the memory address corresponding to the range of virtual memory, wherein the identifier is useable by the virtualization control layer to identify similar ranges within the virtual memory.Type: GrantFiled: August 12, 2013Date of Patent: May 31, 2016Assignee: GLOBALFOUNDRIES INC.Inventors: Michael H. Dawson, Arun K. Iyengar, Graeme Johnson
-
Patent number: 9317262Abstract: An illustrative embodiment of a computer-implemented method for identification of code synchronization points collects locking data for a set of locks in a managed runtime environment associated with the processor to form a set of contended metrics and analyzes the set of contended metrics using a set of predetermined event triggers. The method further determines whether a threshold in a set of predetermined thresholds in the set of predetermined event triggers is met and identifies a particular form of call path capture for a lock associated with the predetermined event trigger identified as having met the predetermined threshold. Call path information for the lock is captured using the particular form of call path capture.Type: GrantFiled: August 6, 2014Date of Patent: April 19, 2016Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Michael H. Dawson, Trent A. Gray-Donald
-
Patent number: 9311118Abstract: For each of a plurality of different tenants configured to concurrently execute in a virtual environment, a respective class loader graph can be constructed. For each respective class loader graph, unique types of edges between nodes that affect class loading can be identified. The edges can be traversed. Based on traversing the edges of the class loader graph, a respective unique dependency identifier (UDI) can be assigned to each class loader request. Class loader requests that are assigned the same UDI can be identified in at least two of the tenants. Responsive to identifying the class loader requests that are assigned the same UDI, a shared class loader can be assigned to each of the class loader requests. Each respective class loader request that is assigned the same UDI can be configured to call the shared class loader to load at least one class required by the respective tenant.Type: GrantFiled: October 23, 2015Date of Patent: April 12, 2016Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Michael H. Dawson, Bentley J. Hargrave, Thomas J. Watson
-
Patent number: 9311236Abstract: An unused free memory shortage relative to an adjusted heap maximum size associated with a memory heap of application memory is detected. The adjusted heap maximum size is set to a heap size smaller than a maximum heap allocation size. An increase to the adjusted heap maximum size that resolves the unused free memory shortage is calculated. The adjusted heap maximum size is increased by the calculated increase to the adjusted heap maximum size.Type: GrantFiled: November 20, 2012Date of Patent: April 12, 2016Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Michael H. Dawson, Charles R. Gracie, Graeme D. Johnson
-
Patent number: 9298611Abstract: An unused free memory shortage relative to an adjusted heap maximum size associated with a memory heap of application memory is detected. The adjusted heap maximum size is set to a heap size smaller than a maximum heap allocation size. An increase to the adjusted heap maximum size that resolves the unused free memory shortage is calculated. The adjusted heap maximum size is increased by the calculated increase to the adjusted heap maximum size.Type: GrantFiled: March 19, 2014Date of Patent: March 29, 2016Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Michael H. Dawson, Charles R. Gracie, Graeme D. Johnson
-
Patent number: 9292315Abstract: For each of a plurality of different tenants configured to concurrently execute in a virtual environment, a respective class loader graph can be constructed. For each respective class loader graph, unique types of edges between nodes that affect class loading can be identified. The edges can be traversed. Based on traversing the edges of the class loader graph, a respective unique dependency identifier (UDI) can be assigned to each class loader request. Class loader requests that are assigned the same UDI can be identified in at least two of the tenants. Responsive to identifying the class loader requests that are assigned the same UDI, a shared class loader can be assigned to each of the class loader requests. Each respective class loader request that is assigned the same UDI can be configured to call the shared class loader to load at least one class required by the respective tenant.Type: GrantFiled: March 16, 2015Date of Patent: March 22, 2016Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Michael H. Dawson, Bentley J. Hargrave, Thomas J. Watson
-
Patent number: 9274840Abstract: Methods and arrangements for dynamic memory management. Data are accepted for thread local storage, and memory usage is monitored in thread local storage. A memory block is allocated to thread local storage for storing accepted data, based on the monitored memory usage.Type: GrantFiled: March 15, 2013Date of Patent: March 1, 2016Assignee: International Business Machines CorporationInventors: Michael H. Dawson, Parijat Dube, Liana L. Fo, Michel H. T. Hack, Graeme Johnson, Li Zhang
-
Patent number: 9250857Abstract: Managing buffers in a hybrid system, in one aspect, may comprise selecting a first buffer management method from a plurality of buffer management methods; capturing statistics associated with access to the buffer in the hybrid system running under the initial buffer management method; analyzing the captured statistics; identifying a second buffer management method based on the analyzed captured statistics; determining whether the second buffer management method is more optimal than the first buffer management method; in response to determining that the second buffer management method is more optimal than the first buffer management method, invoking the second buffer management method; and repeating the capturing, the analyzing, the identifying and the determining.Type: GrantFiled: August 28, 2013Date of Patent: February 2, 2016Assignee: International Business Machines CorporationInventors: Michael H. Dawson, Yuqing Gao, Megumi Ito, Graeme Johnson, Seetharami R. Seelam