From: Tianchen Ding <dtcccc@linux.alibaba.com>
To: Zefan Li <lizefan.x@bytedance.com>,
Ingo Molnar <mingo@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
Juri Lelli <juri.lelli@redhat.com>,
Vincent Guittot <vincent.guittot@linaro.org>,
Dietmar Eggemann <dietmar.eggemann@arm.com>,
Steven Rostedt <rostedt@goodmis.org>,
Ben Segall <bsegall@google.com>, Mel Gorman <mgorman@suse.de>,
Daniel Bristot de Oliveira <bristot@redhat.com>,
Tejun Heo <tj@kernel.org>, Johannes Weiner <hannes@cmpxchg.org>,
Tianchen Ding <dtcccc@linux.alibaba.com>,
Michael Wang <yun.wang@linux.alibaba.com>,
Cruz Zhao <cruzzhao@linux.alibaba.com>,
Masahiro Yamada <masahiroy@kernel.org>,
Nathan Chancellor <nathan@kernel.org>,
Kees Cook <keescook@chromium.org>,
Andrew Morton <akpm@linux-foundation.org>,
Vlastimil Babka <vbabka@suse.cz>,
"Gustavo A. R. Silva" <gustavoars@kernel.org>,
Arnd Bergmann <arnd@arndb.de>, Miguel Ojeda <ojeda@kernel.org>,
Chris Down <chris@chrisdown.name>,
Vipin Sharma <vipinsh@google.com>,
Daniel Borkmann <daniel@iogearbox.net>
Cc: linux-kernel@vger.kernel.org, cgroups@vger.kernel.org
Subject: [RFC PATCH v2 0/4] Introduce group balancer
Date: Tue, 8 Mar 2022 17:26:25 +0800 [thread overview]
Message-ID: <20220308092629.40431-1-dtcccc@linux.alibaba.com> (raw)
Modern platform are growing fast on CPU numbers. To achieve better
utility of CPU resource, multiple apps are starting to sharing the CPUs.
What we need is a way to ease confliction in share mode,
make groups as exclusive as possible, to gain both performance
and resource efficiency.
The main idea of group balancer is to fulfill this requirement
by balancing groups of tasks among groups of CPUs, consider this
as a dynamic demi-exclusive mode. Task trigger work to settle it's
group into a proper partition (minimum predicted load), then try
migrate itself into it. To gradually settle groups into the most
exclusively partition.
GB can be seen as an optimize policy based on load balance,
it obeys the main idea of load balance and makes adjustment
based on that.
Our test on ARM64 platform with 128 CPUs shows that,
throughput of sysbench memory is improved about 25%,
and redis-benchmark is improved up to about 10%.
See each patch for detail:
The 1st patch introduces infrastructure.
The 2nd patch introduces detail about partition info.
The 3rd patch is the main part of group balancer.
The 4th patch is about stats.
v2:
Put partition info and period settings to cpuset subsys of cgroup_v2.
v1: https://lore.kernel.org/all/98f41efd-74b2-198a-839c-51b785b748a6@linux.alibaba.com/
Michael Wang (1):
sched: Introduce group balancer
Tianchen Ding (3):
sched, cpuset: Introduce infrastructure of group balancer
cpuset: Handle input of partition info for group balancer
cpuset, gb: Add stat for group balancer
include/linux/cpuset.h | 5 +
include/linux/sched.h | 5 +
include/linux/sched/gb.h | 70 ++++++
init/Kconfig | 12 +
kernel/cgroup/cpuset.c | 405 +++++++++++++++++++++++++++++++-
kernel/sched/Makefile | 1 +
kernel/sched/core.c | 5 +
kernel/sched/debug.c | 10 +-
kernel/sched/fair.c | 26 ++-
kernel/sched/gb.c | 487 +++++++++++++++++++++++++++++++++++++++
kernel/sched/sched.h | 14 ++
11 files changed, 1037 insertions(+), 3 deletions(-)
create mode 100644 include/linux/sched/gb.h
create mode 100644 kernel/sched/gb.c
--
2.27.0
next reply other threads:[~2022-03-08 9:26 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-08 9:26 Tianchen Ding [this message]
2022-03-08 9:26 ` [RFC PATCH v2 1/4] sched, cpuset: Introduce infrastructure of group balancer Tianchen Ding
2022-03-08 9:26 ` [RFC PATCH v2 2/4] cpuset: Handle input of partition info for " Tianchen Ding
2022-03-08 9:26 ` [RFC PATCH v2 3/4] sched: Introduce " Tianchen Ding
2022-03-08 9:26 ` [RFC PATCH v2 4/4] cpuset, gb: Add stat for " Tianchen Ding
2022-03-08 17:13 ` [RFC PATCH v2 0/4] Introduce " Tejun Heo
2022-03-09 8:30 ` Tianchen Ding
2022-03-09 18:00 ` Tejun Heo
2022-03-10 5:47 ` Tianchen Ding
2022-03-21 18:16 ` Tejun Heo
2022-03-24 6:50 ` Tianchen Ding
2022-04-06 2:47 ` Tianchen Ding
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220308092629.40431-1-dtcccc@linux.alibaba.com \
--to=dtcccc@linux.alibaba.com \
--cc=akpm@linux-foundation.org \
--cc=arnd@arndb.de \
--cc=bristot@redhat.com \
--cc=bsegall@google.com \
--cc=cgroups@vger.kernel.org \
--cc=chris@chrisdown.name \
--cc=cruzzhao@linux.alibaba.com \
--cc=daniel@iogearbox.net \
--cc=dietmar.eggemann@arm.com \
--cc=gustavoars@kernel.org \
--cc=hannes@cmpxchg.org \
--cc=juri.lelli@redhat.com \
--cc=keescook@chromium.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lizefan.x@bytedance.com \
--cc=masahiroy@kernel.org \
--cc=mgorman@suse.de \
--cc=mingo@redhat.com \
--cc=nathan@kernel.org \
--cc=ojeda@kernel.org \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=tj@kernel.org \
--cc=vbabka@suse.cz \
--cc=vincent.guittot@linaro.org \
--cc=vipinsh@google.com \
--cc=yun.wang@linux.alibaba.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox