[CRIU] [PATCHv3 0/7] Large pages support for aarch64/ppc64

Adrian Reber areber at redhat.com
Mon Apr 9 18:40:10 MSK 2018


I tested it on s390x, ppc64le and aarch64.

s390x:

################### 1 TEST(S) FAILED (TOTAL 356/SKIPPED 34) ####################
 * zdtm/static/s390x_gs_threads(h)
##################################### FAIL #####################################

As the kernel has no guarded storage support enabled, that is a pretty
good result.

ppc64le:

################### 3 TEST(S) FAILED (TOTAL 353/SKIPPED 35) ####################
 * zdtm/static/aio00(h)
 * zdtm/static/aio01(h)
 * zdtm/static/maps06(h)
##################################### FAIL #####################################

========================= Run zdtm/static/maps06 in h ==========================
Start test
./maps06 --pidfile=maps06.pid --outfile=maps06.out --filename=maps06.test
 Test zdtm/static/maps06 FAIL at start: [Errno 2] No such file or directory: 'zdtm/static/maps06.pid' 
Test output: ================================
05:21:20.159:    47: ERR: test.c:252: Test exited unexpectedly with code 1

 <<< ================================

========================== Run zdtm/static/aio00 in h ==========================
Start test
./aio00 --pidfile=aio00.pid --outfile=aio00.out
Run criu dump
Run criu restore
=[log]=> dump/zdtm/static/aio00/48/1/restore.log
------------------------ grep Error ------------------------
(00.038557)pie: 48: vdso: image [vdso] 0x7fff86ac0000-0x7fff86ae0000 [vvar] 0>
(00.038557)pie: 48: xffffffffffffffff-0xffffffffffffffff
(00.038575)pie: 48: vdso: Runtime vdso/vvar matches dumpee, remap inplace
(00.038588)pie: 48: vdso: Remap rt-vdso 0x80000 -> 0x7fff86ac0000
(00.038642)pie: 48: Error (criu/pie/restorer.c:702): Ring setup failed with ->
(00.038642)pie: 48: 22
(00.038642)pie: 48: 22
(00.038661)pie: 48: Error (criu/pie/restorer.c:1781): Restorer fail 48
(00.038666) Error (criu/cr-restore.c:2346): Failed to wait inprogress tasks
(00.038689) Error (criu/cr-restore.c:2523): Restoring FAILED.
------------------------ ERROR OVER ------------------------
################# Test zdtm/static/aio00 FAIL at CRIU restore ##################

========================== Run zdtm/static/aio01 in h ==========================
Start test
./aio01 --pidfile=aio01.pid --outfile=aio01.out
Run criu dump
Run criu restore
=[log]=> dump/zdtm/static/aio01/48/1/restore.log
------------------------ grep Error ------------------------
(00.038850)pie: 48: vdso: image [vdso] 0x7fffb12f0000-0x7fffb1310000 [vvar] 0>
(00.038850)pie: 48: xffffffffffffffff-0xffffffffffffffff
(00.038864)pie: 48: vdso: Runtime vdso/vvar matches dumpee, remap inplace
(00.038878)pie: 48: vdso: Remap rt-vdso 0x80000 -> 0x7fffb12f0000
(00.038927)pie: 48: Error (criu/pie/restorer.c:702): Ring setup failed with ->
(00.038927)pie: 48: 22
(00.038927)pie: 48: 22
(00.038946)pie: 48: Error (criu/pie/restorer.c:1781): Restorer fail 48
(00.038952) Error (criu/cr-restore.c:2346): Failed to wait inprogress tasks
(00.038978) Error (criu/cr-restore.c:2523): Restoring FAILED.
------------------------ ERROR OVER ------------------------
################# Test zdtm/static/aio01 FAIL at CRIU restore ##################


and aarch64:

################### 21 TEST(S) FAILED (TOTAL 353/SKIPPED 35) ###################
 * zdtm/static/aio00(h)
 * zdtm/static/aio01(h)
 * zdtm/static/fd(h)
 * zdtm/static/userns00(uns)
 * zdtm/static/userns01(uns)
 * zdtm/static/userns02(uns)
 * zdtm/static/userns-leaked-sock(uns)
 * zdtm/static/netns_sub_veth(uns)
 * zdtm/static/pidns01(uns)
 * zdtm/static/maps06(h)
 * zdtm/static/write_read10(h)
 * zdtm/static/sk-unix-rel(h)
 * zdtm/static/unlink_fstat02(h)
 * zdtm/static/unlink_mmap02(h)
 * zdtm/static/cow01(h)
 * zdtm/static/sockets00(h)
 * zdtm/static/socket_close_data01(h)
 * zdtm/static/mntns_ghost01(ns)
 * zdtm/static/del_standalone_un(h)
 * zdtm/static/sk-unix-mntns(uns)
 * zdtm/transition/maps007(h)
##################################### FAIL #####################################

Not sure what to say about this. Before your patchset is wasn't working
at all. Complete log of zdtm.py:

https://lisas.de/~adrian/aarch64-zdtm.log

		Adrian

On Sat, Apr 07, 2018 at 12:40:14AM +0100, Dmitry Safonov wrote:
> v3 Changes:
> o PAGE_SIZE as a global in PIEs doesn't work on aarch64,
>   I'll need to add relocs support to compel there eventually.
>   Revert this simplification to v1.
> 
> v2 Changes:
> o Add patches for global variables in PIEs
> o Simplify ARCH_HAS_LONG_PAGES
> o cache PAGE_SIZE and PAGE_SHIFT values
>   (as nitpicked by Mike)
> 
> TLDR; CRIU doesn't work if:
> on aarch64 it's when PAGE_SIZE!=4K,
> on ppc64 it's when PAGE_SIZE!=64K
> 
> Cc: Adrian Reber <areber at redhat.com>
> Cc: Mike Rapoport <rppt at linux.vnet.ibm.com>
> 
> Dmitry Safonov (7):
>   criu: Remove PAGE_IMAGE_SIZE
>   parasite: Rename misnamed nr_pages
>   compel/criu: Add ARCH_HAS_LONG_PAGES to PIE binaries
>   criu/dump: Fix size of personality buffer
>   criu/log: Define log buffer length without PAGE_SIZE
>   criu/proc: Define BUF_SIZE without PAGE_SIZE dependency
>   ppc64/aarch64: Dynamically define PAGE_SIZE
> 
>  compel/include/rpc-pie-priv.h          |  3 +++
>  compel/plugins/std/infect.c            | 17 ++++++++++++
>  compel/src/lib/infect.c                |  3 +++
>  criu/arch/aarch64/crtools.c            |  3 +++
>  criu/arch/ppc64/crtools.c              |  3 +++
>  criu/cr-dump.c                         |  3 ++-
>  criu/cr-restore.c                      |  3 +++
>  criu/crtools.c                         |  1 -
>  criu/include/image.h                   |  5 ----
>  criu/include/restorer.h                |  3 +++
>  criu/log.c                             |  3 ++-
>  criu/pie/parasite.c                    | 10 ++++----
>  criu/pie/restorer.c                    | 16 ++++++++++++
>  criu/proc_parse.c                      |  6 ++---
>  include/common/arch/aarch64/asm/page.h | 45 ++++++++++++++++++++++++--------
>  include/common/arch/ppc64/asm/page.h   | 47 ++++++++++++++++++++++++----------
>  16 files changed, 130 insertions(+), 41 deletions(-)
> 
> -- 
> 2.13.6
> 


More information about the CRIU mailing list