Linux Container Development
 help / color / mirror / Atom feed
  • [parent not found: <2424755.Pg0O5tTD3k@vostro.rjw.lan>]
  • [parent not found: <1350426526-14254-6-git-send-email-tj@kernel.org>]
  • * [PATCHSET cgroup/for-3.8] cgroup_freezer: allow migration regardless of freezer state and update locking
    @ 2012-10-16 22:28 Tejun Heo
      0 siblings, 0 replies; 63+ messages in thread
    From: Tejun Heo @ 2012-10-16 22:28 UTC (permalink / raw)
      To: rjw-KKrjLPT3xs0, oleg-H+wXaHxf7aLQT0dZR+AlfA
      Cc: cgroups-u79uwXL29TY76Z2rM5mHXA,
    	containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
    	linux-kernel-u79uwXL29TY76Z2rM5mHXA
    
    Hello,
    
    This patchset updates cgroup_freezer so that
    
    * Unfreezable kernel tasks don't prevent a cgroup from transitioning
      into FROZEN from FREEZING.  There's nothing userland can do with or
      about such tasks.
    
    * Tasks can be moved in and out of a frozen cgroup.  Tasks are made to
      conform to the state of the new cgroup during migration.  This
      behavior makes a lot more sense and removes the use of
      ->can_attach() which makes co-mounting difficult.
    
    * Remove use of cgroup_lock_live_group().  Grabbing cgroup_lock from
      outside cgroup proper creates a painful locking dependency and is
      being phased out.  With the above behavior change, removing
      dependency on cgroup_lock is pretty easy.  IMHO, it was simply the
      wrong behavior to implement which forced the wrong implementation.
    
    This patchset contains the following seven patches.
    
     0001-cgroup-cgroup_subsys-fork-should-be-called-after-the.patch
     0002-freezer-add-missing-mb-s-to-freezer_count-and-freeze.patch
     0003-cgroup_freezer-make-it-official-that-writes-to-freez.patch
     0004-cgroup_freezer-don-t-stall-transition-to-FROZEN-for-.patch
     0005-cgroup_freezer-allow-moving-tasks-in-and-out-of-a-fr.patch
     0006-cgroup_freezer-prepare-update_if_frozen-for-locking-.patch
     0007-cgroup_freezer-don-t-use-cgroup_lock_live_group.patch
    
    0001 is a fix for a rather embarrassing bug in cgroup core.  It does
    things in the wrong order leaving a window for racing during fork.
    
    0002 adds a missing mb() around freezing condition updates / checks.
    
    0003-0004 make cgroup_freezer ignore unfreezable kernel tasks and
    handle PF_FREEZER_SKIP correctly.
    
    0005 allows migrating tasks in and out of a frozen cgroup.
    
    0006-0007 remove the use of cgroup_lock_live_group().
    
    This patchset is on top of v3.7-rc1 and available in the following git
    branch.
    
     git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git review-cgroup_freezer-locking
    
     include/linux/cgroup.h  |    1 
     include/linux/freezer.h |   50 +++++++++--
     kernel/cgroup.c         |   62 ++++++--------
     kernel/cgroup_freezer.c |  210 ++++++++++++++++--------------------------------
     kernel/fork.c           |    9 --
     5 files changed, 147 insertions(+), 185 deletions(-)
    
    Thanks.
    
    --
    tejun
    
    ^ permalink raw reply	[flat|nested] 63+ messages in thread

    end of thread, other threads:[~2012-12-28 21:22 UTC | newest]
    
    Thread overview: 63+ messages (download: mbox.gz follow: Atom feed
    -- links below jump to the message on this page --
         [not found] <1350426526-14254-1-git-send-email-tj@kernel.org>
         [not found] ` <1350426526-14254-1-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
    2012-10-16 22:28   ` [PATCH 1/7] cgroup: cgroup_subsys->fork() should be called after the task is added to css_set Tejun Heo
         [not found]     ` <1350426526-14254-2-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
    2012-10-17  8:28       ` Li Zefan
         [not found]         ` <507E6C4B.6000704-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
    2012-10-18  1:25           ` Li Zefan
    2012-10-21 19:11       ` Oleg Nesterov
         [not found]         ` <20121021191141.GA26218-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
    2012-10-21 19:22           ` Tejun Heo
         [not found]         ` <20121021192222.GB5951@atj.dyndns.org>
         [not found]           ` <20121021192222.GB5951-OlzNCW9NnSVy/B6EtB590w@public.gmane.org>
    2012-10-22 18:04             ` Oleg Nesterov
         [not found]               ` <20121022180445.GB21553-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
    2012-10-22 21:16                 ` Tejun Heo
         [not found]                   ` <20121022211631.GE5951-OlzNCW9NnSVy/B6EtB590w@public.gmane.org>
    2012-10-23 15:51                     ` Oleg Nesterov
         [not found]                       ` <20121023155128.GB16201-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
    2012-10-24 19:04                         ` Tejun Heo
         [not found]                           ` <20121024190458.GB12182-OlzNCW9NnSVy/B6EtB590w@public.gmane.org>
    2012-10-25 17:42                             ` Oleg Nesterov
    2012-12-20  5:25       ` Herton Ronaldo Krzesinski
    2012-12-28 21:22         ` [PATCH] cgroup: remove unused dummy cgroup_fork_callbacks() Tejun Heo
    2012-10-16 22:28   ` [PATCH 2/7] freezer: add missing mb's to freezer_count() and freezer_should_skip() Tejun Heo
         [not found]     ` <1350426526-14254-3-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
    2012-10-22 17:44       ` Oleg Nesterov
         [not found]         ` <20121022174404.GA21553-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
    2012-10-22 21:13           ` Tejun Heo
         [not found]             ` <20121022211317.GD5951-OlzNCW9NnSVy/B6EtB590w@public.gmane.org>
    2012-10-23 15:39               ` Oleg Nesterov
         [not found]                 ` <20121023153919.GA16201-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
    2012-10-24 18:57                   ` Tejun Heo
         [not found]                 ` <20121024185710.GA12182@atj.dyndns.org>
         [not found]                   ` <20121024185710.GA12182-OlzNCW9NnSVy/B6EtB590w@public.gmane.org>
    2012-10-25 16:39                     ` [PATCH 0/1] (Was: freezer: add missing mb's to freezer_count() and freezer_should_skip()) Oleg Nesterov
         [not found]                       ` <20121025163941.GA3801-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
    2012-10-25 16:39                         ` [PATCH 1/1] freezer: change ptrace_stop/do_signal_stop to use freezable_schedule() Oleg Nesterov
         [not found]                           ` <20121025163959.GB3801-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
    2012-10-25 17:18                             ` Tejun Heo
         [not found]                           ` <20121025171812.GE11442@htj.dyndns.org>
         [not found]                             ` <20121025171812.GE11442-Gd/HAXX7CRxy/B6EtB590w@public.gmane.org>
    2012-10-25 17:34                               ` Oleg Nesterov
         [not found]                             ` <20121025173433.GA7650@redhat.com>
         [not found]                               ` <20121025173433.GA7650-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
    2012-10-25 17:36                                 ` Tejun Heo
         [not found]                                   ` <20121025173632.GI11442-Gd/HAXX7CRxy/B6EtB590w@public.gmane.org>
    2012-10-26 17:45                                     ` [PATCH v2 0/1] " Oleg Nesterov
         [not found]                                       ` <20121026174545.GA21639-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
    2012-10-26 17:46                                         ` [PATCH v2 1/1] " Oleg Nesterov
         [not found]                                           ` <20121026174606.GB21639-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
    2012-10-26 17:52                                             ` Tejun Heo
         [not found]                                               ` <20121026175258.GV11442-Gd/HAXX7CRxy/B6EtB590w@public.gmane.org>
    2012-10-26 18:01                                                 ` Oleg Nesterov
         [not found]                                               ` <20121026180149.GA22421@redhat.com>
         [not found]                                                 ` <20121026180149.GA22421-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
    2012-10-26 21:14                                                   ` Rafael J. Wysocki
         [not found]                                                 ` <2566006.UzAQbpOjNQ@vostro.rjw.lan>
         [not found]                                                   ` <2566006.UzAQbpOjNQ-sKB8Sp2ER+y1GS7QM15AGw@public.gmane.org>
    2012-10-26 21:29                                                     ` Rafael J. Wysocki
         [not found]                                                       ` <2718983.vORnrfWdbE-sKB8Sp2ER+y1GS7QM15AGw@public.gmane.org>
    2012-10-26 21:29                                                         ` Tejun Heo
         [not found]                                                       ` <20121026212909.GW11442@htj.dyndns.org>
         [not found]                                                         ` <20121026212909.GW11442-Gd/HAXX7CRxy/B6EtB590w@public.gmane.org>
    2012-10-28  0:16                                                           ` Rafael J. Wysocki
    2012-10-27 22:22                                             ` Ben Hutchings
         [not found]                                           ` <1351376558.21585.1.camel@deadeye.wl.decadent.org.uk>
         [not found]                                             ` <1351376558.21585.1.camel-nDn/Rdv9kqW9Jme8/bJn5UCKIB8iOfG2tUK59QYPAWc@public.gmane.org>
    2012-10-28 13:45                                               ` Oleg Nesterov
    2012-10-16 22:28   ` [PATCH 3/7] cgroup_freezer: make it official that writes to freezer.state don't fail Tejun Heo
    2012-10-16 22:28   ` [PATCH 4/7] cgroup_freezer: don't stall transition to FROZEN for PF_NOFREEZE or PF_FREEZER_SKIP tasks Tejun Heo
         [not found]     ` <1350426526-14254-5-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
    2012-10-22 18:34       ` Oleg Nesterov
         [not found]     ` <20121022183453.GA24687@redhat.com>
         [not found]       ` <20121022183453.GA24687-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
    2012-10-22 21:18         ` Tejun Heo
         [not found]           ` <20121022211822.GF5951-OlzNCW9NnSVy/B6EtB590w@public.gmane.org>
    2012-10-23 15:55             ` Oleg Nesterov
         [not found]           ` <20121023155533.GC16201@redhat.com>
         [not found]             ` <20121023155533.GC16201-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
    2012-10-24 19:06               ` Tejun Heo
         [not found]                 ` <20121024190651.GC12182-OlzNCW9NnSVy/B6EtB590w@public.gmane.org>
    2012-10-25 17:12                   ` [PATCH 0/1] (Was: cgroup_freezer: don't stall transition to FROZEN for PF_NOFREEZE or PF_FREEZER_SKIP tasks) Oleg Nesterov
         [not found]                     ` <20121025171236.GA6776-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
    2012-10-25 17:12                       ` [PATCH 1/1] freezer: exec should clear PF_NOFREEZE along with PF_KTHREAD Oleg Nesterov
         [not found]                         ` <20121025171256.GB6776-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
    2012-10-25 17:20                           ` Tejun Heo
         [not found]                         ` <20121025172016.GF11442@htj.dyndns.org>
         [not found]                           ` <20121025172016.GF11442-Gd/HAXX7CRxy/B6EtB590w@public.gmane.org>
    2012-10-25 17:37                             ` Oleg Nesterov
         [not found]                               ` <20121025173756.GB7650-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
    2012-10-25 17:37                                 ` Tejun Heo
         [not found]                                   ` <CAOS58YPAVVr=itauGD9eTpfRLSBLuM8Bpyuq9AP73MDr8dPmiQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
    2012-10-25 20:13                                     ` Rafael J. Wysocki
    2012-10-16 22:28   ` [PATCH 5/7] cgroup_freezer: allow moving tasks in and out of a frozen cgroup Tejun Heo
    2012-10-16 22:28   ` [PATCH 6/7] cgroup_freezer: prepare update_if_frozen() for locking change Tejun Heo
    2012-10-16 22:28   ` [PATCH 7/7] cgroup_freezer: don't use cgroup_lock_live_group() Tejun Heo
    2012-10-17 19:16   ` [PATCHSET cgroup/for-3.8] cgroup_freezer: allow migration regardless of freezer state and update locking Matt Helsley
         [not found]     ` <20121017191606.GA6223-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
    2012-10-18 21:14       ` Tejun Heo
         [not found]     ` <20121018211434.GI13370@google.com>
         [not found]       ` <20121018211434.GI13370-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
    2012-10-18 22:21         ` Matt Helsley
         [not found]           ` <20121018222155.GB6223-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
    2012-10-18 22:35             ` Tejun Heo
         [not found]               ` <20121018223517.GQ13370-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
    2012-10-18 23:47                 ` Matt Helsley
         [not found]                   ` <20121018234726.GC6223-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
    2012-10-19  0:01                     ` Tejun Heo
         [not found]                   ` <20121019000153.GZ13370@google.com>
         [not found]                     ` <20121019000153.GZ13370-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
    2012-10-19  1:29                       ` Matt Helsley
         [not found]                     ` <20121019012945.GD6223@us.ibm.com>
         [not found]                       ` <20121019012945.GD6223-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
    2012-10-19 20:02                         ` Tejun Heo
    2012-10-19 16:54   ` Rafael J. Wysocki
         [not found] ` <2424755.Pg0O5tTD3k@vostro.rjw.lan>
         [not found]   ` <2424755.Pg0O5tTD3k-sKB8Sp2ER+y1GS7QM15AGw@public.gmane.org>
    2012-10-19 20:04     ` Tejun Heo
         [not found]   ` <20121019200421.GO13370@google.com>
         [not found]     ` <20121019200421.GO13370-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
    2012-10-21 19:18       ` Oleg Nesterov
         [not found]         ` <20121021191853.GB26218-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
    2012-10-21 19:24           ` Tejun Heo
         [not found] ` <1350426526-14254-6-git-send-email-tj@kernel.org>
         [not found]   ` <1350426526-14254-6-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
    2012-10-22 19:25     ` [PATCH 5/7] cgroup_freezer: allow moving tasks in and out of a frozen cgroup Oleg Nesterov
         [not found]   ` <20121022192506.GA27163@redhat.com>
         [not found]     ` <20121022192506.GA27163-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
    2012-10-22 21:25       ` Tejun Heo
         [not found]     ` <20121022212505.GG5951@atj.dyndns.org>
         [not found]       ` <20121022212505.GG5951-OlzNCW9NnSVy/B6EtB590w@public.gmane.org>
    2012-10-23 16:14         ` Oleg Nesterov
    2012-10-16 22:28 [PATCHSET cgroup/for-3.8] cgroup_freezer: allow migration regardless of freezer state and update locking Tejun Heo
    

    This is a public inbox, see mirroring instructions
    for how to clone and mirror all data and code used for this inbox