Re: [Documentation] State of CPU controller in cgroup v2

2016-10-05 Thread Peter Zijlstra
On Tue, Oct 04, 2016 at 10:47:17AM -0400, Tejun Heo wrote: > > cgroup-v2, by placing the system style controllers first and foremost, > > completely renders that scenario impossible. Note also that any proposed > > rgroup would not work for this, since that, per design, is a subtree, > > and theref

Re: [Documentation] State of CPU controller in cgroup v2

2016-10-04 Thread Tejun Heo
Hello, Peter. On Tue, Sep 06, 2016 at 12:29:50PM +0200, Peter Zijlstra wrote: > The fundamental problem is that we have 2 different types of > controllers, on the one hand these controllers above, that work on tasks > and form groups of them and build up from that. Lets call them > task-controller

Re: [Documentation] State of CPU controller in cgroup v2

2016-09-30 Thread Mike Galbraith
On Fri, 2016-09-30 at 11:06 +0200, Tejun Heo wrote: > Hello, Mike. > > On Sat, Sep 10, 2016 at 12:08:57PM +0200, Mike Galbraith wrote: > > On Fri, 2016-09-09 at 18:57 -0400, Tejun Heo wrote: > > > > > As for your example, who performs the cgroup setup and configuration, > > > > > the application i

Re: [Documentation] State of CPU controller in cgroup v2

2016-09-30 Thread Tejun Heo
Hello, Mike. On Sat, Sep 10, 2016 at 12:08:57PM +0200, Mike Galbraith wrote: > On Fri, 2016-09-09 at 18:57 -0400, Tejun Heo wrote: > > > > As for your example, who performs the cgroup setup and configuration, > > > > the application itself or an external entity? If an external entity, > > > > how

Re: [Documentation] State of CPU controller in cgroup v2

2016-09-19 Thread Tejun Heo
Hello, On Thu, Sep 15, 2016 at 01:08:07PM -0700, Andy Lutomirski wrote: > With regard to no-internal-tasks, I see (at least) three options: > > 1. Keep the cgroup2 status quo. Lots of distros and such are likely > to have their cgroup management fail if run in a container. I really, I don't kn

Re: [Documentation] State of CPU controller in cgroup v2

2016-09-19 Thread Tejun Heo
Hello, Austin. On Mon, Sep 12, 2016 at 11:20:03AM -0400, Austin S. Hemmelgarn wrote: > > If you confine it to the cpu controller, ignore anonymous > > consumptions, the rather ugly mapping between nice and weight values > > and the fact that nobody could come up with a practical usefulness for > >

Re: [Documentation] State of CPU controller in cgroup v2

2016-09-16 Thread Peter Zijlstra
On Fri, Sep 16, 2016 at 11:19:38AM -0700, Andy Lutomirski wrote: > On Fri, Sep 16, 2016 at 9:50 AM, Peter Zijlstra wrote: > > {1,2} {3,4} {5} seem exclusive, did I miss something? (other than that 5 > > cpu parts are 'rare'). > > There's no overlap, so they're logically exclusive, but it avoids

Re: [Documentation] State of CPU controller in cgroup v2

2016-09-16 Thread Andy Lutomirski
On Fri, Sep 16, 2016 at 9:50 AM, Peter Zijlstra wrote: > On Fri, Sep 16, 2016 at 09:29:06AM -0700, Andy Lutomirski wrote: > >> > SCHED_DEADLINE, its a 'Global'-EDF like scheduler that doesn't support >> > CPU affinities (because that doesn't make sense). The only way to >> > restrict it is to part

Re: [Documentation] State of CPU controller in cgroup v2

2016-09-16 Thread Peter Zijlstra
On Fri, Sep 16, 2016 at 09:29:06AM -0700, Andy Lutomirski wrote: > > SCHED_DEADLINE, its a 'Global'-EDF like scheduler that doesn't support > > CPU affinities (because that doesn't make sense). The only way to > > restrict it is to partition. > > > > 'Global' because you can partition it. If you r

Re: [Documentation] State of CPU controller in cgroup v2

2016-09-16 Thread Andy Lutomirski
On Fri, Sep 16, 2016 at 9:19 AM, Peter Zijlstra wrote: > On Fri, Sep 16, 2016 at 08:12:58AM -0700, Andy Lutomirski wrote: >> On Sep 16, 2016 12:51 AM, "Peter Zijlstra" wrote: >> > >> > On Thu, Sep 15, 2016 at 01:08:07PM -0700, Andy Lutomirski wrote: >> > > BTW, Mike keeps mentioning exclusive cgr

Re: [Documentation] State of CPU controller in cgroup v2

2016-09-16 Thread Peter Zijlstra
On Fri, Sep 16, 2016 at 08:12:58AM -0700, Andy Lutomirski wrote: > On Sep 16, 2016 12:51 AM, "Peter Zijlstra" wrote: > > > > On Thu, Sep 15, 2016 at 01:08:07PM -0700, Andy Lutomirski wrote: > > > BTW, Mike keeps mentioning exclusive cgroups as problematic with the > > > no-internal-tasks constrain

Re: [Documentation] State of CPU controller in cgroup v2

2016-09-16 Thread Andy Lutomirski
On Sep 16, 2016 12:51 AM, "Peter Zijlstra" wrote: > > On Thu, Sep 15, 2016 at 01:08:07PM -0700, Andy Lutomirski wrote: > > BTW, Mike keeps mentioning exclusive cgroups as problematic with the > > no-internal-tasks constraints. Do exclusive cgroups still exist in > > cgroup2? Could we perhaps jus

Re: [Documentation] State of CPU controller in cgroup v2

2016-09-16 Thread Peter Zijlstra
On Thu, Sep 15, 2016 at 01:08:07PM -0700, Andy Lutomirski wrote: > BTW, Mike keeps mentioning exclusive cgroups as problematic with the > no-internal-tasks constraints. Do exclusive cgroups still exist in > cgroup2? Could we perhaps just remove that capability entirely? I've > never understood w

Re: [Documentation] State of CPU controller in cgroup v2

2016-09-15 Thread Andy Lutomirski
On Wed, Sep 14, 2016 at 1:00 PM, Tejun Heo wrote: > Hello, > With regard to no-internal-tasks, I see (at least) three options: 1. Keep the cgroup2 status quo. Lots of distros and such are likely to have their cgroup management fail if run in a container. I really, really dislike this option.

Re: [Documentation] State of CPU controller in cgroup v2

2016-09-14 Thread Tejun Heo
Hello, On Mon, Sep 12, 2016 at 10:39:04AM -0700, Andy Lutomirski wrote: > > > Your idea of "trivially" doesn't match mine. You gave a use case in > > > > I suppose I wasn't clear enough. It is trivial in the sense that if > > the userland implements something which works for namespace-root, it >

Re: [Documentation] State of CPU controller in cgroup v2

2016-09-12 Thread Austin S. Hemmelgarn
On 2016-09-09 18:57, Tejun Heo wrote: Hello, again. On Mon, Sep 05, 2016 at 10:37:55AM -0700, Andy Lutomirski wrote: * It doesn't bring any practical benefits in terms of capability. Userland can trivially handle the system-root and namespace-roots in a symmetrical manner. Your idea of "t

Re: [Documentation] State of CPU controller in cgroup v2

2016-09-10 Thread Mike Galbraith
On Fri, 2016-09-09 at 18:57 -0400, Tejun Heo wrote: > > > As for your example, who performs the cgroup setup and configuration, > > > the application itself or an external entity? If an external entity, > > > how does it know which thread is what? > > > > In my case, it would be a little script

Re: [Documentation] State of CPU controller in cgroup v2

2016-09-10 Thread Mike Galbraith
On Fri, 2016-09-09 at 18:57 -0400, Tejun Heo wrote: > But, whatever, let's go there: Given the arguments that I laid out for > the no-internal-tasks rule, how does the problem seem fixable through > relaxing the constraint? Well, for one thing, cpusets would cease to leak CPUs. With the no -inte

Re: [Documentation] State of CPU controller in cgroup v2

2016-09-09 Thread Tejun Heo
Hello, again. On Mon, Sep 05, 2016 at 10:37:55AM -0700, Andy Lutomirski wrote: > > * It doesn't bring any practical benefits in terms of capability. > > Userland can trivially handle the system-root and namespace-roots in > > a symmetrical manner. > > Your idea of "trivially" doesn't match mi

Re: [Documentation] State of CPU controller in cgroup v2

2016-09-06 Thread Peter Zijlstra
On Mon, Sep 05, 2016 at 10:37:55AM -0700, Andy Lutomirski wrote: > And I still think that, at least for cpu, nothing at all goes wrong if > you allow processes to exist in cgroups that have cpu set in > subtree-control. cpu, cpuset, perf, cpuacct (although we all agree that really should be part o

Re: [Documentation] State of CPU controller in cgroup v2

2016-09-05 Thread Andy Lutomirski
On Sat, Sep 3, 2016 at 3:05 PM, Tejun Heo wrote: > Hello, Andy. > > On Wed, Aug 31, 2016 at 02:46:20PM -0700, Andy Lutomirski wrote: >> > Consider a use case where the user isn't interested in fully >> > accounting and dividing up system resources but wants to just cap >> > resource usage from a s

Re: [Documentation] State of CPU controller in cgroup v2

2016-09-03 Thread Tejun Heo
Hello, Andy. On Wed, Aug 31, 2016 at 02:46:20PM -0700, Andy Lutomirski wrote: > > Consider a use case where the user isn't interested in fully > > accounting and dividing up system resources but wants to just cap > > resource usage from a subset of workloads. There is no reason to > > require suc

Re: [Documentation] State of CPU controller in cgroup v2

2016-08-31 Thread Andy Lutomirski
On Wed, Aug 31, 2016 at 2:07 PM, Tejun Heo wrote: > Hello, > > On Wed, Aug 31, 2016 at 12:11:58PM -0700, Andy Lutomirski wrote: >> > You can say that allowing the possibility of deviation isn't a good >> > design choice but it is a design choice with other implications - on >> > how we deal with c

Re: [Documentation] State of CPU controller in cgroup v2

2016-08-31 Thread Tejun Heo
Hello, On Wed, Aug 31, 2016 at 12:11:58PM -0700, Andy Lutomirski wrote: > > You can say that allowing the possibility of deviation isn't a good > > design choice but it is a design choice with other implications - on > > how we deal with configurations without cgroup at all, transitioning > > from

Re: [Documentation] State of CPU controller in cgroup v2

2016-08-31 Thread Andy Lutomirski
I'm replying separately to keep the two issues in separate emails. On Mon, Aug 29, 2016 at 3:20 PM, Tejun Heo wrote: > Hello, Andy. > > Sorry about the delay. Was kinda overwhelmed with other things. > > On Sat, Aug 20, 2016 at 11:45:55AM -0700, Andy Lutomirski wrote: >> > This becomes clear whe

Re: [Documentation] State of CPU controller in cgroup v2

2016-08-31 Thread Andy Lutomirski
On Wed, Aug 31, 2016 at 10:32 AM, Tejun Heo wrote: > Hello, Andy. > > >> >> I really, really think that cgroup v2 should supply the same >> >> *interface* inside and outside of a non-root namespace. If this is >> > >> > It *does*. That's what I tried to explain, that it's exactly >> > isomorhpi

Re: [Documentation] State of CPU controller in cgroup v2

2016-08-31 Thread Tejun Heo
Hello, Andy. On Tue, Aug 30, 2016 at 08:42:20PM -0700, Andy Lutomirski wrote: > On Mon, Aug 29, 2016 at 3:20 PM, Tejun Heo wrote: > >> This seems to explain why the controllers need to be able to handle > >> things being charged to the root cgroup (or to an unidentifiable > >> cgroup, anyway). T

Re: [Documentation] State of CPU controller in cgroup v2

2016-08-30 Thread Andy Lutomirski
On Mon, Aug 29, 2016 at 3:20 PM, Tejun Heo wrote: >> > These base-system operations are special regardless of cgroup and we >> > already have sometimes crude ways to affect their behaviors where >> > necessary through sysctl knobs, priorities on specific kernel threads >> > and so on. cgroup does

Re: [Documentation] State of CPU controller in cgroup v2

2016-08-29 Thread Tejun Heo
Hello, James. On Sat, Aug 20, 2016 at 10:34:14PM -0700, James Bottomley wrote: > I can see that process based is conceptually easier in v2 because you > begin with a process tree, but it would really be a pity to lose the > thread based controls we have now and permanently lose the ability to > cr

Re: [Documentation] State of CPU controller in cgroup v2

2016-08-29 Thread Tejun Heo
Hello, Andy. Sorry about the delay. Was kinda overwhelmed with other things. On Sat, Aug 20, 2016 at 11:45:55AM -0700, Andy Lutomirski wrote: > > This becomes clear whenever an entity is allocating memory on behalf > > of someone else - get_user_pages(), khugepaged, swapoff and so on (and > > li

Re: [Documentation] State of CPU controller in cgroup v2

2016-08-22 Thread Mike Galbraith
On Sat, 2016-08-20 at 11:56 -0400, Tejun Heo wrote: > > > there are other reasons to enforce process granularity. One > > > important one is isolating system-level management operations from > > > in-process application operations. The cgroup interface, being a > > > virtual filesystem,

Re: [Documentation] State of CPU controller in cgroup v2

2016-08-20 Thread James Bottomley
On Wed, 2016-08-17 at 13:18 -0700, Andy Lutomirski wrote: > On Aug 5, 2016 7:07 PM, "Tejun Heo" wrote: [...] > > 2. Disagreements and Arguments > > > > There have been several lengthy discussion threads [3][4] on LKML > > around the structural constraints of cgroup v2. The two that > > affect t

Re: [Documentation] State of CPU controller in cgroup v2

2016-08-20 Thread Andy Lutomirski
On Sat, Aug 20, 2016 at 8:56 AM, Tejun Heo wrote: > Hello, Andy. > > On Wed, Aug 17, 2016 at 01:18:24PM -0700, Andy Lutomirski wrote: >> > 2-1-1. Process Granularity >> > >> > For memory, because an address space is shared between all threads >> > of a process, the terminal consumer is a pro

Re: [Documentation] State of CPU controller in cgroup v2

2016-08-20 Thread Tejun Heo
Hello, Andy. On Wed, Aug 17, 2016 at 01:18:24PM -0700, Andy Lutomirski wrote: > > 2-1-1. Process Granularity > > > > For memory, because an address space is shared between all threads > > of a process, the terminal consumer is a process, not a thread. > > Separating the threads of a single

Re: [Documentation] State of CPU controller in cgroup v2

2016-08-17 Thread Andy Lutomirski
On Aug 5, 2016 7:07 PM, "Tejun Heo" wrote: > > Hello, > > There have been several discussions around CPU controller support. > Unfortunately, no consensus was reached and cgroup v2 is sorely > lacking CPU controller support. This document includes summary of the > situation and arguments along wi

Re: [Documentation] State of CPU controller in cgroup v2

2016-08-17 Thread Mike Galbraith
On Tue, 2016-08-16 at 12:30 -0400, Johannes Weiner wrote: > On Tue, Aug 16, 2016 at 04:07:38PM +0200, Peter Zijlstra wrote: > > Also, the argument there seems unfair at best, you don't need cpu-v2 for > > buffered write control, you only need memcg and block co-mounted. > > Yes, memcg and block a

Re: [Documentation] State of CPU controller in cgroup v2

2016-08-16 Thread Tejun Heo
Hello, Peter. On Tue, Aug 16, 2016 at 04:07:38PM +0200, Peter Zijlstra wrote: > On Wed, Aug 10, 2016 at 06:09:44PM -0400, Johannes Weiner wrote: > > > [ That, and a disturbing number of emotional outbursts against > > systemd, which has nothing to do with any of this. ] > > Oh, so I'm entirely

Re: [Documentation] State of CPU controller in cgroup v2

2016-08-16 Thread Johannes Weiner
On Tue, Aug 16, 2016 at 04:07:38PM +0200, Peter Zijlstra wrote: > On Wed, Aug 10, 2016 at 06:09:44PM -0400, Johannes Weiner wrote: > > > [ That, and a disturbing number of emotional outbursts against > > systemd, which has nothing to do with any of this. ] > > Oh, so I'm entirely dreaming this

Re: [Documentation] State of CPU controller in cgroup v2

2016-08-16 Thread Chris Mason
On 08/16/2016 10:07 AM, Peter Zijlstra wrote: On Wed, Aug 10, 2016 at 06:09:44PM -0400, Johannes Weiner wrote: [ That, and a disturbing number of emotional outbursts against systemd, which has nothing to do with any of this. ] Oh, so I'm entirely dreaming this then: https://github.com/

Re: [Documentation] State of CPU controller in cgroup v2

2016-08-16 Thread Peter Zijlstra
On Wed, Aug 10, 2016 at 06:09:44PM -0400, Johannes Weiner wrote: > [ That, and a disturbing number of emotional outbursts against > systemd, which has nothing to do with any of this. ] Oh, so I'm entirely dreaming this then: https://github.com/systemd/systemd/pull/3905 Completely unrelated.

Re: [Documentation] State of CPU controller in cgroup v2

2016-08-12 Thread Mike Galbraith
On Fri, 2016-08-12 at 18:17 -0400, Johannes Weiner wrote: > > > This argument that cgroup2 is not backward compatible is laughable. > > > > Fine, you're entitled to your sense of humor. I have one to, I find it > > laughable that threaded applications can only sit there like a lump of > > mud si

Re: [Documentation] State of CPU controller in cgroup v2

2016-08-12 Thread Johannes Weiner
On Thu, Aug 11, 2016 at 08:25:06AM +0200, Mike Galbraith wrote: > On Wed, 2016-08-10 at 18:09 -0400, Johannes Weiner wrote: > > The complete lack of cohesiveness between v1 controllers prevents us > > from implementing even the most fundamental resource control that > > cloud fleets like Google's a

Re: [Documentation] State of CPU controller in cgroup v2

2016-08-10 Thread Mike Galbraith
On Wed, 2016-08-10 at 18:09 -0400, Johannes Weiner wrote: > The complete lack of cohesiveness between v1 controllers prevents us > from implementing even the most fundamental resource control that > cloud fleets like Google's and Facebook's are facing, such as > controlling buffered IO; attributing

Re: [Documentation] State of CPU controller in cgroup v2

2016-08-10 Thread Johannes Weiner
On Sat, Aug 06, 2016 at 11:04:51AM +0200, Mike Galbraith wrote: > On Fri, 2016-08-05 at 13:07 -0400, Tejun Heo wrote: > > It is true that the trees are semantically different from each other > > and the symmetric handling of tasks and cgroups is aesthetically > > pleasing. However, it isn't

Re: [Documentation] State of CPU controller in cgroup v2

2016-08-06 Thread Mike Galbraith
On Fri, 2016-08-05 at 13:07 -0400, Tejun Heo wrote: > 2-2. Impact on CPU Controller > > As indicated earlier, the CPU controller's resource distribution graph > is the simplest. Every schedulable resource consumption can be > attributed to a specific task. In addition, for weight based control,