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: 10514904Abstract: 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: GrantFiled: June 30, 2014Date of Patent: December 24, 2019Assignee: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LPInventors: Sujoy Saraswati, Suprateeka Radhakrishna Hegde, Deepti Kharbanda, Abhay Padlia
-
Patent number: 10338914Abstract: 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: GrantFiled: October 27, 2014Date of Patent: July 2, 2019Assignee: Hewlett Packard Enterprise Development LPInventors: Sujoy Saraswati, Suprateeka Radhakrishna Hegde, Deepti Kharbanda, Abhay Padlia, Rajesh Kumar Chaurasia
-
Publication number: 20170242687Abstract: 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: ApplicationFiled: October 27, 2014Publication date: August 24, 2017Inventors: Sujoy Saraswati, Suprateeka Radhakrishna Hegde, Deepti Kharbanda, Abhay Padlia, Rajesh Kumar Chaurasia
-
Publication number: 20170147330Abstract: 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: ApplicationFiled: June 30, 2014Publication date: May 25, 2017Inventors: Sujoy Saraswati, Suprateeka Radhakrishna Hegde, Deepti Kharbanda, Abhay Padlia
-
Publication number: 20170046087Abstract: 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: ApplicationFiled: July 10, 2014Publication date: February 16, 2017Inventors: Sandya Srivilliputtur Mannarswamy, Jini Susan George, Sujoy Saraswati
-
Patent number: 9367465Abstract: 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: GrantFiled: April 11, 2008Date of Patent: June 14, 2016Assignee: Hewlett Packard Enterprise Development LPInventor: Sujoy Saraswati
-
Patent number: 9342295Abstract: 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: GrantFiled: December 10, 2015Date of Patent: May 17, 2016Assignee: Hewlett Packard Enterprise Development LPInventors: Sandya Srivilliputtur Mannarswamy, Sujoy Saraswati
-
Publication number: 20160098268Abstract: 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: ApplicationFiled: December 10, 2015Publication date: April 7, 2016Inventors: Sandya Srivilliputtur Mannarswamy, Sujoy Saraswati
-
Patent number: 9256419Abstract: 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: GrantFiled: April 23, 2012Date of Patent: February 9, 2016Assignee: Hewlett Packard Enterprise Development LPInventors: Sandya Srivilliputtur Mannarswamy, Sujoy Saraswati
-
Publication number: 20130283252Abstract: 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: ApplicationFiled: April 23, 2012Publication date: October 24, 2013Inventors: Sandya Srivilliputtur Mannarswamy, Sujoy Saraswati
-
Patent number: 8495662Abstract: 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: GrantFiled: September 23, 2008Date of Patent: July 23, 2013Assignee: Hewlett-Packard Development Company, L.P.Inventors: Sandya Srivilliputtur Mannarswamy, Sujoy Saraswati, Prakash Sathyanath Raghavendra
-
Patent number: 7971031Abstract: 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: GrantFiled: May 29, 2007Date of Patent: June 28, 2011Assignee: Hewlett-Packard Development Company, L.P.Inventors: Sujoy Saraswati, Teresa Johnson
-
Publication number: 20100036981Abstract: 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: ApplicationFiled: August 27, 2008Publication date: February 11, 2010Inventors: Raghavendra Ganesh, Sujoy Saraswati
-
Publication number: 20100037242Abstract: 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: ApplicationFiled: September 23, 2008Publication date: February 11, 2010Inventors: Sandya Srivilliputtur MANNARSWAMY, Sujoy SARASWATI, Prakash Sathyanath RAGHAVENDRA
-
Publication number: 20090077350Abstract: 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: ApplicationFiled: May 29, 2007Publication date: March 19, 2009Inventors: Sujoy Saraswati, Teresa Johnson
-
Publication number: 20080256524Abstract: 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: ApplicationFiled: April 11, 2008Publication date: October 16, 2008Applicant: Hewlett Packard Development Company L.P.Inventor: Sujoy Saraswati
-
Patent number: 7415699Abstract: 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: GrantFiled: June 27, 2003Date of Patent: August 19, 2008Assignee: Hewlett-Packard Development Company, L.P.Inventors: Eric Gouriou, Robert Hundt, Sujoy Saraswati, Sushanth Rai, Edward Sharpe
-
Patent number: 7185320Abstract: 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: GrantFiled: June 27, 2003Date of Patent: February 27, 2007Assignee: Hewlett-Packard Development Company, L.P.Inventors: Eric Gouriou, Robert Hundt, Sujoy Saraswati
-
Publication number: 20040268317Abstract: 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: ApplicationFiled: June 27, 2003Publication date: December 30, 2004Inventors: Eric Gouriou, Robert Hundt, Sujoy Saraswati, Sushanth Rai, Edward Sharpe
-
Publication number: 20040268315Abstract: 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: ApplicationFiled: June 27, 2003Publication date: December 30, 2004Inventors: Eric Gouriou, Robert Hundt, Sujoy Saraswati