Method and computer readable medium for providing checkpointing to windows application groups
First Claim
1. A non-transitory computer readable medium having computer-executable instructions which, when executed by a processor, cause a processing system to perform a method of checkpointing an application group, the method comprising:
- loading a checkpoint kernel module and registering a coordinator process with the checkpoint kernel module;
launching a plurality of independent applications, each including a plurality of threads, as an application group via the coordinator, wherein launching an application via the coordinator causes the launched application to load a user-space checkpoint library;
wherein an application loading the checkpoint library comprises installing a plurality of function interceptors including at least wait function interceptors which together are configured to intercept system calls made by the threads of the loading application during execution, and, in response to intercepting a system call from a calling thread and determining the coordinator has initiated a group checkpoint, are configured to cause the calling thread to block and wait in an alertable state;
initiating a group checkpoint of the application group via the coordinator including causing each of the independent applications to perform an application checkpoint, wherein performing an application checkpoint includes sending a kernel-mode checkpoint signal to each thread of the application; and
responsive to receiving the kernel-mode checkpoint signal, the receiving thread performs steps comprising;
entering a checkpoint signal handler in the kernel module;
determining the receiving thread was active in kernel-space at the time the kernel-mode signal was received utilizing kernel attributes directly accessible from the checkpoint signal handler; and
inserting a user-mode checkpoint signal at the front of a signal queue of the receiving thread and returning from the checkpoint signal handler in response to the determining that the receiving thread was active in kernel-space, wherein a user-mode signal is only processed by a signaled thread when the signaled thread waits in the alertable state, and wherein the user-mode checkpoint signal is configured to cause the thread to enter a user-mode signal handler in the checkpoint library when processed.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer readable medium and method providing checkpointing to Windows application groups, the computer readable medium having computer-executable instructions for execution by a processing system. The computer-executable instructions may be for launching an application and creating one or more application threads, receiving a checkpoint signal by an application thread, and entering a checkpoint Asynchronous Procedure Call (APC) handler at IRQL APC_LEVEL, the APC handler disposed in a kernel module, acquiring an ETHREAD block and user-mode context for the application thread, and examining an execution state of the one or more application threads at a time of the checkpoint signal.
81 Citations
20 Claims
-
1. A non-transitory computer readable medium having computer-executable instructions which, when executed by a processor, cause a processing system to perform a method of checkpointing an application group, the method comprising:
-
loading a checkpoint kernel module and registering a coordinator process with the checkpoint kernel module; launching a plurality of independent applications, each including a plurality of threads, as an application group via the coordinator, wherein launching an application via the coordinator causes the launched application to load a user-space checkpoint library; wherein an application loading the checkpoint library comprises installing a plurality of function interceptors including at least wait function interceptors which together are configured to intercept system calls made by the threads of the loading application during execution, and, in response to intercepting a system call from a calling thread and determining the coordinator has initiated a group checkpoint, are configured to cause the calling thread to block and wait in an alertable state; initiating a group checkpoint of the application group via the coordinator including causing each of the independent applications to perform an application checkpoint, wherein performing an application checkpoint includes sending a kernel-mode checkpoint signal to each thread of the application; and responsive to receiving the kernel-mode checkpoint signal, the receiving thread performs steps comprising; entering a checkpoint signal handler in the kernel module; determining the receiving thread was active in kernel-space at the time the kernel-mode signal was received utilizing kernel attributes directly accessible from the checkpoint signal handler; and inserting a user-mode checkpoint signal at the front of a signal queue of the receiving thread and returning from the checkpoint signal handler in response to the determining that the receiving thread was active in kernel-space, wherein a user-mode signal is only processed by a signaled thread when the signaled thread waits in the alertable state, and wherein the user-mode checkpoint signal is configured to cause the thread to enter a user-mode signal handler in the checkpoint library when processed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method of checkpointing an application group comprising:
-
loading a checkpoint kernel module and registering a coordinator process with the checkpoint kernel module; launching a plurality of independent applications, each including a plurality of threads, as an application group via the coordinator, wherein launching an application via the coordinator causes the launched application to load a user-space checkpoint library; wherein an application loading the checkpoint library comprises installing a plurality of function interceptors including at least wait function interceptors which together are configured to intercept system calls made by the threads of the loading application during execution, and, in response to intercepting a system call from a calling thread and determining the coordinator has initiated a group checkpoint, are configured to cause the calling thread to block and wait in an alertable state; initiating a group checkpoint of the application group via the coordinator including causing each of the independent applications to perform an application checkpoint, wherein performing an application checkpoint includes sending a kernel-mode checkpoint signal to each thread of the application; and responsive to receiving the kernel-mode checkpoint signal, the receiving thread performs steps comprising; entering a checkpoint signal handler in the kernel module; determining the receiving thread was active in kernel-space at the time the kernel-mode signal was received utilizing kernel attributes directly accessible from the checkpoint signal handler; and inserting a user-mode checkpoint signal at the front of a signal queue of the receiving thread and returning from the checkpoint signal handler in response to the determining that the receiving thread was active in kernel-space, wherein a user-mode signal is only processed by a signaled thread when the signaled thread waits in the alertable state, and wherein the user-mode checkpoint signal is configured to cause the thread to enter a user-mode signal handler in the checkpoint library when processed. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification