All of lore.kernel.org
 help / color / mirror / Atom feed
* [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; 148+ messages in thread
From: Tejun Heo @ 2012-10-16 22:28 UTC (permalink / raw)
  To: rjw, oleg; +Cc: linux-kernel, lizefan, containers, cgroups

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] 148+ messages in thread

end of thread, other threads:[~2012-12-28 21:28 UTC | newest]

Thread overview: 148+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-10-16 22:28 [PATCHSET cgroup/for-3.8] cgroup_freezer: allow migration regardless of freezer state and update locking Tejun Heo
2012-10-16 22:28 ` Tejun Heo
2012-10-16 22:28 ` [PATCH 5/7] cgroup_freezer: allow moving tasks in and out of a frozen cgroup Tejun Heo
     [not found]   ` <1350426526-14254-6-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2012-10-22 19:25     ` Oleg Nesterov
2012-10-22 19:25   ` Oleg Nesterov
2012-10-22 19:25     ` Oleg Nesterov
2012-10-22 21:25     ` Tejun Heo
2012-10-22 21:25       ` Tejun Heo
2012-10-23 16:14       ` Oleg Nesterov
2012-10-23 16:14         ` Oleg Nesterov
     [not found]       ` <20121022212505.GG5951-OlzNCW9NnSVy/B6EtB590w@public.gmane.org>
2012-10-23 16:14         ` Oleg Nesterov
     [not found]     ` <20121022192506.GA27163-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-10-22 21:25       ` Tejun Heo
2012-10-19 16:54 ` [PATCHSET cgroup/for-3.8] cgroup_freezer: allow migration regardless of freezer state and update locking Rafael J. Wysocki
2012-10-19 16:54   ` Rafael J. Wysocki
2012-10-19 20:04   ` Tejun Heo
2012-10-19 20:04     ` Tejun Heo
     [not found]     ` <20121019200421.GO13370-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-10-21 19:18       ` Oleg Nesterov
2012-10-21 19:18         ` Oleg Nesterov
     [not found]         ` <20121021191853.GB26218-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-10-21 19:24           ` Tejun Heo
2012-10-21 19:24             ` Tejun Heo
     [not found]   ` <2424755.Pg0O5tTD3k-sKB8Sp2ER+y1GS7QM15AGw@public.gmane.org>
2012-10-19 20:04     ` Tejun Heo
     [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
2012-10-16 22:28     ` Tejun Heo
     [not found]     ` <1350426526-14254-2-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2012-10-17  8:28       ` Li Zefan
2012-10-17  8:28         ` Li Zefan
2012-10-18  1:25         ` Li Zefan
2012-10-18  1:25           ` 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
2012-10-21 19:11         ` Oleg Nesterov
     [not found]         ` <20121021191141.GA26218-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-10-21 19:22           ` Tejun Heo
2012-10-21 19:22         ` Tejun Heo
2012-10-21 19:22           ` Tejun Heo
     [not found]           ` <20121021192222.GB5951-OlzNCW9NnSVy/B6EtB590w@public.gmane.org>
2012-10-22 18:04             ` Oleg Nesterov
2012-10-22 18:04               ` Oleg Nesterov
     [not found]               ` <20121022180445.GB21553-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-10-22 21:16                 ` Tejun Heo
2012-10-22 21:16                   ` Tejun Heo
     [not found]                   ` <20121022211631.GE5951-OlzNCW9NnSVy/B6EtB590w@public.gmane.org>
2012-10-23 15:51                     ` Oleg Nesterov
2012-10-23 15:51                       ` Oleg Nesterov
     [not found]                       ` <20121023155128.GB16201-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-10-24 19:04                         ` Tejun Heo
2012-10-24 19:04                           ` Tejun Heo
     [not found]                           ` <20121024190458.GB12182-OlzNCW9NnSVy/B6EtB590w@public.gmane.org>
2012-10-25 17:42                             ` Oleg Nesterov
2012-10-25 17:42                               ` Oleg Nesterov
2012-12-20  5:25       ` Herton Ronaldo Krzesinski
2012-12-20  5:25         ` Herton Ronaldo Krzesinski
2012-12-28 21:22         ` [PATCH] cgroup: remove unused dummy cgroup_fork_callbacks() Tejun Heo
2012-12-28 21:22           ` Tejun Heo
2012-10-16 22:28   ` [PATCH 2/7] freezer: add missing mb's to freezer_count() and freezer_should_skip() Tejun Heo
2012-10-16 22:28     ` Tejun Heo
     [not found]     ` <1350426526-14254-3-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2012-10-22 17:44       ` Oleg Nesterov
2012-10-22 17:44         ` Oleg Nesterov
     [not found]         ` <20121022174404.GA21553-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-10-22 21:13           ` Tejun Heo
2012-10-22 21:13             ` Tejun Heo
     [not found]             ` <20121022211317.GD5951-OlzNCW9NnSVy/B6EtB590w@public.gmane.org>
2012-10-23 15:39               ` Oleg Nesterov
2012-10-23 15:39                 ` Oleg Nesterov
     [not found]                 ` <20121023153919.GA16201-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-10-24 18:57                   ` Tejun Heo
2012-10-24 18:57                 ` Tejun Heo
2012-10-24 18:57                   ` Tejun Heo
     [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
2012-10-25 16:39                       ` 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
2012-10-25 16:39                           ` Oleg Nesterov
2012-10-25 17:18                           ` Tejun Heo
2012-10-25 17:18                             ` Tejun Heo
2012-10-25 17:34                             ` Oleg Nesterov
2012-10-25 17:34                               ` Oleg Nesterov
     [not found]                               ` <20121025173433.GA7650-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-10-25 17:36                                 ` Tejun Heo
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
2012-10-26 17:45                                       ` Oleg Nesterov
     [not found]                                       ` <20121026174545.GA21639-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-10-26 17:46                                         ` [PATCH v2 1/1] " Oleg Nesterov
2012-10-26 17:46                                           ` Oleg Nesterov
     [not found]                                           ` <20121026174606.GB21639-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-10-26 17:52                                             ` Tejun Heo
2012-10-26 17:52                                               ` Tejun Heo
2012-10-26 18:01                                               ` Oleg Nesterov
2012-10-26 18:01                                                 ` Oleg Nesterov
2012-10-26 21:14                                                 ` Rafael J. Wysocki
2012-10-26 21:14                                                   ` Rafael J. Wysocki
     [not found]                                                   ` <2566006.UzAQbpOjNQ-sKB8Sp2ER+y1GS7QM15AGw@public.gmane.org>
2012-10-26 21:29                                                     ` Rafael J. Wysocki
2012-10-26 21:29                                                       ` Rafael J. Wysocki
2012-10-26 21:29                                                       ` Tejun Heo
2012-10-26 21:29                                                         ` Tejun Heo
     [not found]                                                         ` <20121026212909.GW11442-Gd/HAXX7CRxy/B6EtB590w@public.gmane.org>
2012-10-28  0:16                                                           ` Rafael J. Wysocki
2012-10-28  0:16                                                         ` Rafael J. Wysocki
2012-10-28  0:16                                                           ` Rafael J. Wysocki
     [not found]                                                       ` <2718983.vORnrfWdbE-sKB8Sp2ER+y1GS7QM15AGw@public.gmane.org>
2012-10-26 21:29                                                         ` Tejun Heo
     [not found]                                                 ` <20121026180149.GA22421-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-10-26 21:14                                                   ` Rafael J. Wysocki
     [not found]                                               ` <20121026175258.GV11442-Gd/HAXX7CRxy/B6EtB590w@public.gmane.org>
2012-10-26 18:01                                                 ` Oleg Nesterov
2012-10-27 22:22                                             ` Ben Hutchings
2012-10-27 22:22                                           ` Ben Hutchings
2012-10-27 22:22                                             ` Ben Hutchings
     [not found]                                             ` <1351376558.21585.1.camel-nDn/Rdv9kqW9Jme8/bJn5UCKIB8iOfG2tUK59QYPAWc@public.gmane.org>
2012-10-28 13:45                                               ` Oleg Nesterov
2012-10-28 13:45                                                 ` Oleg Nesterov
     [not found]                             ` <20121025171812.GE11442-Gd/HAXX7CRxy/B6EtB590w@public.gmane.org>
2012-10-25 17:34                               ` [PATCH " Oleg Nesterov
     [not found]                           ` <20121025163959.GB3801-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-10-25 17:18                             ` Tejun Heo
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     ` 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
2012-10-16 22:28     ` Tejun Heo
2012-10-22 18:34     ` Oleg Nesterov
2012-10-22 18:34       ` Oleg Nesterov
     [not found]       ` <20121022183453.GA24687-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-10-22 21:18         ` Tejun Heo
2012-10-22 21:18           ` Tejun Heo
2012-10-23 15:55           ` Oleg Nesterov
2012-10-23 15:55             ` Oleg Nesterov
     [not found]             ` <20121023155533.GC16201-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-10-24 19:06               ` Tejun Heo
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
2012-10-25 17:12                     ` 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
2012-10-25 17:12                         ` Oleg Nesterov
2012-10-25 17:20                         ` Tejun Heo
2012-10-25 17:20                           ` Tejun Heo
     [not found]                           ` <20121025172016.GF11442-Gd/HAXX7CRxy/B6EtB590w@public.gmane.org>
2012-10-25 17:37                             ` Oleg Nesterov
2012-10-25 17:37                               ` Oleg Nesterov
     [not found]                               ` <20121025173756.GB7650-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-10-25 17:37                                 ` Tejun Heo
2012-10-25 17:37                                   ` Tejun Heo
2012-10-25 20:13                                   ` Rafael J. Wysocki
     [not found]                                   ` <CAOS58YPAVVr=itauGD9eTpfRLSBLuM8Bpyuq9AP73MDr8dPmiQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-10-25 20:13                                     ` Rafael J. Wysocki
     [not found]                         ` <20121025171256.GB6776-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-10-25 17:20                           ` Tejun Heo
     [not found]           ` <20121022211822.GF5951-OlzNCW9NnSVy/B6EtB590w@public.gmane.org>
2012-10-23 15:55             ` [PATCH 4/7] cgroup_freezer: don't stall transition to FROZEN for PF_NOFREEZE or PF_FREEZER_SKIP tasks Oleg Nesterov
     [not found]     ` <1350426526-14254-5-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2012-10-22 18:34       ` Oleg Nesterov
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     ` Tejun Heo
2012-10-16 22:28   ` [PATCH 7/7] cgroup_freezer: don't use cgroup_lock_live_group() Tejun Heo
2012-10-16 22:28     ` 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
2012-10-17 19:16     ` Matt Helsley
     [not found]     ` <20121017191606.GA6223-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2012-10-18 21:14       ` Tejun Heo
2012-10-18 21:14     ` Tejun Heo
2012-10-18 21:14       ` Tejun Heo
     [not found]       ` <20121018211434.GI13370-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-10-18 22:21         ` Matt Helsley
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
2012-10-18 22:35               ` Tejun Heo
     [not found]               ` <20121018223517.GQ13370-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-10-18 23:47                 ` Matt Helsley
2012-10-18 23:47                   ` Matt Helsley
2012-10-19  0:01                   ` Tejun Heo
2012-10-19  0:01                     ` Tejun Heo
2012-10-19  1:29                     ` Matt Helsley
2012-10-19  1:29                       ` Matt Helsley
2012-10-19 20:02                       ` Tejun Heo
2012-10-19 20:02                         ` Tejun Heo
     [not found]                       ` <20121019012945.GD6223-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2012-10-19 20:02                         ` Tejun Heo
     [not found]                     ` <20121019000153.GZ13370-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-10-19  1:29                       ` Matt Helsley
     [not found]                   ` <20121018234726.GC6223-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2012-10-19  0:01                     ` Tejun Heo
2012-10-19 16:54   ` Rafael J. Wysocki

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.