Changes

13,246 bytes removed ,  16:59, 14 January 2015
no edit summary
Line 22: Line 22:  
== Functionality ==
 
== Functionality ==
   −
=== Convert images to human-readable and back ===
+
=== Convert images to JSON and back ===
 
This is the replacement for (rather nasty) criu show code. Also this is the way to edit the images before restoring from them.
 
This is the replacement for (rather nasty) criu show code. Also this is the way to edit the images before restoring from them.
   Line 47: Line 47:  
</pre>
 
</pre>
   −
So, here is how core file will look like with --format nice:
  −
<pre>
  −
#CORE
  −
#0 core_entry
  −
    mtype: X86_64
  −
    thread_info {
  −
      clear_tid_addr: 0
  −
      gpregs {
  −
        r15: 0
  −
        r14: 19884608
  −
        r13: 1
  −
        r12: 0
  −
        bp: 19879232
  −
        bx: 0
  −
        r11: 582
  −
        r10: 0
  −
        r9: 0
  −
        r8: 19879232
  −
        ax: 61
  −
        cx: 18446744073709551615
  −
        dx: 0
  −
        si: 140733241187376
  −
        di: 18446744073709551615
  −
        orig_ax: 61
  −
        ip: 213251769082
  −
        cs: 51
  −
        flags: 582
  −
        sp: 140733241187336
  −
        ss: 43
  −
        fs_base: 140140334651200
  −
        gs_base: 0
  −
        ds: 0
  −
        es: 0
  −
        fs: 0
  −
        gs: 0
  −
      }
  −
      fpregs {
  −
        cwd: 895
  −
        swd: 0
  −
        twd: 0
  −
        fop: 0
  −
        rip: 0
  −
        rdp: 0
  −
        mxcsr: 8064
  −
        mxcsr_mask: 65535
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        st_space: 0
  −
        xmm_space: 0
  −
        xmm_space: 0
  −
        xmm_space: 4294967295
  −
        xmm_space: 4294967295
  −
        xmm_space: 16777215
  −
        xmm_space: 16843009
  −
        xmm_space: 16843009
  −
        xmm_space: 16843009
  −
        xmm_space: 4478800
  −
        xmm_space: 661857632
  −
        xmm_space: 1869488186
  −
        xmm_space: 543236212
  −
        xmm_space: 1970037624
  −
        xmm_space: 1680696676
  −
        xmm_space: 775778921
  −
        xmm_space: 544500071
  −
        xmm_space: 2019896621
  −
        xmm_space: 1685417059
  −
        xmm_space: 1768172901
  −
        xmm_space: 1747860850
  −
        xmm_space: 809328999
  −
        xmm_space: 909327153
  −
        xmm_space: 1932405306
  −
        xmm_space: 809334896
  −
        xmm_space: 909327153
  −
        xmm_space: 2016291386
  −
        xmm_space: 1030123635
  −
        xmm_space: 859517232
  −
        xmm_space: 14902
  −
        xmm_space: 0
  −
        xmm_space: 65
  −
        xmm_space: 0
  −
        xmm_space: 0
  −
        xmm_space: 0
  −
        xmm_space: 0
  −
        xmm_space: 0
  −
        xmm_space: 0
  −
        xmm_space: 0
  −
        xmm_space: 4294967295
  −
        xmm_space: 4294967295
  −
        xmm_space: 4294967295
  −
        xmm_space: 4294967295
  −
        xmm_space: 4294967040
  −
        xmm_space: 4294967295
  −
        xmm_space: 0
  −
        xmm_space: 0
  −
        xmm_space: 0
  −
        xmm_space: 0
  −
        xmm_space: 0
  −
        xmm_space: 0
  −
        xmm_space: 0
  −
        xmm_space: 0
  −
        xmm_space: 0
  −
        xmm_space: 0
  −
        xmm_space: 0
  −
        xmm_space: 0
  −
        xmm_space: 0
  −
        xmm_space: 0
  −
        xmm_space: 0
  −
        xmm_space: 0
  −
        xmm_space: 0
  −
        xmm_space: 0
  −
        xmm_space: 0
  −
        xmm_space: 0
  −
      }
  −
    }
  −
    tc {
  −
      task_state: 1
  −
      exit_code: 0
  −
      personality: 0
  −
      flags: 1077960704
  −
      blk_sigset: 65536
  −
      comm: "loop.sh"
  −
      timers {
  −
        real {
  −
          isec: 0
  −
          iusec: 0
  −
          vsec: 0
  −
          vusec: 0
  −
        }
  −
        virt {
  −
          isec: 0
  −
          iusec: 0
  −
          vsec: 0
  −
          vusec: 0
  −
        }
  −
        prof {
  −
          isec: 0
  −
          iusec: 0
  −
          vsec: 0
  −
          vusec: 0
  −
        }
  −
      }
  −
      rlimits {
  −
        rlimits {
  −
          cur: 18446744073709551615
  −
          max: 18446744073709551615
  −
        }
  −
        rlimits {
  −
          cur: 18446744073709551615
  −
          max: 18446744073709551615
  −
        }
  −
        rlimits {
  −
          cur: 18446744073709551615
  −
          max: 18446744073709551615
  −
        }
  −
        rlimits {
  −
          cur: 8388608
  −
          max: 18446744073709551615
  −
        }
  −
        rlimits {
  −
          cur: 0
  −
          max: 18446744073709551615
  −
        }
  −
        rlimits {
  −
          cur: 18446744073709551615
  −
          max: 18446744073709551615
  −
        }
  −
        rlimits {
  −
          cur: 3898
  −
          max: 3898
  −
        }
  −
        rlimits {
  −
          cur: 1024
  −
          max: 4096
  −
        }
  −
        rlimits {
  −
          cur: 65536
  −
          max: 65536
  −
        }
  −
        rlimits {
  −
          cur: 18446744073709551615
  −
          max: 18446744073709551615
  −
        }
  −
        rlimits {
  −
          cur: 18446744073709551615
  −
          max: 18446744073709551615
  −
        }
  −
        rlimits {
  −
          cur: 3898
  −
          max: 3898
  −
        }
  −
        rlimits {
  −
          cur: 819200
  −
          max: 819200
  −
        }
  −
        rlimits {
  −
          cur: 0
  −
          max: 0
  −
        }
  −
        rlimits {
  −
          cur: 0
  −
          max: 0
  −
        }
  −
        rlimits {
  −
          cur: 18446744073709551615
  −
          max: 18446744073709551615
  −
        }
  −
      }
  −
      cg_set: 1
  −
      signals_s {
  −
      }
  −
    }
  −
    thread_core {
  −
      futex_rla: 0
  −
      futex_rla_len: 24
  −
      sched_nice: 0
  −
      sched_policy: 0
  −
      sas {
  −
        ss_sp: 0
  −
        ss_size: 0
  −
        ss_flags: 2
  −
      }
  −
      signals_p {
  −
      }
  −
    }
  −
</pre>
  −
  −
=== Convert to json (and back) ===
  −
  −
Same as before, but the human-readable format is JSON
  −
  −
'''Status: Ready'''<br>
  −
For now, it does it in a dumb way, by just wrapping text_format in brackets and adding commas where needed.
  −
Example:
  −
<pre>
  −
{
  −
    "magic": "CORE",
  −
    "0": {
  −
        "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"
  −
            }
  −
        },
  −
        "pbtype": "core_entry",
  −
        "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",
  −
                "xmm_space": [
  −
                    "0",
  −
                    "0",
  −
                    "4294967295",
  −
                    "4294967295",
  −
                    "16777215",
  −
                    "16843009",
  −
                    "16843009",
  −
                    "16843009",
  −
                    "4478800",
  −
                    "661857632",
  −
                    "1869488186",
  −
                    "543236212",
  −
                    "1970037624",
  −
                    "1680696676",
  −
                    "775778921",
  −
                    "544500071",
  −
                    "2019896621",
  −
                    "1685417059",
  −
                    "1768172901",
  −
                    "1747860850",
  −
                    "809328999",
  −
                    "909327153",
  −
                    "1932405306",
  −
                    "809334896",
  −
                    "909327153",
  −
                    "2016291386",
  −
                    "1030123635",
  −
                    "859517232",
  −
                    "14902",
  −
                    "0",
  −
                    "65",
  −
                    "0",
  −
                    "0",
  −
                    "0",
  −
                    "0",
  −
                    "0",
  −
                    "0",
  −
                    "0",
  −
                    "4294967295",
  −
                    "4294967295",
  −
                    "4294967295",
  −
                    "4294967295",
  −
                    "4294967040",
  −
                    "4294967295",
  −
                    "0",
  −
                    "0",
  −
                    "0",
  −
                    "0",
  −
                    "0",
  −
                    "0",
  −
                    "0",
  −
                    "0",
  −
                    "0",
  −
                    "0",
  −
                    "0",
  −
                    "0",
  −
                    "0",
  −
                    "0",
  −
                    "0",
  −
                    "0",
  −
                    "0",
  −
                    "0",
  −
                    "0",
  −
                    "0"
  −
                ],
  −
                "cwd": "895",
  −
                "mxcsr_mask": "65535"
  −
            },
  −
            "clear_tid_addr": "0",
  −
            "gpregs": {
  −
                "gs": "0",
  −
                "ip": "213251769082",
  −
                "cx": "18446744073709551615",
  −
                "cs": "51",
  −
                "ax": "61",
  −
                "orig_ax": "61",
  −
                "di": "18446744073709551615",
  −
                "es": "0",
  −
                "gs_base": "0",
  −
                "r14": "19884608",
  −
                "r15": "0",
  −
                "r12": "0",
  −
                "r13": "1",
  −
                "r10": "0",
  −
                "r11": "582",
  −
                "fs_base": "140140334651200",
  −
                "bp": "19879232",
  −
                "dx": "0",
  −
                "bx": "0",
  −
                "ds": "0",
  −
                "ss": "43",
  −
                "sp": "140733241187336",
  −
                "r8": "19879232",
  −
                "r9": "0",
  −
                "fs": "0",
  −
                "si": "140733241187376",
  −
                "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": "3898",
  −
                        "cur": "3898"
  −
                    },
  −
                    {
  −
                        "max": "4096",
  −
                        "cur": "1024"
  −
                    },
  −
                    {
  −
                        "max": "65536",
  −
                        "cur": "65536"
  −
                    },
  −
                    {
  −
                        "max": "18446744073709551615",
  −
                        "cur": "18446744073709551615"
  −
                    },
  −
                    {
  −
                        "max": "18446744073709551615",
  −
                        "cur": "18446744073709551615"
  −
                    },
  −
                    {
  −
                        "max": "3898",
  −
                        "cur": "3898"
  −
                    },
  −
                    {
  −
                        "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"
  −
        }
  −
    }
  −
}
  −
</pre>
   
=== Generate core files out of task images ===
 
=== Generate core files out of task images ===