[CRIU] CRIU broken on s390x (rhel)

Adrian Reber adrian at lisas.de
Wed Sep 6 18:33:39 MSK 2017


On Wed, Sep 06, 2017 at 05:16:29PM +0200, Michael Holzheu wrote:
> 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

So... All is working again. I am not sure what the problems were. I saw
so many different problems and suddenly everything is back to normal.

So not sure what it was. Sorry for the noise.

		Adrian


More information about the CRIU mailing list