From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751418AbdGQO0Q (ORCPT ); Mon, 17 Jul 2017 10:26:16 -0400 Received: from mail-qk0-f177.google.com ([209.85.220.177]:36669 "EHLO mail-qk0-f177.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751278AbdGQO0O (ORCPT ); Mon, 17 Jul 2017 10:26:14 -0400 Date: Mon, 17 Jul 2017 10:26:09 -0400 From: Tejun Heo To: Peter Zijlstra Cc: lizefan@huawei.com, hannes@cmpxchg.org, mingo@redhat.com, longman@redhat.com, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-team@fb.com, pjt@google.com, luto@amacapital.net, efault@gmx.de, torvalds@linux-foundation.org, guro@fb.com Subject: Re: [PATCH 5/6] cgroup: implement cgroup v2 thread support Message-ID: <20170717142609.GC3519177@devbig577.frc2.facebook.com> References: <20170717020721.3612468-1-tj@kernel.org> <20170717020721.3612468-6-tj@kernel.org> <20170717141409.sqafufjupsiffnri@hirez.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170717141409.sqafufjupsiffnri@hirez.programming.kicks-ass.net> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello, Peter. On Mon, Jul 17, 2017 at 04:14:09PM +0200, Peter Zijlstra wrote: > AFAICT this is not in fact what I suggested... :/ Heh, sorry about misattributing that. I was mostly referring to the overall idea of marking each cgroup domain or threaded rather than subtree. > My proposal did not have that invalid state. It would simply refuse to > change the type from thread to domain in the case where the parent is > not a domain. > > Also, my proposal maintained the normal property inheritance rules. A > child cgroup's creation 'type' would be that of its parent and not > always be 'domain'. But aren't both of the above get weird when the parent can host both domain and threaded children? R / A(D) If you create another child B under R, it's naturally gonna be a domain. Let's say you turn that to threaded. R / \ A(D) B(T) And now try to create another child C, should that be a domain or threaded? If we only inherit from the second level on, which is in itself already confusing, that still leads to invalid configs for non-root thread roots. I don't think whether we fail the transition or put the cgroup in an invalid state is all that material. The simpler the better. > Let me read more (and more careful) to see if there's other things. Sure thing. Thanks! -- tejun