[CRIU] CRIU broken on s390x (rhel)

Dmitry Safonov 0x7f454c46 at gmail.com
Wed Sep 6 19:27:48 MSK 2017


2017-09-06 12:34 GMT+03:00 Adrian Reber <adrian at lisas.de>:
> On Wed, Sep 06, 2017 at 12:04:30PM +0300, Mike Rapoport 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?
>
> I am currently having trouble with my s390x system, so that I cannot
> look further into this right now. I am hoping it will get better soon.
>
> Currently I am thinking this could be related to Dmitry vdso changes.
> Because until now I did not backport the kernel patches for [vdso]
> marking in the RHEL kernel:
>
> commit 35bb092a91b4c43a2079d3d5458b74a059455b6c
> Author: Martin Schwidefsky <schwidefsky at de.ibm.com>
> Date:   Mon May 15 10:23:38 2017 +0200
>
>     s390/vdso: use _install_special_mapping to establish vdso
>
> It used to be not necessary to have this. Dmitry, do I now need this
> kernel patch for CRIU?

Hi Adrian,

No, everything should work with and without kernel patches.
CRIU patches only optimise vdso handling when it's possible.
And if something would be in those patches - other archs
would catch this too.

-- 
             Dmitry


More information about the CRIU mailing list