IP Library Granted Patent US 8,510,757
Granted Patent B2
US 8,510,757 · App. 12/013,344 · Granted Aug 13, 2013

Gathering pages allocated to an application to include in checkpoint information

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,510,757
App. No.
12/013,344
Granted
Aug 13, 2013
Kind
B2
Abstract

Provided are a method, system, and program for gathering pages allocated to an application to include in checkpoint information. A call from an application is intercepted to allocate memory pages to cause indication of pages allocated to the application that have modified data. An operation is initiated to create checkpoint information for the application. Pages allocated to the application that have modified data are determined in response to the operation to create the checkpoint information. The determined pages are saved in the checkpoint information.

Claims (39)

1. A method, comprising:

intercepting a call from an application to an operating system before the call is received by the operating system, the call including a request for the operating system to allocate a plurality of memory pages to the application to reserve the plurality of memory pages for use by the application;

in response to intercepting the call, processing the call such that the plurality of memory pages allocated to the application based on the call are allocated such that modifying data in a memory page from the plurality of memory pages includes indicating that the memory page includes modified data, wherein processing the call includes translating a first memory allocation function to a second memory allocation function such that a write watch parameter is set;

in response to data in the memory page being modified by the application, determining whether the modified memory page was allocated with the write watch parameter as set;

on a condition that the modified memory page is determined to have been allocated with the write watch parameter as set, indicating that the memory page includes modified data;

initiating an operation to create checkpoint information for the application after the call to allocate the memory pages is processed and after the memory page is modified;

obtaining the memory page allocated to the application indicated as having modified data in response to the operation to create the checkpoint information; and

saving the obtained memory page in the checkpoint information.

2. The method of claim 1 , wherein memory pages allocated to the application not including modified data are not saved in the checkpoint information.

3. The method of claim 1 , wherein the write watch parameter directs the operating system to allocate the plurality of memory pages such that the operating system will indicate memory pages from the plurality of memory pages that have modified data.

4. The method of claim 1 , wherein obtaining the memory page comprises:

calling, by a checkpoint agent, the operating system to determine memory pages allocated to the application that have modified data, wherein the checkpoint agent determines memory pages allocated to the application that have modified data from the operating system.

5. A system, comprising:

a processor;

a computer readable medium having an agent and an application, wherein the agent is executed by the processor to perform operations, the operations comprising:

intercepting a call from the application to an operating system before the call is received by the operating system, the call including a request for the operating system to allocate a plurality of memory pages to the application to reserve the plurality of memory pages for use by the application;

in response to intercepting the call, processing the call such that the plurality of memory pages allocated to the application based on the call are allocated such that modifying data in a memory page from the plurality of memory pages includes indicating that the memory page includes modified data, wherein processing the call includes translating a first memory allocation function to a second memory allocation function such that a write watch parameter is set;

in response to data in the memory page being modified by the application, determining whether the modified memory page was allocated with the write watch parameter as set;

on a condition that the modified memory page is determined to have been allocated with the write watch parameter as set, indicating that the memory page includes modified data;

initiating an operation to create checkpoint information for the application after the call to allocate the memory pages is processed and after the memory page is modified;

obtaining the memory page allocated to the application indicated as having modified data in response to the operation to create the checkpoint information; and

saving the obtained memory page in the checkpoint information.

6. The system of claim 5 , wherein memory pages allocated to the application not including modified data are not saved in the checkpoint information.

7. The system of claim 5 , wherein the write watch parameter that directs the operating system to allocate the plurality of memory pages such that the operating system will indicate memory pages from the plurality of memory pages that have modified data.

8. The system of claim 5 , wherein obtaining the memory page comprises:

calling the operating system to determine memory pages allocated to the application that have modified data, wherein the agent determines memory pages allocated to the application that have modified data from the operating system.

9. An article of manufacture comprising a computer readable storage medium having code executed to perform operations, the operations comprising:

intercepting a call from an application to an operating system before the call is received by the operating system, the call including a request for the operating system to allocate a plurality of memory pages to the application to reserve the plurality of memory pages for use by the application;

in response to intercepting the call, processing the call such that the plurality of memory pages allocated to the application based on the call are allocated such that modifying data in a memory page from the plurality of memory pages includes indicating that the memory page includes modified data, wherein processing the call includes translating a first memory allocation function to a second memory allocation function such that a write watch parameter is set;

in response to data in the memory page being modified by the application, determining whether the modified memory page was allocated with the write watch parameter as set;

on a condition that the modified memory page is determined to have been allocated with the write watch parameter as set, indicating that the memory page includes modified data;

initiating an operation to create checkpoint information for the application after the call to allocate the memory pages is processed and after the memory is modified;

obtaining the memory page allocated to the application indicated as having modified data in response to the operation to create the checkpoint information; and

saving the obtained memory page in the checkpoint information.

10. The article of manufacture of claim 9 , wherein memory pages allocated to the application not including modified data are not saved in the checkpoint information.

11. The article of manufacture of claim 9 , wherein the write watch parameter that directs the operating system to allocate the plurality of memory pages such that the operating system will indicate memory pages from the plurality of memory pages that have modified data.

12. The article of manufacture of claim 9 , wherein the code to perform obtaining the memory page further includes agent code to perform:

calling the operating system code to determine memory pages allocated to the application that have modified data, wherein the agent determines memory pages allocated to the application that have modified data from the operating system code.

13. The method of claim 1 , wherein allocating the plurality of memory pages includes assigning the plurality of memory pages for subsequent write access by the application.

Assignments (3)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044101/0299 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2011
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: GOOGLE INC.
Reel/Frame 027463/0594 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2008
From: SUBHRAVETI, DINESH KUMAR
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 020708/0260 →