[Devel] Re: [RFC][PATCH 0/4] Container Freezer

Serge E. Hallyn serue at us.ibm.com
Wed Jun 20 09:50:38 PDT 2007


Quoting Cedric Le Goater (clg at fr.ibm.com):
> This patchset is a prototype using the container infrastructure and
> the swsusp freezer to freeze a group of tasks.
> 
> 2 files are defined by the freezer subsystem in the container
> filesystem :
> 
>    * "freezer.freeze"
> 
>      writing 1 will freeze all tasks and 0 unfreeze
>      reading will return the status of the freezer
> 
>    * "freezer.kill"
> 
>      writing <n> will send signal number <n> to all tasks
> 
> * Usage :
> 
>    # mkdir /containers/freezer
>    # mount -t container -ofreezer freezer  /containers/freezer
>    # mkdir /containers/freezer/0
>    # echo $some_pid > /containers/freezer/0/tasks

I'd like to point out that by composing this with the nsproxy subsystem
(which I've done and tested), you can

	mount -t container -ons,freezer nsproxy /containers/freezer

Then you get a new freezer subsystem automatically for every unshare
that you do, avoiding the need to to manually do

	echo $some_pid > /containers/freezer/0/tasks

thanks,
-serge

> to get status of the freezer subsystem :
> 
>    # cat /containers/freezer/0/freezer.freeze
>    RUNNING
> 
> to freeze all tasks in the container :
> 
>    # echo 1 > /containers/freezer/0/freezer.freeze
>    # cat /containers/freezer/0/freezer.freeze
>    FREEZING
>    # cat /containers/freezer/0/freezer.freeze
>    FROZEN
> 
> to unfreeze all tasks in the container :
> 
>    # echo 1 > /containers/freezer/0/freezer.freeze
>    # cat /containers/freezer/0/freezer.freeze
>    RUNNING
> 
> to kill all tasks in the container :
> 
>    # echo 9 > /containers/freezer/0/freezer.kill
> 
> * Caveats: 
> 
>   - the FROZEN status is calculated and changed when the container
>     file "freezer.freeze" is read.
>   - frozen containers will be unfreeze when a system is resumed after 
>     a suspend. This is addressed by the last patch.
> 
> * Series
> 
>   The first patches make the freezer available to all architectures
>   before implementing the freezer subsystem.
> 
>   - add the TIF_FREEZE flag to all archs
>   - make refrigerator() available to all archs
>   - implement freezer subsystem 
>   - do not unfreeze a frozen container when the system is resumed 
> 
> Comments are welcome.
> 
> Thanks,
> 
> C.
> _______________________________________________
> Containers mailing list
> Containers at lists.linux-foundation.org
> https://lists.linux-foundation.org/mailman/listinfo/containers
_______________________________________________
Containers mailing list
Containers at lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers




More information about the Devel mailing list