Patents by Inventor Madan Musuvathi

Madan Musuvathi 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: 10509694
    Abstract: System and methods are provided for optimal error detection in programmatic environments through the utilization of at least one user-defined condition. Illustratively, the conditions can include one or more triggers initiating the collection of log data for methods associated with the provided at least one condition. Operatively, the disclosed systems and methods observe the run-time of the programmatic environment and initiate the collection of log data based on the occurrence of a condition trigger. A rank score can also be calculated to rank the methods associated with the defined condition to isolate those methods that have higher probability of causing the defined condition. Dynamic instrumentation of the methods associated with the user defined conditions during run time are used to calculate the rank score, which is used for ranking the methods.
    Type: Grant
    Filed: June 23, 2017
    Date of Patent: December 17, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Lenin Ravindranath Sivalingam, Sergey Kanzhelev, Suman Kumar Nath, Madan Musuvathi
  • Publication number: 20180373581
    Abstract: System and methods are provided for optimal error detection in programmatic environments through the utilization of at least one user-defined condition. Illustratively, the conditions can include one or more triggers initiating the collection of log data for methods associated with the provided at least one condition. Operatively, the disclosed systems and methods observe the run-time of the programmatic environment and initiate the collection of log data based on the occurrence of a condition trigger. A rank score can also be calculated to rank the methods associated with the defined condition to isolate those methods that have higher probability of causing the defined condition. Dynamic instrumentation of the methods associated with the user defined conditions during run time are used to calculate the rank score, which is used for ranking the methods.
    Type: Application
    Filed: June 23, 2017
    Publication date: December 27, 2018
    Inventors: Lenin Ravindranath SIVALINGAM, Sergey KANZHELEV, Suman Kumar NATH, Madan MUSUVATHI
  • Publication number: 20150261654
    Abstract: Described are techniques for detecting data collisions between a first portion and a second portion of an application executing on a computer, the first portion and the second portions executing concurrently with respect to each other. While the first portion and second portion are executing, before the first portion accesses a memory location shared by the first portion and the second portion, a value stored in the memory location is captured and the first portion is delayed. While the second portion continues to execute the first portion is delayed. After a period of the first portion having been paused or slowed, the current content of the memory location is compared with the captured content to determine if there is a data collision. The first and second portions may be threads, and the capturing, delaying, and determining may be performed by code inserted to the application after it has been compiled.
    Type: Application
    Filed: May 29, 2015
    Publication date: September 17, 2015
    Inventors: John Erickson, Madan Musuvathi
  • Patent number: 9069894
    Abstract: Described are techniques for detecting data collisions between a first portion and a second portion of an application executing on a computer, the first portion and the second portions executing concurrently with respect to each other. While the first portion and second portion are executing, before the first portion accesses a memory location shared by the first portion and the second portion, a value stored in the memory location is captured and the first portion is delayed. While the second portion continues to execute the first portion is delayed. After a period of the first portion having been paused or slowed, the current content of the memory location is compared with the captured content to determine if there is a data collision. The first and second portions may be threads, and the capturing, delaying, and determining may be performed by code inserted to the application after it has been compiled.
    Type: Grant
    Filed: June 18, 2010
    Date of Patent: June 30, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: John Erickson, Madan Musuvathi
  • Patent number: 8813038
    Abstract: The claimed subject matter provides a method for detecting a data race. The method includes inserting a plurality of breakpoints into a corresponding plurality of program locations. Each of the program locations accesses a plurality of memory locations. Each of the program locations is selected randomly. The method also includes detecting one or more data races for the memory locations in response to one or more of the breakpoints firing. Additionally, the method includes generating a report describing the one or more data races.
    Type: Grant
    Filed: February 9, 2011
    Date of Patent: August 19, 2014
    Assignee: Microsoft Corporation
    Inventors: John Erickson, Madan Musuvathi
  • Publication number: 20130158974
    Abstract: Methods and systems for modeling and predicting control system behavior through fast-forwarding are provided herein. The method includes obtaining sets of equivalent inputs, time zones, and a user-defined stop time. The method also includes taking a primary checkpoint of a main instance of a control system in response to a user input. The method includes fast-forwarding the control system by generating a secondary instance from the main instance at the primary checkpoint and subjecting the secondary instance to each combination of an input from each of the sets of equivalent inputs in each time zone. The method includes taking a secondary checkpoint from the primary checkpoint for each combination. For each secondary checkpoint, the method includes fast-forwarding the control system by generating a tertiary instance from the secondary instance and subjecting the tertiary instance to each combination as long as a time does not exceed the user-defined stop time.
    Type: Application
    Filed: December 14, 2011
    Publication date: June 20, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: Jason Croft, Ratul Mahajan, Madan Musuvathi
  • Publication number: 20120204062
    Abstract: The claimed subject matter provides a method for detecting a data race. The method includes inserting a plurality of breakpoints into a corresponding plurality of program locations. Each of the program locations accesses a plurality of memory locations. Each of the program locations is selected randomly. The method also includes detecting one or more data races for the memory locations in response to one or more of the breakpoints firing. Additionally, the method includes generating a report describing the one or more data races.
    Type: Application
    Filed: February 9, 2011
    Publication date: August 9, 2012
    Applicant: Microsoft Corporation
    Inventors: John Erickson, Madan Musuvathi
  • Publication number: 20110314338
    Abstract: Described are techniques for detecting data collisions between a first portion and a second portion of an application executing on a computer, the first portion and the second portions executing concurrently with respect to each other. While the first portion and second portion are executing, before the first portion accesses a memory location shared by the first portion and the second portion, a value stored in the memory location is captured and the first portion is delayed. While the second portion continues to execute the first portion is delayed. After a period of the first portion having been paused or slowed, the current content of the memory location is compared with the captured content to determine if there is a data collision. The first and second portions may be threads, and the capturing, delaying, and determining may be performed by code inserted to the application after it has been compiled.
    Type: Application
    Filed: June 18, 2010
    Publication date: December 22, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: John Erickson, Madan Musuvathi