[CRIU] CRIU broken on s390x (rhel)

Michael Holzheu holzheu at linux.vnet.ibm.com
Wed Sep 6 18:16:29 MSK 2017


On Wed, 6 Sep 2017 12:04:30 +0300
Mike Rapoport <rppt at linux.vnet.ibm.com> wrote:

> (adding Michael)
> 
> On Tue, Sep 05, 2017 at 05:51:34PM +0200, Adrian Reber wrote:
> > On Tue, Sep 05, 2017 at 01:02:12PM +0200, Adrian Reber wrote:
> > > On my s390x RHEL system criu fails since the following commit:
> > > 
> > > commit ac200854af4730a0f4b1e1e2da4878593c10277a
> > > Author: Mike Rapoport <rppt at linux.vnet.ibm.com>
> > > Date:   Tue Aug 15 09:23:49 2017 +0300
> > > 
> > >     kdat: move kerndat initialization to the very beginning
> > >     
> > >     With kdat cache and unified kerndat_init() we can call it very early in
> > >     crtools and then kdat information will be available for all cr-* actions.
> > >     
> > >     Signed-off-by: Mike Rapoport <rppt at linux.vnet.ibm.com>
> > >     Signed-off-by: Pavel Emelyanov <xemul at virtuozzo.com>
> > > 
> > > With:
> > > 
> > > # criu/criu check
> > > Warn  (criu/kerndat.c:805): Can't load /run/criu.kdat
> > > Warn  (criu/net.c:2726): Unable to get a socket network namespace
> > > Error (criu/uffd.c:221): uffd: Lazy pages are not available: Function not implemented
> > > Error (criu/pie-util-vdso.c:97): vdso: ELF header magic mismatch
> > > Error (criu/vdso.c:614): vdso: Failed to fill self vdso symtable
> > > 
> > > Without that commit I only get 'Looks good.'
> > 
> > Mike said that this should be fixed with
> > 7d0e945584203a17ec0e1356bf9c873881893caf (kerndat: set uffd features to
> > 0 before querying kernel), but I still get the same error on s390x if I
> > update to today's latest git: 
> 
> That should have fixed the uffd part and I fail to see why it is still
> unhappy about it...
> 
> Does uffd show up as available before my recent changes to criu/cr-check.c?
> Say, before the commit cb918051cc (cr-check: use two features to verify
> userfaultfd availability)?
> 
> After the commit ac200854a (kdat: move kerndat initialization to the very
> beginning) 'criu check' performs the complete kdat initialization. As far
> as I can tell, this adds several more checks that were not a part of 'criu
> check' beforehand. Maybe this is causing some unexpected troubles on s390?

On my s390 Ubuntu 16.04 system I get the following:

 $ git show ac200854af4730a0f4b1e1e2da4878593c10277a
 commit ac200854af4730a0f4b1e1e2da4878593c10277a
 Author: Mike Rapoport <rppt at linux.vnet.ibm.com>
 Date:   Tue Aug 15 09:23:49 2017 +0300

     kdat: move kerndat initialization to the very beginning

 $ git checkout -b test ac200854af4730a0f4b1e1e2da4878593c10277a
 Switched to a new branch 'test'

 $ make

 $ root at r3545010~/criu (test)# criu/criu check
 Warn  (criu/kerndat.c:820): Stale /run/criu.kdat file
 Warn  (criu/net.c:2726): Unable to get a socket network namespace
 Looks good.

 $ rm /run/criu.kdat
 $ criu/criu check
 Warn  (criu/kerndat.c:805): Can't load /run/criu.kdat
 Warn  (criu/net.c:2726): Unable to get a socket network namespace
 Looks good.

 $ uname -a
 Linux r3545010 4.8.0-53-generic #56~16.04.1-Ubuntu SMP Tue May 16 01:14:39 UTC 2017 s390x s390x s390x GNU/Linux

Regards,
Michael



More information about the CRIU mailing list