From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753559AbdHKQiK (ORCPT ); Fri, 11 Aug 2017 12:38:10 -0400 Received: from mail-qt0-f193.google.com ([209.85.216.193]:33847 "EHLO mail-qt0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752724AbdHKQiJ (ORCPT ); Fri, 11 Aug 2017 12:38:09 -0400 From: Tejun Heo To: lizefan@huawei.com, hannes@cmpxchg.org, peterz@infradead.org, mingo@redhat.com, longman@redhat.com Cc: 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: [PATCHSET for-4.14] cgroup, sched: cgroup2 basic resource accounting Date: Fri, 11 Aug 2017 09:37:51 -0700 Message-Id: <20170811163754.3939102-1-tj@kernel.org> X-Mailer: git-send-email 2.9.3 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello, This patchset implement cgroup2 basic resource accounting and track CPU usages on all cgroups by default. In cgroup1, collecting non-trivial statistics by default wasn't viable because there can be any number of hierarchies. While cgroup2's single hierarchy removes that part of the problem, propagating up the hierarchy on each accounting event is still problematic. This patchset implements cgroup2 basic resource accounting mechanism which keeps all the counters per-cpu and propagates lazily to allow the accounting side to only perform single per-cpu accounting in most cases and the reader side's complexity to be O(nr updated descendants) instead of O(nr total descendants). This will be used by cgroup2 CPU interface later. The patchset contains the following three patches. 0001-sched-cputime-Expose-cputime_adjust.patch 0002-cpuacct-Introduce-cgroup_account_cputime-_field.patch 0003-cgroup-Implement-cgroup2-basic-CPU-usage-accounting.patch The patchset is on top of cgroup/for-4.14 and available in the following git branch. git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git review-cgroup2-basic-acct diffstat follows. Thanks. Documentation/cgroup-v2.txt | 9 + include/linux/cgroup-defs.h | 47 +++++ include/linux/cgroup.h | 60 +++++++ include/linux/sched/cputime.h | 3 kernel/cgroup/Makefile | 2 kernel/cgroup/cgroup-internal.h | 8 kernel/cgroup/cgroup.c | 24 ++ kernel/cgroup/stat.c | 333 ++++++++++++++++++++++++++++++++++++++++ kernel/sched/cpuacct.h | 17 -- kernel/sched/cputime.c | 7 kernel/sched/deadline.c | 2 kernel/sched/fair.c | 2 kernel/sched/rt.c | 2 kernel/sched/sched.h | 1 kernel/sched/stop_task.c | 2 15 files changed, 489 insertions(+), 30 deletions(-) -- tejun