Difference between revisions of "CRIT"

From CRIU
Jump to: navigation, search
(use {{status}} template)
(Add example)
Line 55: Line 55:
 
}
 
}
 
</pre>
 
</pre>
 +
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
 +
<b>Example("crit decode -i core-20700.img")</b>
 +
<div class="mw-collapsible-content">
 +
<pre>
 +
{
 +
    &quot;magic&quot;: &quot;CORE&quot;,
 +
    &quot;entries&quot;: [
 +
        {
 +
            &quot;mtype&quot;: &quot;X86_64&quot;,
 +
            &quot;thread_core&quot;: {
 +
                &quot;futex_rla_len&quot;: 24,
 +
                &quot;sched_policy&quot;: 0,
 +
                &quot;sched_nice&quot;: 0,
 +
                &quot;futex_rla&quot;: 0,
 +
                &quot;signals_p&quot;: {},
 +
                &quot;sas&quot;: {
 +
                    &quot;ss_size&quot;: 0,
 +
                    &quot;ss_sp&quot;: 0,
 +
                    &quot;ss_flags&quot;: 2
 +
                }
 +
            },
 +
            &quot;thread_info&quot;: {
 +
                &quot;fpregs&quot;: {
 +
                    &quot;st_space&quot;: [
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0
 +
                    ],
 +
                    &quot;fop&quot;: 0,
 +
                    &quot;rdp&quot;: 0,
 +
                    &quot;twd&quot;: 0,
 +
                    &quot;mxcsr&quot;: 8064,
 +
                    &quot;swd&quot;: 0,
 +
                    &quot;rip&quot;: 0,
 +
                    &quot;xsave&quot;: {
 +
                        &quot;ymmh_space&quot;: [
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0,
 +
                            0
 +
                        ],
 +
                        &quot;xstate_bv&quot;: 2
 +
                    },
 +
                    &quot;xmm_space&quot;: [
 +
                        1953064751,
 +
                        1769104175,
 +
                        1702113141,
 +
                        1664054387,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        4294901760,
 +
                        255,
 +
                        0,
 +
                        792358505,
 +
                        1953460082,
 +
                        1852400175,
 +
                        0,
 +
                        942882145,
 +
                        876295483,
 +
                        774519349,
 +
                        1031303283,
 +
                        893073459,
 +
                        976565307,
 +
                        1937255978,
 +
                        859661936,
 +
                        993344312,
 +
                        3814708,
 +
                        65,
 +
                        0,
 +
                        21771440,
 +
                        0,
 +
                        21771552,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        4278190080,
 +
                        4294967295,
 +
                        4294967040,
 +
                        4294967295,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        4278190080,
 +
                        4294967040,
 +
                        4294967295,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0,
 +
                        0
 +
                    ],
 +
                    &quot;cwd&quot;: 0,
 +
                    &quot;mxcsr_mask&quot;: 65535
 +
                },
 +
                &quot;clear_tid_addr&quot;: 0,
 +
                &quot;gpregs&quot;: {
 +
                    &quot;gs&quot;: 0,
 +
                    &quot;ip&quot;: 140137968588056,
 +
                    &quot;cx&quot;: 18446744073709551615,
 +
                    &quot;cs&quot;: 51,
 +
                    &quot;ax&quot;: 61,
 +
                    &quot;orig_ax&quot;: 61,
 +
                    &quot;di&quot;: 18446744073709551615,
 +
                    &quot;es&quot;: 0,
 +
                    &quot;gs_base&quot;: 0,
 +
                    &quot;r14&quot;: 0,
 +
                    &quot;r15&quot;: 4294967295,
 +
                    &quot;r12&quot;: 21789168,
 +
                    &quot;r13&quot;: 0,
 +
                    &quot;r10&quot;: 0,
 +
                    &quot;r11&quot;: 582,
 +
                    &quot;fs_base&quot;: 140137978173184,
 +
                    &quot;bp&quot;: 2560,
 +
                    &quot;dx&quot;: 0,
 +
                    &quot;bx&quot;: 0,
 +
                    &quot;ds&quot;: 0,
 +
                    &quot;ss&quot;: 43,
 +
                    &quot;sp&quot;: 140736135950616,
 +
                    &quot;r8&quot;: 21789168,
 +
                    &quot;r9&quot;: 0,
 +
                    &quot;fs&quot;: 0,
 +
                    &quot;si&quot;: 140736135950656,
 +
                    &quot;flags&quot;: 582
 +
                }
 +
            },
 +
            &quot;tc&quot;: {
 +
                &quot;timers&quot;: {
 +
                    &quot;real&quot;: {
 +
                        &quot;isec&quot;: 0,
 +
                        &quot;vusec&quot;: 0,
 +
                        &quot;iusec&quot;: 0,
 +
                        &quot;vsec&quot;: 0
 +
                    },
 +
                    &quot;virt&quot;: {
 +
                        &quot;isec&quot;: 0,
 +
                        &quot;vusec&quot;: 0,
 +
                        &quot;iusec&quot;: 0,
 +
                        &quot;vsec&quot;: 0
 +
                    },
 +
                    &quot;prof&quot;: {
 +
                        &quot;isec&quot;: 0,
 +
                        &quot;vusec&quot;: 0,
 +
                        &quot;iusec&quot;: 0,
 +
                        &quot;vsec&quot;: 0
 +
                    }
 +
                },
 +
                &quot;cg_set&quot;: 1,
 +
                &quot;signals_s&quot;: {},
 +
                &quot;blk_sigset&quot;: 65536,
 +
                &quot;exit_code&quot;: 0,
 +
                &quot;rlimits&quot;: {
 +
                    &quot;rlimits&quot;: [
 +
                        {
 +
                            &quot;max&quot;: 18446744073709551615,
 +
                            &quot;cur&quot;: 18446744073709551615
 +
                        },
 +
                        {
 +
                            &quot;max&quot;: 18446744073709551615,
 +
                            &quot;cur&quot;: 18446744073709551615
 +
                        },
 +
                        {
 +
                            &quot;max&quot;: 18446744073709551615,
 +
                            &quot;cur&quot;: 18446744073709551615
 +
                        },
 +
                        {
 +
                            &quot;max&quot;: 18446744073709551615,
 +
                            &quot;cur&quot;: 8388608
 +
                        },
 +
                        {
 +
                            &quot;max&quot;: 18446744073709551615,
 +
                            &quot;cur&quot;: 0
 +
                        },
 +
                        {
 +
                            &quot;max&quot;: 18446744073709551615,
 +
                            &quot;cur&quot;: 18446744073709551615
 +
                        },
 +
                        {
 +
                            &quot;max&quot;: 62845,
 +
                            &quot;cur&quot;: 62845
 +
                        },
 +
                        {
 +
                            &quot;max&quot;: 4096,
 +
                            &quot;cur&quot;: 1024
 +
                        },
 +
                        {
 +
                            &quot;max&quot;: 65536,
 +
                            &quot;cur&quot;: 65536
 +
                        },
 +
                        {
 +
                            &quot;max&quot;: 18446744073709551615,
 +
                            &quot;cur&quot;: 18446744073709551615
 +
                        },
 +
                        {
 +
                            &quot;max&quot;: 18446744073709551615,
 +
                            &quot;cur&quot;: 18446744073709551615
 +
                        },
 +
                        {
 +
                            &quot;max&quot;: 62845,
 +
                            &quot;cur&quot;: 62845
 +
                        },
 +
                        {
 +
                            &quot;max&quot;: 819200,
 +
                            &quot;cur&quot;: 819200
 +
                        },
 +
                        {
 +
                            &quot;max&quot;: 0,
 +
                            &quot;cur&quot;: 0
 +
                        },
 +
                        {
 +
                            &quot;max&quot;: 0,
 +
                            &quot;cur&quot;: 0
 +
                        },
 +
                        {
 +
                            &quot;max&quot;: 18446744073709551615,
 +
                            &quot;cur&quot;: 18446744073709551615
 +
                        }
 +
                    ]
 +
                },
 +
                &quot;comm&quot;: &quot;loop.sh&quot;,
 +
                &quot;flags&quot;: 1077960704,
 +
                &quot;task_state&quot;: 1,
 +
                &quot;personality&quot;: 0
 +
            }
 +
        }
 +
    ]
 +
}
 +
</pre>
 +
</div>
 +
</div>
  
 
=== Generate core files out of task images ===
 
=== Generate core files out of task images ===

Revision as of 16:29, 15 January 2015

This page describes the CRiu Image Tool.

Usage

usage: crit [-h] [-i IN] [-o OUT] [-f {raw,nice}] {decode,encode}

CRiu Image Tool

positional arguments:
  {decode,encode}       decode/encode - convert criu image from/to binary type
                        to/from json

optional arguments:
  -h, --help            show this help message and exit
  -i IN, --in IN        input file (stdin by default)
  -o OUT, --out OUT     output file (stdout by default)
  -f {raw,nice}, --format {raw,nice}
                        well-formated output (by default: raw for files and
                        nice for stdout)

Functionality

Convert images to JSON and back

Status: ready

This is the replacement for (rather nasty) criu show code. Also this is the way to edit the images before restoring from them.

It uses text_format as a human-readable format for protobuf messages.

The output file is structured in the following way.

With "--format raw":

{ "magic" : "FOO", "entries" : [{"foo": "bar", "bar": "foo", "extra": "abc"}, {"foo": "bar", "bar" : "foo", "extra" : "abc"} ]}

With "--format nice"(default for stdout):

{
    "magic" : "FOO",
    "entries" : [
        {
            "foo" : "bar",
            "bar" : "foo",
            "extra" : "abc"
        },
        {
            "foo" : "bar",
            "bar" : "foo",
            "extra" : "abc"
        }
    ]
}

Example("crit decode -i core-20700.img")

{
    "magic": "CORE", 
    "entries": [
        {
            "mtype": "X86_64", 
            "thread_core": {
                "futex_rla_len": 24, 
                "sched_policy": 0, 
                "sched_nice": 0, 
                "futex_rla": 0, 
                "signals_p": {}, 
                "sas": {
                    "ss_size": 0, 
                    "ss_sp": 0, 
                    "ss_flags": 2
                }
            }, 
            "thread_info": {
                "fpregs": {
                    "st_space": [
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0
                    ], 
                    "fop": 0, 
                    "rdp": 0, 
                    "twd": 0, 
                    "mxcsr": 8064, 
                    "swd": 0, 
                    "rip": 0, 
                    "xsave": {
                        "ymmh_space": [
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            0
                        ], 
                        "xstate_bv": 2
                    }, 
                    "xmm_space": [
                        1953064751, 
                        1769104175, 
                        1702113141, 
                        1664054387, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        4294901760, 
                        255, 
                        0, 
                        792358505, 
                        1953460082, 
                        1852400175, 
                        0, 
                        942882145, 
                        876295483, 
                        774519349, 
                        1031303283, 
                        893073459, 
                        976565307, 
                        1937255978, 
                        859661936, 
                        993344312, 
                        3814708, 
                        65, 
                        0, 
                        21771440, 
                        0, 
                        21771552, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        4278190080, 
                        4294967295, 
                        4294967040, 
                        4294967295, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        4278190080, 
                        4294967040, 
                        4294967295, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0, 
                        0
                    ], 
                    "cwd": 0, 
                    "mxcsr_mask": 65535
                }, 
                "clear_tid_addr": 0, 
                "gpregs": {
                    "gs": 0, 
                    "ip": 140137968588056, 
                    "cx": 18446744073709551615, 
                    "cs": 51, 
                    "ax": 61, 
                    "orig_ax": 61, 
                    "di": 18446744073709551615, 
                    "es": 0, 
                    "gs_base": 0, 
                    "r14": 0, 
                    "r15": 4294967295, 
                    "r12": 21789168, 
                    "r13": 0, 
                    "r10": 0, 
                    "r11": 582, 
                    "fs_base": 140137978173184, 
                    "bp": 2560, 
                    "dx": 0, 
                    "bx": 0, 
                    "ds": 0, 
                    "ss": 43, 
                    "sp": 140736135950616, 
                    "r8": 21789168, 
                    "r9": 0, 
                    "fs": 0, 
                    "si": 140736135950656, 
                    "flags": 582
                }
            }, 
            "tc": {
                "timers": {
                    "real": {
                        "isec": 0, 
                        "vusec": 0, 
                        "iusec": 0, 
                        "vsec": 0
                    }, 
                    "virt": {
                        "isec": 0, 
                        "vusec": 0, 
                        "iusec": 0, 
                        "vsec": 0
                    }, 
                    "prof": {
                        "isec": 0, 
                        "vusec": 0, 
                        "iusec": 0, 
                        "vsec": 0
                    }
                }, 
                "cg_set": 1, 
                "signals_s": {}, 
                "blk_sigset": 65536, 
                "exit_code": 0, 
                "rlimits": {
                    "rlimits": [
                        {
                            "max": 18446744073709551615, 
                            "cur": 18446744073709551615
                        }, 
                        {
                            "max": 18446744073709551615, 
                            "cur": 18446744073709551615
                        }, 
                        {
                            "max": 18446744073709551615, 
                            "cur": 18446744073709551615
                        }, 
                        {
                            "max": 18446744073709551615, 
                            "cur": 8388608
                        }, 
                        {
                            "max": 18446744073709551615, 
                            "cur": 0
                        }, 
                        {
                            "max": 18446744073709551615, 
                            "cur": 18446744073709551615
                        }, 
                        {
                            "max": 62845, 
                            "cur": 62845
                        }, 
                        {
                            "max": 4096, 
                            "cur": 1024
                        }, 
                        {
                            "max": 65536, 
                            "cur": 65536
                        }, 
                        {
                            "max": 18446744073709551615, 
                            "cur": 18446744073709551615
                        }, 
                        {
                            "max": 18446744073709551615, 
                            "cur": 18446744073709551615
                        }, 
                        {
                            "max": 62845, 
                            "cur": 62845
                        }, 
                        {
                            "max": 819200, 
                            "cur": 819200
                        }, 
                        {
                            "max": 0, 
                            "cur": 0
                        }, 
                        {
                            "max": 0, 
                            "cur": 0
                        }, 
                        {
                            "max": 18446744073709551615, 
                            "cur": 18446744073709551615
                        }
                    ]
                }, 
                "comm": "loop.sh", 
                "flags": 1077960704, 
                "task_state": 1, 
                "personality": 0
            }
        }
    ]
}

Generate core files out of task images

Status: not ready

All the needed information is in core-$pid.img and pagemap-$pid.img

On-the-fly conversion

Status: not ready

There's an idea to make CRIU spawn CRIT and read images "through" it, to allow for at-the-restore-time modifications

Convert between different image versions

Status: not ready

Right now we store the images version in inventory.img and collect info about what's bad with V1 images. If some day we have v2, CRIT will convert from v1. And for backward compatibility we'll use on-the-fly conversion when restoring from old images.

Show images statistics

Status: not ready

E.g. -- total number of processes, files, memory, sockets, etc.

Check/validate images

Status: not ready

Check that

  • all images are present
  • the inter-images IDs are in consistent state