1. 06 Sep, 2016 14 commits
  2. 15 Aug, 2016 1 commit
    • Pavel Emelyanov's avatar
      criu: Version 2.5 · c0314172
      Pavel Emelyanov authored
      Bug-fix mostly release.
      
      We've also came very close in -dev branch to having x86 32bit
      support, so hopefully we'll have it in 2.6/2.7. Lazy restore
      now in test-able state, but still we want kernel patches to
      leave maintainer's tree, so we still wait.
      Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
      c0314172
  3. 11 Aug, 2016 20 commits
  4. 08 Aug, 2016 5 commits
    • Cyrill Gorcunov's avatar
      seize: Wait the freezer to complete before processing tags · c44683c1
      Cyrill Gorcunov authored
      Currently, when we use cgroup freezer to seize the tasks we start freezer
      and then without waiting the completion of transition procedure we are
      seizing tasks read from freezer @tasks file, using fgets.
      
      This is fragile construction because fgets uses internal buffer and tasks
      we've read might be exiting same time while we're freezing them,
      the kernel won't freeze these exiting tasks because they are dying
      anyway and I fear we might read a pid here which is not even in
      our cgroup anymore but reused with another out of cgroup task.
      
      Thus lets do the following: use iterations to freeze tasks waiting
      for freezer to change its state and then collect/seize all tasks
      in one pass.
      
      For example on container I'm playing with it takes just one iteration
      
       | (00.013690) cg: Set 1 is criu one
       | (00.013705) freezing processes: 1800000 attempst with 100 ms steps
       | (00.013720) freezer.state=THAWED
       | (00.013795) freezer.state=FREEZING
       | (00.113962) freezer.state=FROZEN
       | (00.113990) freezing processes: 1 attempts done
       | (00.114073) SEIZE 240893 (comm systemd): success
       | (00.114110) Warn  (ptrace.c:121): Unable to interrupt task: 240905 (comm kthreadd/1) (Operation not permitted)
       | (00.114136) Warn  (ptrace.c:121): Unable to interrupt task: 240906 (comm khelper) (Operation not permitted)
       | (00.114155) SEIZE 240969 (comm screen): success
       | (00.114166) SEIZE 240970 (comm sendmail): success
       | (00.114179) SEIZE 240971 (comm sendmail): success
       | (00.114189) SEIZE 240972 (comm saslauthd): success
       | (00.114202) SEIZE 240973 (comm crond): success
       | (00.114211) SEIZE 240974 (comm agetty): success
       | (00.114221) SEIZE 240975 (comm agetty): success
       | ...
      Signed-off-by: 's avatarCyrill Gorcunov <gorcunov@virtuozzo.com>
      Acked-by: 's avatarAndrew Vagin <avagin@gmail.com>
      Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
      c44683c1
    • Cyrill Gorcunov's avatar
      seize: Take --timeout option into account when freezing processes · 9fae23fb
      Cyrill Gorcunov authored
      When we're freezing processes we don't count on anything but
      rather do 5 attempts with constantly increasing delay.
      
      Lets rather do the following:
      
       - take --timeout option into account (which is 5 seconds
         by default) and split it into 100 ms steps;
      
       - when frezing processes check freezer status every 100 ms.
      
      Same time it looks that 5 seconds by default is too small
      for high loaded containers. Lets increase it to 10 seconds
      by default.
      
      [ skinsbursky@:
      Frankly speaking, in this particular case increasing intervals are not nice.
      This is not a network issue or something.
      Usually freezing takes less than a second, but more, that, say 200ms.
      Otherwise it takes quite o lot of time.
      If step size is growing all the time, in most of the cases criu will
      waste hundreds of milliseconds between iterX (say, third) and (iterX+1)
      because of the growing step size.
      100ms step looks solid enough: not to small to produce a lot of syscalls
      and not to large to waste a lot of time.
      With previous scheme freezing was usually taking half a second more that
      it should because of this growing step.
      
      [ gorcunov@:
      You won't belive, but been able to sepcify --timeout 0 here allowed
      me and Stas to catch serieous problem in freezer code.
      
      https://lkml.org/lkml/2016/8/3/317
      
      Without this feature we would have to patch criu instead. So you know,
      this would be great to keep it for catching more kernel bugs ;)
      Reported-by: 's avatarStanislav Kinsburskiy <skinsbursky@virtuozzo.com>
      Signed-off-by: 's avatarCyrill Gorcunov <gorcunov@virtuozzo.com>
      Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
      9fae23fb
    • Cyrill Gorcunov's avatar
      log: Print version on startup · 5a43e55e
      Cyrill Gorcunov authored
      For debug sake.
      Signed-off-by: 's avatarCyrill Gorcunov <gorcunov@openvz.org>
      Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
      5a43e55e
    • Andrew Vagin's avatar
      files: don't create a transport socket for each file · e46ba886
      Andrew Vagin authored
      This is an unix dgram socket which doesn't have an address and
      isn't connected to somewhere, so we can use one socket for all processes.
      
      v2: return non-zero code in error cases
      Signed-off-by: 's avatarAndrew Vagin <avagin@virtuozzo.com>
      Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
      e46ba886
    • Stanislav Kinsburskiy's avatar
      zdtm.py: check for link remap files presence on test end · 3e840917
      Stanislav Kinsburskiy authored
      These files have to be removed after successful restore.
      
      v2:
      Check link remap files only for tests with "--link-remap" option in
      descriptor.
      Signed-off-by: 's avatarStanislav Kinsburskiy <skinsbursky@virtuozzo.com>
      Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
      3e840917