[CRIU] [PATCH] cr-service: require non-cooperative userfaultfd for lazy-pages

Pavel Emelyanov xemul at virtuozzo.com
Mon Aug 14 13:30:15 MSK 2017


On 08/13/2017 10:14 AM, Mike Rapoport wrote:
> On Thu, Aug 10, 2017 at 06:35:36PM +0300, Pavel Emelyanov wrote:
>> On 08/10/2017 05:02 PM, Mike Rapoport wrote:
>>> On Thu, Aug 10, 2017 at 04:23:57PM +0300, Pavel Emelyanov wrote:
>>>> On 08/10/2017 03:05 PM, Mike Rapoport wrote:
>>>>> On Thu, Aug 10, 2017 at 02:40:23PM +0300, Pavel Emelyanov wrote:
>>>>>> On 08/10/2017 12:59 PM, Mike Rapoport wrote:
>>>>>>> Pavel,
>>>>>>>
>>>>>>> Any comments?
>>>>>>
>>>>>> Oops, sorry :) Too many e-mails after vacation. Yes, I agree with that. The
>>>>>> only thing that I'd like to see as incremental fix is saving the uffd and
>>>>>> uffd-non-coop on kdat cache and using these values everywhere.
>>>>>
>>>>> The kdat fields haven't changed. The only change is how cr-check and
>>>>> cr-service treat them.
>>>>
>>>> I mean -- handle_feature_check calls check_uffd_noncoop which does testing
>>>> of the feature, while instead it should just read the kdat.something field :)
>>>
>>> Maybe that's because cr-check was not updated when kdat cache got merged? ;-)
>>
>> Maybe, but the handle_feature_check is (should be) called with kdat
>> cache loaded.
> 
> If I'm not much mistaken, cr-service does not init kdat at all:
> 
> ~/git/criu$ git grep kerndat_init
> criu/cr-dump.c: if (kerndat_init())
> criu/cr-dump.c: if (kerndat_init())
> criu/cr-restore.c:      if (kerndat_init())
> criu/include/kerndat.h:extern int kerndat_init(void);
> criu/kerndat.c:int kerndat_init(void)

With kdat cache it now can ;) Actually, with kdat cache we can load kdat right
in crtools.c before doing anything else.

-- Pavel



More information about the CRIU mailing list