OpenVZ Forum


Home » Mailing lists » Devel » [RFC][PATCH 0/4] Container Freezer
[RFC][PATCH 0/4] Container Freezer [message #19051] Wed, 20 June 2007 15:07 Go to next message
Cedric Le Goater is currently offline  Cedric Le Goater
Messages: 443
Registered: February 2006
Senior Member
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

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@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
Re: [RFC][PATCH 0/4] Container Freezer [message #19059 is a reply to message #19051] Thu, 21 June 2007 16:37 Go to previous message
serue is currently offline  serue
Messages: 750
Registered: February 2006
Senior Member
Quoting Cedric Le Goater (clg@fr.ibm.com):
> Serge E. Hallyn wrote:
> > Quoting Cedric Le Goater (clg@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
> 
> I guess that's true for any subsystem. right ?

Sure, but when this goes to lkml I expect there to be plenty of people
who don't know about that quite yet, and might come away thinking this
is more intrusive to use than it is.

thanks,
-serge
_______________________________________________
Containers mailing list
Containers@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
Re: [RFC][PATCH 0/4] Container Freezer [message #19061 is a reply to message #19051] Thu, 21 June 2007 11:07 Go to previous message
Cedric Le Goater is currently offline  Cedric Le Goater
Messages: 443
Registered: February 2006
Senior Member
[ ... ]

> 
> 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
            ^
   that's a 0

thanks Masahiko !

C.

>    # cat /containers/freezer/0/freezer.freeze
>    RUNNING

_______________________________________________
Containers mailing list
Containers@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
Previous Topic: [PATCH 2.6.22-rc5 0/2] Setting/updating the ID of a System V IPC
Next Topic: [PATCH] namespace: ensure clone_flags are always stored in an unsigned long
Goto Forum:
  


Current Time: Fri Sep 13 18:22:31 GMT 2024

Total time taken to generate the page: 0.05025 seconds