Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

Open Source

Checkpointing, CHPOX, and Linux


How Checkpointing Works

Here's a general description of how CHPOX works:

  1. After CHPOX's module (chpox_mod) is successfully compiled, it must be loaded into the kernel before any checkpointing can be done.

  2. To begin checkpointing, users must register the process (its children will automatically get registered) by either directly inserting the parameter to /proc/chpox, or managing it via chpoxctl (a userspace tool). If needed, you can also register the linked library so CHPOX can resume the process successfully. (According to my experience, this can be ignored depending what type of program you have).

    You also need to define a signal number for CHPOX to use. This signal can be set per registered process tree. You usually assign an unused signal number (like "signal number 31--SIGSYS") to avoid conflict with standard signals.

  3. To make a checkpoint, you can simply send the signal to the target process (normally using kill). The target process receives the signal and autonomously does the following:

    1. Save header of the dump file that contain information about hardware architecture, kernel version, dump file creation time and number of processes in the file.

    2. Save process name into a dump file. The name of the children's process are saved later if the parameter passed to CHPOX says to do so.

    3. Via task_struct info, CHPOX finds its related virtual memory area (using the find_vma() procedure) and dumps the content from vm_start to vm_end. To do this, CHPOX utilizes a modified version of VMADump (from BProc and Scyld).

    4. CHPOX also records additional information, such as opened UNIX domain sockets, opened files, status of pipes, current working directory. This information is saved into a single dump file. Checkpointing can be done as often as you like, and the dump file contains the latest successful checkpoint.

    5. If the parameter passed to chpox says to save children processes, the above steps (except for the first) are repeated to each child process.

    6. If you want to resume from the dump file, you must pass the dump file as an argument to the ld-chpox tool. To avoid conflict, make sure the old process has completed or has been killed; otherwise, unexpected errors can occur.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.