lkml.org 
[lkml]   [2022]   [Apr]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [RFC PATCH v2 0/4] Introduce group balancer
From
Ping~
Any idea for this patchset? :-)

On 2022/3/8 17:26, Tianchen Ding wrote:
> 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
>

\
 
 \ /
  Last update: 2022-09-17 16:20    [W:0.872 / U:0.024 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site