1. 02 Nov, 2016 37 commits
  2. 27 Oct, 2016 1 commit
    • Kir Kolyshkin's avatar
      pie: provide own memcpy for x86 · ba7ee44b
      Kir Kolyshkin authored
      When compiling criu with clang, I discovered compilation fails like
      this:
      
          GEN      criu/pie/restorer-blob.h
       restorer_blob: Error (compel/src/lib/handle-elf-host.c:328): Unexpected
       undefined symbol: `memcpy'. External symbol in PIE?
      
      This happens because clang emits a call to memcpy for struct
      initialization (specifically, struct vdso_symtable in vdso_proxify()).
      Naturally, as pie is complied without libc there is no memcpy()
      so "compel piegen" rightfully complains.
      
      There are a number of possible solutions to that:
       1. Write our own vdso_init_symtable() function instead of using =
       2. Use some compiler flags that disables using memcpy
       3. Provide own version of memcpy
      
      Now, (1) looks ugly, (2) I was not able to find such flags. Another
      argument in favor of (3) is we already have implementation of
      builtin_memcpy() optimized for x86.
      
      The only problem is it is not named memcpy(). Using assembler file (.S)
      we can have a function with two names (entry points).
      
      For a similar issue in ppc, see commits 0570dd81 and 1ad78171. Ultimately,
      we should get rid of builtin_mem* names and just use memcpy(), memcmp()
      etc, which in case of non-libc linked objects are to be provided by us.
      
      Cc: Laurent Dufour <ldufour@linux.vnet.ibm.com>
      Cc: Cyrill Gorcunov <gorcunov@openvz.org>
      Signed-off-by: 's avatarKir Kolyshkin <kir@openvz.org>
      Acked-by: 's avatarCyrill Gorcunov <gorcunov@openvz.org>
      Acked-by: 's avatarLaurent Dufour <ldufour@linux.vnet.ibm.com>
      Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
      (cherry picked from commit 214e28089e832d30e381b3780862d3309df17fb8)
      Signed-off-by: 's avatarKir Kolyshkin <kir@openvz.org>
      Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
      ba7ee44b
  3. 24 Oct, 2016 2 commits
    • Adrian Reber's avatar
      Added option to display dump/restore stats · feddef44
      Adrian Reber authored
      Currently criu writes dump/restore statistics to a file. This patch adds
      the option '--display-stats' which additionally displays the same
      information on the console:
      
       # criu dump --display-stats -D /tmp/cp -t <PID>
       Displaying dump stats:
       Freezing time: 133 us
       Frozen time: 135173 us
       Memory dump time: 114760 us
       Memory write time: 85107 us
       IRMAP resolve time: 0 us
       Memory pages scanned: 2099 (0x833)
       Memory pages skipped from parent: 0 (0x0)
       Memory pages written: 1052 (0x41c)
      
       # criu restore --display-stats -D /tmp/cp
       Displaying restore stats:
       Pages compared: 0 (0x0)
       Pages skipped COW: 0 (0x0)
       Pages restored: 51227 (0xc81b)
       Restore time: 57428 us
       Forking time: 51473 us
      
      v2:
       - fix compile failure on 32bit ARM
      
      travis-ci: success for Added option to display dump/restore stats (rev2)
      Signed-off-by: 's avatarAdrian Reber <areber@redhat.com>
      Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
      feddef44
    • Pavel Emelyanov's avatar