Patents by Inventor Kapil Vaswani

Kapil Vaswani 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: 20100169618
    Abstract: The claimed subject matter provides a system and/or a method that facilitates ensuring non-interference between multiple threads that access a shared resource. An interface can receive a portion of sequential code, wherein the portion of sequential code includes a property that is maintained and relied upon when invoked and executed by a sequential client. A synthesizer component can leverage a sequential proof related to the portion of sequential code in order to derive a concurrency control mechanism for a portion of concurrency code that maintains the property when invoked by a concurrent client, wherein the sequential proof identifies a concurrent interference at an execution point that is tolerable for the concurrent client.
    Type: Application
    Filed: December 30, 2008
    Publication date: July 1, 2010
    Applicant: Microsoft Corporation
    Inventors: Ganesan Ramalingam, Sriram Rajamani, Venkatesh-Prasad Ranganath, Kapil Vaswani, Jyotirmoy Vinay Deshmukh
  • Publication number: 20100100690
    Abstract: Locks are used to protect variables. All variables protected by a lock are allocated on a page associated with a lock. When a thread (called the owner) acquires the lock, a local copy of the memory page containing the variable is created, the original memory page is protected, and all access of the variable in the owner thread is directed to the local copy. Upon releasing the lock, the changes from the local copy are carried over to the memory page and the memory page is unprotected. Any concurrent access of the variable by non-owner threads triggers an exception handler (due to the protection mechanism) and delays such an access until after the owner thread has finished accessing the variable.
    Type: Application
    Filed: October 21, 2008
    Publication date: April 22, 2010
    Applicant: MICROSOFT CORPORATION
    Inventors: Sriram Rajamani, Ganesan Ramalingam, Venkatesh-Prasad Ranganath, Kapil Vaswani
  • Publication number: 20100088546
    Abstract: The method executes the application and if there are no errors from the execution of the application, the method ends. If errors exist, the errors are collected from the execution of the application in an error report. Labeled application paths are created by adding a unique label to individual application paths where the application paths are individual loops and individual functions in the application. An analysis is created of the labeled application paths by executing the application with the labeled paths, reviewing the error report for data related to the labels and if an error is sufficiently related to application paths with labels, storing the path that created the errors in a report. If an error is not sufficient related to the application path with labels, the method is repeated by the creating the analysis again by substituting additional application paths for the application paths.
    Type: Application
    Filed: October 3, 2008
    Publication date: April 8, 2010
    Applicant: MICROSOFT CORPORATION
    Inventors: Trishul Chilimbi, Krishna Kumar Mehra, Benjamin Robert Liblit, Aditya V. Nori, Kapil Vaswani
  • Publication number: 20080222614
    Abstract: This paper describes preferential path profiling, which enables profiling a specified subset of all possible program paths with very low overhead. Preferential path profiling compactly identifies paths of interest using an array. More specifically, PPP assigns a unique and compact path index identifier to all interesting paths that can be used to index into a path array. The path array contains a second path value identifier that is used to distinguish interesting paths from other program paths This path numbering allows the implementation of preferential path profiling to use array-based counters instead of hash table-based counters for identifying paths of interest and gathering path profiles, which significantly reduces execution time and computational resource overhead during profiling.
    Type: Application
    Filed: March 5, 2007
    Publication date: September 11, 2008
    Applicant: Microsoft Corporation
    Inventors: Trishul Amit Madhukar Chilimbi, Kapil Vaswani, Aditya Vithal Nori
  • Publication number: 20080005208
    Abstract: The described technology provides data structure path profiling. An instrumented version of a program is created that calls a profiler runtime when pointer based data structures are allocated or accessed via pointers. A model of the heap is created and nodes in the model data structures are assigned unique identifiers. Paths traversed through the model data structures are assigned unique identifiers. The paths are counted in order to identify paths through the data structure model that are traversed frequently. The model is useful for providing information about high frequency data paths to the program developer and for various optimization purposes, such as prefetching and or increasing data locality during garbage collection.
    Type: Application
    Filed: June 20, 2006
    Publication date: January 3, 2008
    Applicant: Microsoft Corporation
    Inventors: Kapil Vaswani, Trishul Chilimbi