Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965598AbcKWQFE (ORCPT ); Wed, 23 Nov 2016 11:05:04 -0500 Received: from mail-wm0-f50.google.com ([74.125.82.50]:36311 "EHLO mail-wm0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965352AbcKWQFC (ORCPT ); Wed, 23 Nov 2016 11:05:02 -0500 Subject: Re: RFC: documentation of the autogroup feature To: Mike Galbraith References: <41d802dc-873a-ff02-17ff-93ce50f3e925@gmail.com> <1479901185.4306.38.camel@gmx.de> <327586fa-4672-d070-0ded-850654586273@gmail.com> <1479915229.4306.106.camel@gmx.de> Cc: mtk.manpages@gmail.com, Peter Zijlstra , Ingo Molnar , linux-man , lkml , Thomas Gleixner From: "Michael Kerrisk (man-pages)" Message-ID: <7513b0a5-c5d0-3a92-5849-995af22601e4@gmail.com> Date: Wed, 23 Nov 2016 17:04:56 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <1479915229.4306.106.camel@gmx.de> Content-Type: text/plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3725 Lines: 86 Hi Mike, On 11/23/2016 04:33 PM, Mike Galbraith wrote: > On Wed, 2016-11-23 at 14:54 +0100, Michael Kerrisk (man-pages) wrote: >> Hi Mike, >> >> First off, I better say that I'm not at all intimate with the details >> of the scheduler, so bear with me... >> >> On 11/23/2016 12:39 PM, Mike Galbraith wrote: >>> On Tue, 2016-11-22 at 16:59 +0100, Michael Kerrisk (man-pages) wrote: >>> >>>> ┌─────────────────────────────────────────────────────┐ >>>> │FIXME │ >>>> ├─────────────────────────────────────────────────────┤ >>>> │The following is a little vague. Does it need to be │ >>>> │made more precise? │ >>>> └─────────────────────────────────────────────────────┘ >>>> The CFS scheduler employs an algorithm that distributes the CPU >>>> across task groups. As a result of this algorithm, the pro‐ >>>> cesses in task groups that contain multiple CPU-intensive pro‐ >>>> cesses are in effect disfavored by the scheduler. >>> >>> Mmmm, they're actually equalized (modulo smp fairness goop), but I see >>> what you mean. >> >> I couldn't quite grok that sentence. My problem is resolving "they". >> Do you mean: "the CPU scheduler equalizes the distribution of >> CPU cycles across task groups"? > > Sort of. "They" are scheduler entities, runqueue (group) or task. The > scheduler equalizes entity vruntimes. Okay -- I'll see if I can come up with some wording there. > >>>> │FIXME │ >>>> ├─────────────────────────────────────────────────────┤ >>>> │Is the following correct? Does the statement need to │ >>>> │be more precise? (E.g., in precisely which circum‐ │ >>>> │stances does the use of cgroups override autogroup?) │ >>>> └─────────────────────────────────────────────────────┘ >>>> The use of the cgroups(7) CPU controller overrides the effect >>>> of autogrouping. >>> >>> Correct, autogroup defers to cgroups. Perhaps mention that moving a >>> task back to the root task group will result in the autogroup again >>> taking effect. >> >> In what circumstances does a process get moved back to the root >> task group? > > Userspace actions, tool or human fingers. Could you say a little more please. What Kernel-user-space APIs/system calls/etc. cause this to happen? >> Actually, can you define for me what the root task group is, and >> why it exists? That may be worth some words in this man page. > > I don't think we need group scheduling details, there's plenty of > documentation elsewhere for those who want theory. Well, you suggested above Perhaps mention that moving a task back to the root task group will result in the autogroup again taking effect. So, that inevitable would lead me and the reader of the man page to ask: what's the root task group? > Autogroup is for > those who don't want to have to care (which is also why it should have > never grown nice knob). Yes, that I understand that much :-). Cheers, Michael -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ Linux/UNIX System Programming Training: http://man7.org/training/