From: Matt Helsley <matthltc@linux.vnet.ibm.com>
To: Tejun Heo <tj@kernel.org>
Cc: Matt Helsley <matthltc@linux.vnet.ibm.com>,
rjw@sisk.pl, oleg@redhat.com, cgroups@vger.kernel.org,
containers@lists.linux-foundation.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCHSET cgroup/for-3.8] cgroup_freezer: allow migration regardless of freezer state and update locking
Date: Thu, 18 Oct 2012 16:47:26 -0700 [thread overview]
Message-ID: <20121018234726.GC6223@us.ibm.com> (raw)
In-Reply-To: <20121018223517.GQ13370@google.com>
On Thu, Oct 18, 2012 at 03:35:17PM -0700, Tejun Heo wrote:
> Hello, Matt.
>
> On Thu, Oct 18, 2012 at 03:21:55PM -0700, Matt Helsley wrote:
> > > Hmmm? Nothing prevents kthreads from being moved around. We only
> > > recently added the restriction to prevent migration of the kthreadd
> > > (the one which creates other kthreads). You can reproduce it with
> > > khungtask or any other !freezable kthreads.
> >
> > Ok. I don't immmediately see why that'd be a good idea but it's
> > possible..
>
> Beats me too. There were talks about restricting all kthreads from
> being moved out of the root cgroup. Dunno. Maybe.
>
> > <off_topic>
> > "Whoever" did the freeze needs a way to "lock" access to the freezer state,
> > change the freezer state itself, do something (e.g. CRIU) which relies on
> > the state not changing, and then release the lock. Plus the lock has to be
> > released by the kernel if "Whoever" dies without the chance to release it.
> > So I was thinking who holds the lock and its lifetime could be represented
> > in userspace by file descriptor(s).
> > </off_topic>
>
> Long term, I don't think it's feasible to continue to use cgroup
> kernel interface as the multiplexing layer among different users.
> cgroup core simply doesn't have enough context or infrastructure to
> support such usages. It's somewhere between being a pure interface to
> the provided kernel feature and fully multiplexed interface which
> userland applications can depend on for arbitration. It tries to have
> the appearance of the latter but fails.
>
> I think the only sane way would be having a userland arbitrator which
> owns the kernel interface to itself and makes policy decisions from
> userland clients and configures cgroup accordingly.
OK -- yeah, solving the arbitration issue in userspace might be best.
>
> > > As for CRIU, it isn't using cgroup freezer at the moment because
> > > frozen tasks can't be ptraced currently. Something I'm hoping to
> > > change but not sure when it can be done.
> >
> > OK, but that doesn't mean the frozen nature of the task list itself
> > won't be useful in the future.
>
> I think that should be solved via userland policies rather than
> depending on this accidental cgroup_freezer feature.
It's not accidental -- it *was an intended feature*:
22 # This bash script tests freezer code by starting a long sleep process.
23 # The sleep process is frozen. We then move the sleep process to a THAWED
24 # cgroup. We expect moving the sleep process to fail.
( This atrocious link is the easiest way to see the testcase:
http://ltp.git.sourceforge.net/git/gitweb.cgi?p=ltp/ltp.git;a=blob;f=testcases/kernel/controllers/freezer/freeze_move_thaw.sh;h=b2d5a83506a8425b117be9ff775d9f73d2d58393;hb=0436176dbfe6fdaaf97590d2356eb23d2739b2c2
)
It was intended for something very much like the CRIU case I mentioned
:).
Cheers,
-Matt Helsley
next prev parent reply other threads:[~2012-10-18 23:48 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-16 22:28 Tejun Heo
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-17 8:28 ` Li Zefan
2012-10-18 1:25 ` Li Zefan
2012-10-21 19:11 ` Oleg Nesterov
2012-10-21 19:22 ` Tejun Heo
2012-10-22 18:04 ` Oleg Nesterov
2012-10-22 21:16 ` Tejun Heo
2012-10-23 15:51 ` Oleg Nesterov
2012-10-24 19:04 ` Tejun Heo
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
2012-10-22 17:44 ` Oleg Nesterov
2012-10-22 21:13 ` Tejun Heo
2012-10-23 15:39 ` Oleg Nesterov
2012-10-24 18:57 ` Tejun Heo
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 ` [PATCH 1/1] freezer: change ptrace_stop/do_signal_stop to use freezable_schedule() Oleg Nesterov
2012-10-25 17:18 ` Tejun Heo
2012-10-25 17:34 ` Oleg Nesterov
2012-10-25 17:36 ` Tejun Heo
2012-10-26 17:45 ` [PATCH v2 0/1] " Oleg Nesterov
2012-10-26 17:46 ` [PATCH v2 1/1] " Oleg Nesterov
2012-10-26 17:52 ` Tejun Heo
2012-10-26 18:01 ` Oleg Nesterov
2012-10-26 21:14 ` Rafael J. Wysocki
2012-10-26 21:29 ` Rafael J. Wysocki
2012-10-26 21:29 ` Tejun Heo
2012-10-28 0:16 ` Rafael J. Wysocki
2012-10-27 22:22 ` Ben Hutchings
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
2012-10-22 18:34 ` Oleg Nesterov
2012-10-22 21:18 ` Tejun Heo
2012-10-23 15:55 ` Oleg Nesterov
2012-10-24 19:06 ` Tejun Heo
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 ` [PATCH 1/1] freezer: exec should clear PF_NOFREEZE along with PF_KTHREAD Oleg Nesterov
2012-10-25 17:20 ` Tejun Heo
2012-10-25 17:37 ` Oleg Nesterov
2012-10-25 17:37 ` Tejun Heo
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-22 19:25 ` Oleg Nesterov
2012-10-22 21:25 ` Tejun Heo
2012-10-23 16:14 ` Oleg Nesterov
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
2012-10-18 21:14 ` Tejun Heo
2012-10-18 22:21 ` Matt Helsley
2012-10-18 22:35 ` Tejun Heo
2012-10-18 23:47 ` Matt Helsley [this message]
2012-10-19 0:01 ` Tejun Heo
2012-10-19 1:29 ` Matt Helsley
2012-10-19 20:02 ` Tejun Heo
2012-10-19 16:54 ` Rafael J. Wysocki
2012-10-19 20:04 ` Tejun Heo
2012-10-21 19:18 ` Oleg Nesterov
2012-10-21 19:24 ` Tejun Heo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20121018234726.GC6223@us.ibm.com \
--to=matthltc@linux.vnet.ibm.com \
--cc=cgroups@vger.kernel.org \
--cc=containers@lists.linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=oleg@redhat.com \
--cc=rjw@sisk.pl \
--cc=tj@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome