Patents by Inventor Sujoy Saraswati

Sujoy Saraswati 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: 10514904
    Abstract: Some examples described herein relate to dynamically applying a patch to a computer application. An external process may be invoked to bring a target process of the computer application to a safe point. A dynamic loader may load a patch library into an address space of the target process, wherein the patch library includes a patched version of a target function or a new function. A specific function in the dynamic loader may be directed to route a function call for the target function to the patched version of the target function or the new function in the patch library.
    Type: Grant
    Filed: June 30, 2014
    Date of Patent: December 24, 2019
    Assignee: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
    Inventors: Sujoy Saraswati, Suprateeka Radhakrishna Hegde, Deepti Kharbanda, Abhay Padlia
  • Patent number: 10338914
    Abstract: Some examples described herein relate to dynamically applying a patch to a shared library. An external process may be invoked to bring target processes that refer to a shared library, to a safe point. In response to a function call from a target process, amongst the target processes, to access a target function in the shared library, the function call may be forwarded to a special function in a dynamic loader, wherein the target function is a function to be patched in the shared library. The special function may determine whether a shared patch library, comprising a patched version of the target function or a new function, is loaded for the target process. In response to determination that the shared patch library is not loaded for the target process, the shared patch library may be loaded only for the target process, and the request for the target function may be routed to the patched version of the target function or the new function, in the shared patch library.
    Type: Grant
    Filed: October 27, 2014
    Date of Patent: July 2, 2019
    Assignee: Hewlett Packard Enterprise Development LP
    Inventors: Sujoy Saraswati, Suprateeka Radhakrishna Hegde, Deepti Kharbanda, Abhay Padlia, Rajesh Kumar Chaurasia
  • Publication number: 20170242687
    Abstract: Some examples described herein relate to dynamically applying a patch to a shared library, An external process may be invoked to bring target processes that refer to a shared library, to a safe point. In response to a function call from a target process, amongst the target processes, to access a target function in the shared library, the function call may be forwarded to a special function in a dynamic loader, wherein the target function is a function to be patched in the shared library. The special function may determine whether a shared patch library, comprising a patched version of the target function or a new function, is loaded for the target process. In response to determination that the shared patch library is not loaded for the target process, the shared patch library may be loaded only for the target process, and the request for the target function may be routed to the patched version of the target function or the new function, in the shared patch library.
    Type: Application
    Filed: October 27, 2014
    Publication date: August 24, 2017
    Inventors: Sujoy Saraswati, Suprateeka Radhakrishna Hegde, Deepti Kharbanda, Abhay Padlia, Rajesh Kumar Chaurasia
  • Publication number: 20170147330
    Abstract: Some examples described herein relate to dynamically applying a patch to a computer application. An external process may be invoked to bring a target process of the computer application to a safe point. A dynamic loader may load a patch library into an address space of the target process, wherein the patch library includes a patched version of a target function or a new function. A specific function in the dynamic loader may be directed to route a function call for the target function to the patched version of the target function or the new function in the patch library.
    Type: Application
    Filed: June 30, 2014
    Publication date: May 25, 2017
    Inventors: Sujoy Saraswati, Suprateeka Radhakrishna Hegde, Deepti Kharbanda, Abhay Padlia
  • Publication number: 20170046087
    Abstract: Some examples described herein relate to improving startup time of managed code. An example includes using a data or code from a previous execution of managed code, wherein the data or code from the previous execution of the managed code is stored in a byte addressable non-volatile memory, during a subsequent execution of the managed code.
    Type: Application
    Filed: July 10, 2014
    Publication date: February 16, 2017
    Inventors: Sandya Srivilliputtur Mannarswamy, Jini Susan George, Sujoy Saraswati
  • Patent number: 9367465
    Abstract: The present invention relates to a computing system which includes a processor and a memory. It also includes a memory access optimizer which is arranged to affect memory access of a program during runtime execution of the software. The program includes a plurality of application elements, each comprising a text field containing a text section, and a memory access field. The memory access optimizer is arranged to implement memory access data in the memory access field in order to affect memory access of the application element. The text section is unchanged by the memory access data implementation.
    Type: Grant
    Filed: April 11, 2008
    Date of Patent: June 14, 2016
    Assignee: Hewlett Packard Enterprise Development LP
    Inventor: Sujoy Saraswati
  • Patent number: 9342295
    Abstract: A method, and a corresponding system, for dynamically updating software while the software is running by automatically dividing a patch into a plurality of micro-updates using compiler analysis. The method includes providing the patch which includes updates to several variable units of the software, including functions, type definitions, and data stores. Next, an interference graph of the patch is generated by creating a node corresponding to each variable unit of the patch and creating connected components by adding edges connecting variable units having an impact expression with a non-zero intersection. The patch is divided into the micro-updates, where each micro-update corresponds to a connected component. The micro-updates are then applied to the software when the variable units of the micro-update are at a safepoint, and at least two of the micro-updates are applied at different times while the software is running.
    Type: Grant
    Filed: December 10, 2015
    Date of Patent: May 17, 2016
    Assignee: Hewlett Packard Enterprise Development LP
    Inventors: Sandya Srivilliputtur Mannarswamy, Sujoy Saraswati
  • Publication number: 20160098268
    Abstract: A method, and a corresponding system, for dynamically updating software while the software is running by automatically dividing a patch into a plurality of micro-updates using compiler analysis. The method includes providing the patch which includes updates to several variable units of the software, including functions, type definitions, and data stores. Next, an interference graph of the patch is generated by creating a node corresponding to each variable unit of the patch and creating connected components by adding edges connecting variable units having an impact expression with a non-zero intersection. The patch is divided into the micro-updates, where each micro-update corresponds to a connected component. The micro-updates are then applied to the software when the variable units of the micro-update are at a safepoint, and at least two of the micro-updates are applied at different times while the software is running.
    Type: Application
    Filed: December 10, 2015
    Publication date: April 7, 2016
    Inventors: Sandya Srivilliputtur Mannarswamy, Sujoy Saraswati
  • Patent number: 9256419
    Abstract: A method, and a corresponding system, for dynamically updating software while the software is running by automatically dividing a patch into a plurality of micro-updates using compiler analysis. The method includes providing the patch which includes updates to several variable units of the software, including functions, type definitions, and data stores. Next, an interference graph of the patch is generated by creating a node corresponding to each variable unit of the patch and creating connected components by adding edges connecting variable units having an impact expression with a non-zero intersection. The patch is divided into the micro-updates, where each micro-update corresponds to a connected component. The micro-updates are then applied to the software when the variable units of the micro-update are at a safepoint, and at least two of the micro-updates are applied at different times while the software is running.
    Type: Grant
    Filed: April 23, 2012
    Date of Patent: February 9, 2016
    Assignee: Hewlett Packard Enterprise Development LP
    Inventors: Sandya Srivilliputtur Mannarswamy, Sujoy Saraswati
  • Publication number: 20130283252
    Abstract: A method, and a corresponding system, for dynamically updating software while the software is running by automatically dividing a patch into a plurality of micro-updates using compiler analysis. The method includes providing the patch which includes updates to several variable units of the software, including functions, type definitions, and data stores. Next, an interference graph of the patch is generated by creating a node corresponding to each variable unit of the patch and creating connected components by adding edges connecting variable units having an impact expression with a non-zero intersection. The patch is divided into the micro-updates, where each micro-update corresponds to a connected component. The micro-updates are then applied to the software when the variable units of the micro-update are at a safepoint, and at least two of the micro-updates are applied at different times while the software is running.
    Type: Application
    Filed: April 23, 2012
    Publication date: October 24, 2013
    Inventors: Sandya Srivilliputtur Mannarswamy, Sujoy Saraswati
  • Patent number: 8495662
    Abstract: A system and method for improving run-time performance of applications with multithreaded and single threaded routines that are linked with libpthreads library is disclosed. In one embodiment, a method for running a mixed ST/MT application program linked with libpthreads library including creating an interceptor library containing pthread application programming interface (pthread_API) call interceptors and loading the interceptor library into the mixed ST/MT application program, and running the mixed ST/MT application program by using light weight (LW) and heavy weight (HW) synchronization routines based on determining switchovers between ST and MT program modes, respectively, during run-time using the interceptor library.
    Type: Grant
    Filed: September 23, 2008
    Date of Patent: July 23, 2013
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Sandya Srivilliputtur Mannarswamy, Sujoy Saraswati, Prakash Sathyanath Raghavendra
  • Patent number: 7971031
    Abstract: A method, system and computer program for modifying an executing application, comprising monitoring the executing application to identify at least one of a hot load instruction, a hot store instruction and an active prefetch instruction that contributes to cache congestion; where the monitoring identifies a hot load instruction, enabling at least one prefetch associated with the hot load instruction; where the monitoring identifies a hot store instruction, enabling at least one prefetch associated with the hot store instruction; and where the monitoring identifies an active prefetch instruction that contributes to cache congestion, one of disabling the active prefetch instruction and reducing the effectiveness of the active prefetch instruction.
    Type: Grant
    Filed: May 29, 2007
    Date of Patent: June 28, 2011
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Sujoy Saraswati, Teresa Johnson
  • Publication number: 20100036981
    Abstract: Included are embodiments for finding hot call paths. More specifically, at least one embodiment of a method includes creating a structure for at least one function node and creating a directed acyclic graph (DAG) by adding a first root node, the first root node being a virtual root node. Some embodiments include performing a reverse topological numbering for the DAG.
    Type: Application
    Filed: August 27, 2008
    Publication date: February 11, 2010
    Inventors: Raghavendra Ganesh, Sujoy Saraswati
  • Publication number: 20100037242
    Abstract: A system and method for improving run-time performance of applications with multithreaded and single threaded routines that are linked with libpthreads library is disclosed. In one embodiment, a method for running a mixed ST/MT application program linked with libpthreads library including creating an interceptor library containing pthread application programming interface (pthread_API) call interceptors and loading the interceptor library into the mixed ST/MT application program, and running the mixed ST/MT application program by using light weight (LW) and heavy weight (HW) synchronization routines based on determining switchovers between ST and MT program modes, respectively, during run-time using the interceptor library.
    Type: Application
    Filed: September 23, 2008
    Publication date: February 11, 2010
    Inventors: Sandya Srivilliputtur MANNARSWAMY, Sujoy SARASWATI, Prakash Sathyanath RAGHAVENDRA
  • Publication number: 20090077350
    Abstract: A method, system and computer program for modifying an executing application, comprising monitoring the executing application to identify at least one of a hot load instruction, a hot store instruction and an active prefetch instruction that contributes to cache congestion; where the monitoring identifies a hot load instruction, enabling at least one prefetch associated with the hot load instruction; where the monitoring identifies a hot store instruction, enabling at least one prefetch associated with the hot store instruction; and where the monitoring identifies an active prefetch instruction that contributes to cache congestion, one of disabling the active prefetch instruction and reducing the effectiveness of the active prefetch instructions.
    Type: Application
    Filed: May 29, 2007
    Publication date: March 19, 2009
    Inventors: Sujoy Saraswati, Teresa Johnson
  • Publication number: 20080256524
    Abstract: The present invention relates to a computing system which includes a processor and a memory. It also includes a memory access optimizer which is arranged to affect memory access of a program during runtime execution of the software. The program includes a plurality of application elements, each comprising a text field containing a text section, and a memory access field. The memory access optimizer is arranged to implement memory access data in the memory access field in order to affect memory access of the application element. The text section is unchanged by the memory access data implementation.
    Type: Application
    Filed: April 11, 2008
    Publication date: October 16, 2008
    Applicant: Hewlett Packard Development Company L.P.
    Inventor: Sujoy Saraswati
  • Patent number: 7415699
    Abstract: A monitoring interface, includes logic responsive to a pre-fork event, the pre-fork event responsive to a vfork system call. The pre-fork event includes indicia that identifies a child process to be created in accordance with the vfork system call. A method for controlling the execution of a child process created from a parent process, where the parent process is monitored by a software tool includes, receiving indicia that a vfork system call will be executed by the parent process, suspending execution of the parent process, extracting a process identifier from the indicia of the vfork system call, the process identifier corresponding to a child process to be generated by the parent process when the parent process executes the vfork system call, setting a process monitor thread to observe the child process, and resuming execution of the parent process to enable the parent process to execute past the vfork system call.
    Type: Grant
    Filed: June 27, 2003
    Date of Patent: August 19, 2008
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Eric Gouriou, Robert Hundt, Sujoy Saraswati, Sushanth Rai, Edward Sharpe
  • Patent number: 7185320
    Abstract: A software tool includes logic configured to enable a child process that inherits the address space of a modified parent process to execute an unaltered version of the address space when the child process inherits the altered address space of the parent process. A method for processing breakpoint events in a child process created from a parent process, when the parent process is modified by a software tool includes, storing unmodified parent process code replaced by each occurrence of a breakpoint inserted into the address space during modification of the parent process, monitoring execution of a child process created by the parent process for an initial breakpoint in the address space, suspending execution of the child process in response to an initial breakpoint, replacing each occurrence of a breakpoint in the address space with the unmodified parent process code, and resuming execution of the child process.
    Type: Grant
    Filed: June 27, 2003
    Date of Patent: February 27, 2007
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Eric Gouriou, Robert Hundt, Sujoy Saraswati
  • Publication number: 20040268317
    Abstract: A debug interface, includes logic responsive to a pre-fork event, the pre-fork event responsive to a fork instruction call wherein the pre-fork event includes indicia that identifies a child process to be created in accordance with the fork instruction call. A method for controlling the execution of a child process created from a parent process, where the parent process is instrumented by a software tool includes, receiving indicia that a fork instruction will be executed by the parent process, suspending execution of the parent process, extracting a process identifier from the indicia of the fork instruction, the process identifier corresponding to a child process to be generated by the parent process when the parent process executes the fork instruction, setting a process monitor thread to observe the child process, and resuming execution of the parent process to enable the parent process to execute the fork instruction.
    Type: Application
    Filed: June 27, 2003
    Publication date: December 30, 2004
    Inventors: Eric Gouriou, Robert Hundt, Sujoy Saraswati, Sushanth Rai, Edward Sharpe
  • Publication number: 20040268315
    Abstract: A software tool includes logic configured to enable a child process that inherits the address space of a modified parent process to execute an unaltered version of the address space when the child process inherits the altered address space of the parent process. A method for processing breakpoint events in a child process created from a parent process, when the parent process is modified by a software tool includes, storing unmodified parent process code replaced by each occurrence of a breakpoint inserted into the address space during modification of the parent process, monitoring execution of a child process created by the parent process for an initial breakpoint in the address space, suspending execution of the child process in response to an initial breakpoint, replacing each occurrence of a breakpoint in the address space with the unmodified parent process code, and resuming execution of the child process.
    Type: Application
    Filed: June 27, 2003
    Publication date: December 30, 2004
    Inventors: Eric Gouriou, Robert Hundt, Sujoy Saraswati