[CRIU] [PATCH] scripts: Add ACT_POST_SIGRETURN stage

Andrey Vagin avagin at virtuozzo.com
Tue Jan 10 16:28:53 PST 2017


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?

POST_RESTORE is a place where we can kill restored processes and
resume processes on the source siede. I don't think that we can move it
to somewhere.
> 
> > Signed-off-by: Cyrill Gorcunov <gorcunov at virtuozzo.com>
> > ---
> >  criu/action-scripts.c         | 1 +
> >  criu/cr-restore.c             | 4 ++++
> >  criu/include/action-scripts.h | 1 +
> >  3 files changed, 6 insertions(+)
> > 
> > diff --git a/criu/action-scripts.c b/criu/action-scripts.c
> > index 6a47d5e..d13de23 100644
> > --- a/criu/action-scripts.c
> > +++ b/criu/action-scripts.c
> > @@ -26,6 +26,7 @@ static const char *action_names[ACT_MAX] = {
> >  	[ ACT_POST_SETUP_NS ]	= "post-setup-namespaces",
> >  	[ ACT_POST_RESUME ]	= "post-resume",
> >  	[ ACT_POST_NET_LOCK ]	= "post-network-lock",
> > +	[ ACT_POST_SIGRETURN ]	= "post-sigreturn",
> >  };
> >  
> >  struct script {
> > diff --git a/criu/cr-restore.c b/criu/cr-restore.c
> > index d003f12..da6ed31 100644
> > --- a/criu/cr-restore.c
> > +++ b/criu/cr-restore.c
> > @@ -1852,6 +1852,10 @@ static int restore_root_task(struct pstree_item *init)
> >  	if (ret == 0)
> >  		finalize_restore();
> >  
> > +	ret = run_scripts(ACT_POST_SIGRETURN);
> > +	if (ret)
> > +		pr_err("Post-sigreturn script ret code %d\n", ret);
> > +
> >  	if (restore_freezer_state())
> >  		pr_err("Unable to restore freezer state\n");
> >  
> > diff --git a/criu/include/action-scripts.h b/criu/include/action-scripts.h
> > index e49f57c..631350d 100644
> > --- a/criu/include/action-scripts.h
> > +++ b/criu/include/action-scripts.h
> > @@ -12,6 +12,7 @@ enum script_actions {
> >  	ACT_POST_SETUP_NS,
> >  	ACT_POST_RESUME,
> >  	ACT_POST_NET_LOCK,
> > +	ACT_POST_SIGRETURN,
> >  
> >  	ACT_MAX
> >  };
> > 
> 


More information about the CRIU mailing list