1. 02 Mar, 2012 10 commits
  2. 01 Mar, 2012 15 commits
  3. 29 Feb, 2012 12 commits
  4. 28 Feb, 2012 3 commits
    • Kinsbursky Stanislav's avatar
    • Cyrill Gorcunov's avatar
      files: Use sys_kcmp to find file descriptor duplicates v4 · 2acc741a
      Cyrill Gorcunov authored
      We switch generic-object-id concept with sys_kcmp approach,
      which implies changes of image format a bit (and since it's
      early time for project overall, we're allowed to).
      
      In short -- previously every file descriptor had an ID
      generated by a kernel and exported via procfs. If the
      appropriate file descriptors were the same objects in
      kernel memory -- the IDs did match up to bit. It allows
      us to figure out which files were actually the identical
      ones and should be restored in a special way.
      
      Once sys_kcmp system call was merged into the kernel,
      we've got a new opprotunity -- to use this syscall instead.
      The syscall basically compares kernel objects and returns
      ordered results suitable for objects sorting in a userspace.
      
      For us it means -- we treat every file descriptor as a combination
      of 'genid' and 'subid'. While 'genid' serves for fast comparison
      between fds, the 'subid' is kind of a second key, which guarantees
      uniqueness of genid+subid tuple over all file descritors found
      in a process (or group of processes).
      
      To be able to find and dump file descriptors in a single pass we
      collect every fd into a global rbtree, where (!) each node might
      become a root for a subtree as well.
      
      The main tree carries only non-equal genid. If we find genid which
      is already in tree, we need to make sure that it's either indeed
      a duplicate or not. For this we use sys_kcmp syscall and if we
      find that file descriptors are different -- we simply put new
      fd into a subtree.
      Signed-off-by: 's avatarCyrill Gorcunov <gorcunov@openvz.org>
      Acked-by: 's avatarPavel Emelyanov <xemul@parallels.com>
      2acc741a
    • Cyrill Gorcunov's avatar
      files: Rename prepare_fdinfo_global to prepare_shared_fdinfo · 8b187454
      Cyrill Gorcunov authored
      This function simply allocates shared memory. Name it so
      and move it closer to the variables it referes on.
      Signed-off-by: 's avatarCyrill Gorcunov <gorcunov@openvz.org>
      Acked-by: 's avatarPavel Emelyanov <xemul@parallels.com>
      8b187454