Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752416AbbHEAuO (ORCPT ); Tue, 4 Aug 2015 20:50:14 -0400 Received: from mgwym02.jp.fujitsu.com ([211.128.242.41]:23230 "EHLO mgwym02.jp.fujitsu.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751973AbbHEAuM (ORCPT ); Tue, 4 Aug 2015 20:50:12 -0400 X-Greylist: delayed 609 seconds by postgrey-1.27 at vger.kernel.org; Tue, 04 Aug 2015 20:50:11 EDT X-SecurityPolicyCheck: OK by SHieldMailChecker v2.3.2 X-SHieldMailCheckerPolicyVersion: FJ-ISEC-20150223 X-SHieldMailCheckerMailID: 24a3b40ad98c4229ad7472b7eba37da7 Subject: Re: [PATCH v2 1/3] cgroup: define controller file conventions To: Tejun Heo , mingo@redhat.com, peterz@infradead.org References: <1438641689-14655-1-git-send-email-tj@kernel.org> <1438641689-14655-2-git-send-email-tj@kernel.org> <20150804193101.GI17598@mtj.duckdns.org> Cc: hannes@cmpxchg.org, lizefan@huawei.com, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-team@fb.com From: Kamezawa Hiroyuki Message-ID: <55C15B4C.9080202@jp.fujitsu.com> Date: Wed, 5 Aug 2015 09:39:40 +0900 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 MIME-Version: 1.0 In-Reply-To: <20150804193101.GI17598@mtj.duckdns.org> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-TM-AS-MML: disable Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 5311 Lines: 159 On 2015/08/05 4:31, Tejun Heo wrote: > From 6abc8ca19df0078de17dc38340db3002ed489ce7 Mon Sep 17 00:00:00 2001 > From: Tejun Heo > Date: Tue, 4 Aug 2015 15:20:55 -0400 > > Traditionally, each cgroup controller implemented whatever interface > it wanted leading to interfaces which are widely inconsistent. > Examining the requirements of the controllers readily yield that there > are only a few control schemes shared among all. > > Two major controllers already had to implement new interface for the > unified hierarchy due to significant structural changes. Let's take > the chance to establish common conventions throughout all controllers. > > This patch defines CGROUP_WEIGHT_MIN/DFL/MAX to be used on all weight > based control knobs and documents the conventions that controllers > should follow on the unified hierarchy. Except for io.weight knob, > all existing unified hierarchy knobs are already compliant. A > follow-up patch will update io.weight. > > v2: Added descriptions of min, low and high knobs. > > Signed-off-by: Tejun Heo > Acked-by: Johannes Weiner > Cc: Li Zefan > Cc: Peter Zijlstra > --- > Hello, > > Added low/high descriptions and applied to the following git branch. > > git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git for-4.3-unified-base > > The branch currently only contains this patch and will stay stable so > that it can be pulled from. I kept the base weight as DFL for now. > If we decide to change it, I'll apply the change on top. > > Thanks. > > Documentation/cgroups/unified-hierarchy.txt | 80 ++++++++++++++++++++++++++--- > include/linux/cgroup.h | 9 ++++ > 2 files changed, 81 insertions(+), 8 deletions(-) > > diff --git a/Documentation/cgroups/unified-hierarchy.txt b/Documentation/cgroups/unified-hierarchy.txt > index 86847a7..1ee9caf 100644 > --- a/Documentation/cgroups/unified-hierarchy.txt > +++ b/Documentation/cgroups/unified-hierarchy.txt > @@ -23,10 +23,13 @@ CONTENTS > 5. Other Changes > 5-1. [Un]populated Notification > 5-2. Other Core Changes > - 5-3. Per-Controller Changes > - 5-3-1. blkio > - 5-3-2. cpuset > - 5-3-3. memory > + 5-3. Controller File Conventions > + 5-3-1. Format > + 5-3-2. Control Knobs > + 5-4. Per-Controller Changes > + 5-4-1. blkio > + 5-4-2. cpuset > + 5-4-3. memory > 6. Planned Changes > 6-1. CAP for resource control > > @@ -372,14 +375,75 @@ supported and the interface files "release_agent" and > - The "cgroup.clone_children" file is removed. > > > -5-3. Per-Controller Changes > +5-3. Controller File Conventions > > -5-3-1. blkio > +5-3-1. Format > + > +In general, all controller files should be in one of the following > +formats whenever possible. > + > +- Values only files > + > + VAL0 VAL1...\n > + > +- Flat keyed files > + > + KEY0 VAL0\n > + KEY1 VAL1\n > + ... > + > +- Nested keyed files > + > + KEY0 SUB_KEY0=VAL00 SUB_KEY1=VAL01... > + KEY1 SUB_KEY0=VAL10 SUB_KEY1=VAL11... > + ... > + > +For a writeable file, the format for writing should generally match > +reading; however, controllers may allow omitting later fields or > +implement restricted shortcuts for most common use cases. > + > +For both flat and nested keyed files, only the values for a single key > +can be written at a time. For nested keyed files, the sub key pairs > +may be specified in any order and not all pairs have to be specified. > + > + > +5-3-2. Control Knobs > + > +- Settings for a single feature should generally be implemented in a > + single file. > + > +- In general, the root cgroup should be exempt from resource control > + and thus shouldn't have resource control knobs. > + > +- If a controller implements ratio based resource distribution, the > + control knob should be named "weight" and have the range [1, 10000] > + and 100 should be the default value. The values are chosen to allow > + enough and symmetric bias in both directions while keeping it > + intuitive (the default is 100%). > + > +- If a controller implements an absolute resource guarantee and/or > + limit, the control knobs should be named "min" and "max" > + respectively. If a controller implements best effort resource > + gurantee and/or limit, the control knobs should be named "low" and > + "high" respectively. > + > + In the above four control files, the special token "max" should be > + used to represent upward infinity for both reading and writing. > + so, for memory controller, we'll have (in alphabet order) memory.failcnt memory.force_empty (<= should this be removed ?) memory.kmem.failcnt memory.kmem.max memory.kmem.max_usage memory.kmem.slabinfo memory.kmem.tcp.failcnt memory.kmem.tcp.max memory.kmem.tcp.max_usage memory.kmem.tcp.usage memory.kmem.usage memory.max memory.max_usage memory.move_charge_at_immigrate memory.numa_stat memory.oom_control memory.pressure_level memory.high memory.swapiness memory.usage memory.use_hierarchy (<= removed) ? -Kame -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/