From: Andy Lutomirski <luto@amacapital.net> To: Tejun Heo <tj@kernel.org>, Linux API <linux-api@vger.kernel.org> Cc: Li Zefan <lizefan@huawei.com>, Johannes Weiner <hannes@cmpxchg.org>, Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, Paul Turner <pjt@google.com>, Mike Galbraith <efault@gmx.de>, "open list:CONTROL GROUP (CGROUP)" <cgroups@vger.kernel.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, kernel-team@fb.com, lvenanci@redhat.com Subject: Re: [PATCHSET for-4.11] cgroup: implement cgroup v2 thread mode Date: Thu, 2 Feb 2017 13:32:19 -0800 [thread overview] Message-ID: <CALCETrW6Mqj9VLogd0XaLgVAzEqsZ+VnZjN5NROCqr0ssdYaKg@mail.gmail.com> (raw) In-Reply-To: <20170202200632.13992-1-tj@kernel.org> On Thu, Feb 2, 2017 at 12:06 PM, Tejun Heo <tj@kernel.org> wrote: > Hello, > > This patchset implements cgroup v2 thread mode. It is largely based > on the discussions that we had at the plumbers last year. Here's the > rough outline. I like this, but I have some design questions: > > * Thread mode is explicitly enabled on a cgroup by writing "enable" > into "cgroup.threads" file. The cgroup shouldn't have any child > cgroups or enabled controllers. Why do you need to manually turn it on? That is, couldn't it be automatic based on what controllers are enabled? > > * Once enabled, arbitrary sub-hierarchy can be created and threads can > be put anywhere in the subtree by writing TIDs into "cgroup.threads" > file. Process granularity and no-internal-process constraint don't > apply in a threaded subtree. I'm a bit worried that this conflates two different things. There's thread support, i.e. allowing individual threads to be placed into cgroups. There's also more flexible sub-hierarchy support, i.e. relaxing no-internal-process constraints. For the "cpuacct" controller, for example, both of these make sense. But what if someone writes a controller (directio, for example, just to make something up) for which thread granularity makes sense but relaxing no-internal-process constraints does not? --Andy
WARNING: multiple messages have this Message-ID (diff)
From: Andy Lutomirski <luto-kltTT9wpgjJwATOyAt5JVQ@public.gmane.org> To: Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>, Linux API <linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org> Cc: Li Zefan <lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>, Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org>, Peter Zijlstra <peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>, Ingo Molnar <mingo-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>, Paul Turner <pjt-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>, Mike Galbraith <efault-Mmb7MZpHnFY@public.gmane.org>, "open list:CONTROL GROUP (CGROUP)" <cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>, "linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>, kernel-team-b10kYP2dOMg@public.gmane.org, lvenanci-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org Subject: Re: [PATCHSET for-4.11] cgroup: implement cgroup v2 thread mode Date: Thu, 2 Feb 2017 13:32:19 -0800 [thread overview] Message-ID: <CALCETrW6Mqj9VLogd0XaLgVAzEqsZ+VnZjN5NROCqr0ssdYaKg@mail.gmail.com> (raw) In-Reply-To: <20170202200632.13992-1-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> On Thu, Feb 2, 2017 at 12:06 PM, Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> wrote: > Hello, > > This patchset implements cgroup v2 thread mode. It is largely based > on the discussions that we had at the plumbers last year. Here's the > rough outline. I like this, but I have some design questions: > > * Thread mode is explicitly enabled on a cgroup by writing "enable" > into "cgroup.threads" file. The cgroup shouldn't have any child > cgroups or enabled controllers. Why do you need to manually turn it on? That is, couldn't it be automatic based on what controllers are enabled? > > * Once enabled, arbitrary sub-hierarchy can be created and threads can > be put anywhere in the subtree by writing TIDs into "cgroup.threads" > file. Process granularity and no-internal-process constraint don't > apply in a threaded subtree. I'm a bit worried that this conflates two different things. There's thread support, i.e. allowing individual threads to be placed into cgroups. There's also more flexible sub-hierarchy support, i.e. relaxing no-internal-process constraints. For the "cpuacct" controller, for example, both of these make sense. But what if someone writes a controller (directio, for example, just to make something up) for which thread granularity makes sense but relaxing no-internal-process constraints does not? --Andy
next prev parent reply other threads:[~2017-02-02 21:32 UTC|newest] Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-02-02 20:06 [PATCHSET for-4.11] cgroup: implement cgroup v2 thread mode Tejun Heo 2017-02-02 20:06 ` Tejun Heo 2017-02-02 20:06 ` [PATCH 1/5] cgroup: reorganize cgroup.procs / task write path Tejun Heo 2017-02-02 20:06 ` [PATCH 2/5] cgroup: add @flags to css_task_iter_start() and implement CSS_TASK_ITER_PROCS Tejun Heo 2017-02-02 20:06 ` [PATCH 3/5] cgroup: introduce cgroup->proc_cgrp and threaded css_set handling Tejun Heo 2017-02-02 20:06 ` Tejun Heo 2017-02-02 20:06 ` [PATCH 4/5] cgroup: implement CSS_TASK_ITER_THREADED Tejun Heo 2017-02-02 20:06 ` [PATCH 5/5] cgroup: implement cgroup v2 thread support Tejun Heo 2017-02-02 20:06 ` Tejun Heo 2017-02-02 21:32 ` Andy Lutomirski [this message] 2017-02-02 21:32 ` [PATCHSET for-4.11] cgroup: implement cgroup v2 thread mode Andy Lutomirski 2017-02-02 21:52 ` Tejun Heo 2017-02-02 21:52 ` Tejun Heo 2017-02-03 21:10 ` Andy Lutomirski 2017-02-03 21:10 ` Andy Lutomirski 2017-02-03 21:56 ` Tejun Heo 2017-02-06 9:50 ` Peter Zijlstra 2017-02-06 9:50 ` Peter Zijlstra 2017-02-03 20:20 ` Peter Zijlstra 2017-02-03 20:20 ` Peter Zijlstra 2017-02-03 20:59 ` Tejun Heo 2017-02-03 20:59 ` Tejun Heo 2017-02-06 12:49 ` Peter Zijlstra 2017-02-06 12:49 ` Peter Zijlstra 2017-02-08 23:08 ` Tejun Heo 2017-02-08 23:08 ` Tejun Heo 2017-02-09 10:29 ` Peter Zijlstra 2017-02-09 10:29 ` Peter Zijlstra 2017-02-10 15:45 ` Tejun Heo 2017-02-10 15:45 ` Tejun Heo 2017-02-10 17:51 ` Peter Zijlstra 2017-02-10 17:51 ` Peter Zijlstra 2017-02-12 5:05 ` Tejun Heo 2017-02-12 5:05 ` Tejun Heo 2017-02-12 6:59 ` Mike Galbraith 2017-02-12 6:59 ` Mike Galbraith 2017-02-13 5:45 ` Mike Galbraith 2017-03-13 19:26 ` Tejun Heo 2017-03-13 19:26 ` Tejun Heo 2017-03-14 14:45 ` Mike Galbraith 2017-02-14 10:35 ` Peter Zijlstra 2017-03-13 20:05 ` Tejun Heo 2017-03-13 20:05 ` Tejun Heo 2017-03-21 12:39 ` Peter Zijlstra 2017-03-21 12:39 ` Peter Zijlstra 2017-03-22 14:52 ` Peter Zijlstra 2017-03-22 14:52 ` Peter Zijlstra 2017-02-09 13:07 ` Paul Turner 2017-02-09 14:47 ` Peter Zijlstra 2017-02-09 15:08 ` Mike Galbraith [not found] ` <CAPM31RJaJjFwenC36Abij+EdzO3KBm-DEjQ_crSmzrtrrn2N2A@mail.gmail.com> 2017-02-13 5:28 ` Mike Galbraith 2017-02-10 15:46 ` Tejun Heo 2017-02-10 15:46 ` 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=CALCETrW6Mqj9VLogd0XaLgVAzEqsZ+VnZjN5NROCqr0ssdYaKg@mail.gmail.com \ --to=luto@amacapital.net \ --cc=cgroups@vger.kernel.org \ --cc=efault@gmx.de \ --cc=hannes@cmpxchg.org \ --cc=kernel-team@fb.com \ --cc=linux-api@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=lizefan@huawei.com \ --cc=lvenanci@redhat.com \ --cc=mingo@redhat.com \ --cc=peterz@infradead.org \ --cc=pjt@google.com \ --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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.