[CRIU] [PATCH] scripts: Add ACT_PRE_RESUME stage
Pavel Emelyanov
xemul at virtuozzo.com
Tue Jan 10 05:54:39 PST 2017
On 01/10/2017 04:34 PM, Cyrill Gorcunov wrote:
> On Tue, Jan 10, 2017 at 04:27:23PM +0300, Pavel Emelyanov wrote:
>> On 01/10/2017 04:18 PM, Cyrill Gorcunov wrote:
>>> On Tue, Jan 10, 2017 at 03:51:10PM +0300, Pavel Emelyanov wrote:
>>>> On 01/09/2017 05:44 PM, Cyrill Gorcunov wrote:
>>>>> The "post-sigreturn" action is when all tasks are restored
>>>>> but not yet restarted sitting in frozen/seized state, right
>>>>> after final rt-sigreturn call passed.
>>>>>
>>>>> In vz7 this step is needed to tune up beancounters/cgroups
>>>>> params from the script, in vanilla criu it useful as well.
>>>>
>>>> We have POST_RESTORE hook. If it happens too early (why?) let's
>>>> move it into proper place?
>>>
>>> It happens early for vz7 case: we're inside veX and continue
>>> manipulating with resources which can lead up to problems
>>> with beancounters and memory limits. I suspect LXC and friends
>>> won't hit this problem for now. We could move POST_RESTORE
>>> hook to trigger later but this will break API I think, we simply
>>> can't be sure that someone already is using this hook in this
>>> particular place.
>>>
>>> What about naming it as pre-resume?
>>
>> Can you describe what exactly happens between POST_RESTORE and PRE_RESUME?
>
> - depopulate_roots_yard (opening new files)
> - network_unlock_internal (running iptables)
> - attach_to_tasks (parsing procfs output: open files, allocating new memory)
> - catch_tasks (same as attach_to_tasks)
> - finalize_restore (allocate new memory)
Can all this stuff happen before POST_RESUME?
> Note we've to do resume inside veX
Cyrill, veX is not something CRIU is aware of ;)
> due to kernel specifics (as you
> know we have a number of ve_is_super calls inside kernel to
> virtualize devtmpfs, sysfs and etc), thus all this actions should
> run with unlimited resources of container, and then the limits
> must be set back but before the tasks are kicked to run, so
> pre-resume look like be a perfect candidate.
>
> In vz7's criu we move criu main process on ve0/node and then in
> this new hook setup beancounters limits back.
>
> Otherwise there might be a situation where restore fail because
> not enough resources left inside container since criu takes some
> resources for own use.
> .
>
More information about the CRIU
mailing list