[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