[CRIU] [PATCHv4 0/8] Large pages support for aarch64/ppc64
Adrian Reber
areber at redhat.com
Fri May 11 11:47:18 MSK 2018
Testing on ppc64le looks good:
==== ALARM ====
=== Run 351/355 ===============- zdtm/transition/pid_reuse
=== Run 352/355 ===============- zdtm/transition/file_read
=== Run 353/355 ===============- zdtm/transition/unix_sock
Skipping zdtm/transition/fifo_dyn (manual run only)
=== Run 355/355 ================ zdtm/transition/fifo_loop
==== ALARM ====
################### 1 TEST(S) FAILED (TOTAL 355/SKIPPED 34) ####################
* zdtm/static/maps06(h)
##################################### FAIL #####################################
You said some time ago that maps06 has hardcoded page size and therefore it fails.
On aarch64:
==== ALARM ====
=== Run 353/355 ===============- zdtm/transition/unix_sock
Skipping zdtm/transition/fifo_dyn (manual run only)
==== ALARM ====
=== Run 355/355 ================ zdtm/transition/fifo_loop
==== ALARM ====
################### 11 TEST(S) FAILED (TOTAL 355/SKIPPED 35) ###################
* 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/cow01(h)
* zdtm/transition/maps007(h)
* zdtm/transition/socket_loop00(ns)
##################################### FAIL #####################################
=========================== Run zdtm/static/fd in h ============================
Start test
./fd --pidfile=fd.pid --outfile=fd.out
Test zdtm/static/fd FAIL at start: [Errno 2] No such file or directory: 'zdtm/static/fd.pid'
======================= Run zdtm/static/userns00 in uns ========================
Start test
Test is SUID
./userns00 --pidfile=userns00.pid --outfile=userns00.out
Run criu dump
Run criu restore
=[log]=> dump/zdtm/static/userns00/42/1/restore.log
------------------------ grep Error ------------------------
(00.871265) 1: Collecting 42/51 (flags 0)
(00.871277) 1: No tty-data.img image
(00.871287) 1: `- ... done
(00.871295) 1: Restoring namespaces 1 flags 0x3c020000
(01.081300) Error (criu/cr-restore.c:1592): 73 killed by signal 7: Bus error
(01.081342) Error (criu/cr-restore.c:2319): Failed to switch restore stage to CR_STATE_PREPARE_NAMESPACES
(01.081369) Warn (criu/cr-restore.c:2515): Unable to wait 73: No child processes(01.081402) Error (criu/mount.c:3175): mnt: Can't remove the directory /tmp/.criu.mntns.xNpFFA: No such file or directory
(01.081414) uns: calling exit_usernsd[0x46ae94] (-1, 1)
(01.081455) uns: daemon calls 0x46ae94 (71, -1, 1)
(01.081482) uns: `- daemon exits w/ 0
(01.081939) uns: daemon stopped
(01.081973) Error (criu/cr-restore.c:2529): Restoring FAILED.
------------------------ ERROR OVER ------------------------
################ Test zdtm/static/userns00 FAIL at CRIU restore ################
======================= Run zdtm/static/userns01 in uns ========================
Start test
Test is SUID
./userns01 --pidfile=userns01.pid --outfile=userns01.out
Run criu dump
Run criu restore
=[log]=> dump/zdtm/static/userns01/42/1/restore.log
------------------------ grep Error ------------------------
(00.952216) 1: Collecting 42/51 (flags 0)
(00.952229) 1: No tty-data.img image
(00.952239) 1: `- ... done
(00.952247) 1: Restoring namespaces 1 flags 0x3c020000
(01.122258) Error (criu/cr-restore.c:1592): 63 killed by signal 7: Bus error
(01.122297) Error (criu/cr-restore.c:2319): Failed to switch restore stage to CR_STATE_PREPARE_NAMESPACES
(01.122323) Warn (criu/cr-restore.c:2515): Unable to wait 63: No child processes(01.122356) Error (criu/mount.c:3175): mnt: Can't remove the directory /tmp/.criu.mntns.JGQx5R: No such file or directory
(01.122368) uns: calling exit_usernsd[0x46ae94] (-1, 1)
(01.122409) uns: daemon calls 0x46ae94 (61, -1, 1)
(01.122436) uns: `- daemon exits w/ 0
(01.122898) uns: daemon stopped
(01.122932) Error (criu/cr-restore.c:2529): Restoring FAILED.
------------------------ ERROR OVER ------------------------
################ Test zdtm/static/userns01 FAIL at CRIU restore ################
======================= Run zdtm/static/userns02 in uns ========================
Start test
Test is SUID
./userns02 --pidfile=userns02.pid --outfile=userns02.out
Run criu dump
Run criu restore
=[log]=> dump/zdtm/static/userns02/42/1/restore.log
------------------------ grep Error ------------------------
(00.982007) 1: Collecting 42/51 (flags 0)
(00.982019) 1: No tty-data.img image
(00.982029) 1: `- ... done
(00.982037) 1: Restoring namespaces 1 flags 0x3c020000
(01.182049) Error (criu/cr-restore.c:1592): 70 killed by signal 7: Bus error
(01.182085) Error (criu/cr-restore.c:2319): Failed to switch restore stage to CR_STATE_PREPARE_NAMESPACES
(01.182110) Warn (criu/cr-restore.c:2515): Unable to wait 70: No child processes(01.182143) Error (criu/mount.c:3175): mnt: Can't remove the directory /tmp/.criu.mntns.iVZcm3: No such file or directory
(01.182155) uns: calling exit_usernsd[0x46ae94] (-1, 1)
(01.182198) uns: daemon calls 0x46ae94 (68, -1, 1)
(01.182225) uns: `- daemon exits w/ 0
(01.182678) uns: daemon stopped
(01.182713) Error (criu/cr-restore.c:2529): Restoring FAILED.
------------------------ ERROR OVER ------------------------
################ Test zdtm/static/userns02 FAIL at CRIU restore ################
All user namespace tests are failing with the same error.
The cow01 failure:
03:53:48.837: 37: FAIL: cow01.c:196: sep_tcs[0x21]: 0xffffb8950000 child data mismatch (expected [332d60fa] got [9bf3a804]) (errno = 0 (Success))
03:53:48.846: 37: FAIL: cow01.c:196: sep_tcs[0x23]: 0xffffb8970000 child data mismatch (expected [332d60fa] got [879ee1c9]) (errno = 0 (Success))
03:53:48.866: 37: FAIL: cow01.c:196: sep_tcs[0x28]: 0xffffb89c0000 child data mismatch (expected [332d60fa] got [805be4a2]) (errno = 0 (Success))
03:53:48.871: 37: FAIL: cow01.c:196: sep_tcs[0x29]: 0xffffb89d0000 child data mismatch (expected [332d60fa] got [b28f6cec]) (errno = 0 (Success))
03:53:48.875: 37: FAIL: cow01.c:196: sep_tcs[0x2a]: 0xffffb89e0000 child data mismatch (expected [332d60fa] got [6ac08d4b]) (errno = 0 (Success))
03:53:48.879: 37: FAIL: cow01.c:196: sep_tcs[0x2b]: 0xffffb89f0000 child data mismatch (expected [332d60fa] got [306dfd18]) (errno = 0 (Success))
03:53:48.904: 37: FAIL: cow01.c:196: sep_tcs[0x31]: 0xffffb8a50000 child data mismatch (expected [332d60fa] got [36e0b6c2]) (errno = 0 (Success))
maps007 just seems to hang
================== Run zdtm/transition/socket_loop00 in ns ====================
Start test
./socket_loop00 --pidfile=socket_loop00.pid --outfile=socket_loop00.out
Run criu dump
Run criu restore
Send the 15 signal to 100
Wait for zdtm/transition/socket_loop00(100) to die for 0.100000
Wait for zdtm/transition/socket_loop00(100) to die for 0.200000
================= zdtm/transition/socket_loop00.out.inprogress =================
08:08:42.729: 4: PASS
================= zdtm/transition/socket_loop00.out.inprogress =================
########### Test zdtm/transition/socket_loop00 FAIL at result check ############
On Thu, May 10, 2018 at 07:14:40PM +0100, Dmitry Safonov wrote:
> v4 Changes:
> o aio tests failed case overflow in NR_IOEVENTS_IN_PAGES macro.
>
> 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 (8):
> criu: Remove PAGE_IMAGE_SIZE
> parasite: Rename misnamed nr_pages
> aio: Allow expressions in NR_IOEVENTS_IN_PAGES macro
> 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/aio.c | 2 +-
> 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 ++++++++++++++++++++++++----------
> 17 files changed, 131 insertions(+), 42 deletions(-)
>
> --
> 2.13.6
>
More information about the CRIU
mailing list