mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Chengming Zhou <zhouchengming@bytedance.com>
To: hannes@cmpxchg.org, tj@kernel.org
Cc: surenb@google.com, mkoutny@suse.com, mingo@redhat.com,
	peterz@infradead.org, gregkh@linuxfoundation.org, corbet@lwn.net,
	cgroups@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, songmuchun@bytedance.com
Subject: Re: [PATCH v4 00/10] sched/psi: some optimizations and extensions
Date: Tue, 6 Sep 2022 21:13:27 +0800	[thread overview]
Message-ID: <be071d5a-ff2d-d06e-2f89-f2ca247dd19e@bytedance.com> (raw)
In-Reply-To: <20220825164111.29534-1-zhouchengming@bytedance.com>

Hello,

Could this series be merged into the linux-next?

Thanks.


On 2022/8/26 00:41, Chengming Zhou wrote:
> Hi all,
> 
> This patch series are some optimizations and extensions for PSI.
> 
> patch 1/10 fix periodic aggregation shut off problem introduced by earlier
> commit 4117cebf1a9f ("psi: Optimize task switch inside shared cgroups").
> 
> patch 2-4 are some misc optimizations, so put them in front of this series.
> 
> patch 5/10 optimize task switch inside shared cgroups when in_memstall status
> of prev task and next task are different.
> 
> patch 6/10 remove NR_ONCPU task accounting to save 4 bytes in the first
> cacheline to be used by the following patch 7/10, which introduce new
> PSI resource PSI_IRQ to track IRQ/SOFTIRQ pressure stall information.
> 
> patch 8-9 cache parent psi_group in struct psi_group to speed up the
> hot iteration path.
> 
> patch 10/10 introduce a per-cgroup interface "cgroup.pressure" to disable
> or re-enable PSI in the cgroup level, and we implement hiding and unhiding
> the pressure files per Tejun's suggestion[1], which depends on his work[2].
> 
> [1] https://lore.kernel.org/all/YvqjhqJQi2J8RG3X@slm.duckdns.org/
> [2] https://lore.kernel.org/all/20220820000550.367085-1-tj@kernel.org/
> 
> Performance test using mmtests/config-scheduler-perfpipe in
> /user.slice/user-0.slice/session-4.scope:
> 
>                                  next                patched       patched/only-leaf
> Min       Time        8.82 (   0.00%)        8.49 (   3.74%)        8.00 (   9.32%)
> 1st-qrtle Time        8.90 (   0.00%)        8.58 (   3.63%)        8.05 (   9.58%)
> 2nd-qrtle Time        8.94 (   0.00%)        8.61 (   3.65%)        8.09 (   9.50%)
> 3rd-qrtle Time        8.99 (   0.00%)        8.65 (   3.75%)        8.15 (   9.35%)
> Max-1     Time        8.82 (   0.00%)        8.49 (   3.74%)        8.00 (   9.32%)
> Max-5     Time        8.82 (   0.00%)        8.49 (   3.74%)        8.00 (   9.32%)
> Max-10    Time        8.84 (   0.00%)        8.55 (   3.20%)        8.04 (   9.05%)
> Max-90    Time        9.04 (   0.00%)        8.67 (   4.10%)        8.18 (   9.51%)
> Max-95    Time        9.04 (   0.00%)        8.68 (   4.03%)        8.20 (   9.26%)
> Max-99    Time        9.07 (   0.00%)        8.73 (   3.82%)        8.25 (   9.11%)
> Max       Time        9.12 (   0.00%)        8.89 (   2.54%)        8.27 (   9.29%)
> Amean     Time        8.95 (   0.00%)        8.62 *   3.67%*        8.11 *   9.43%*
> 
> Big thanks to Johannes Weiner, Tejun Heo and Michal Koutný for your
> suggestions and review!
> 
> 
> Changes in v4:
>  - Collect Acked-by tags from Johannes Weiner.
>  - Add many clear comments and changelogs per Johannes Weiner.
>  - Replace for_each_psi_group() with better open-code.
>  - Change to use better names cgroup_pressure_show() and
>    cgroup_pressure_write().
>  - Change to use better name psi_cgroup_restart() and only
>    call it on enabling.
> 
> Changes in v3:
>  - Rebase on linux-next and reorder patches to put misc optimizations
>    patches in the front of this series.
>  - Drop patch "sched/psi: don't change task psi_flags when migrate CPU/group"
>    since it caused a little performance regression and it's just
>    code refactoring, so drop it.
>  - Don't define PSI_IRQ and PSI_IRQ_FULL when !CONFIG_IRQ_TIME_ACCOUNTING,
>    in which case they are not used.
>  - Add patch 8/10 "sched/psi: consolidate cgroup_psi()" make cgroup_psi()
>    can handle all cgroups including root cgroup, make patch 9/10 simpler.
>  - Rename interface to "cgroup.pressure" and add some explanation
>    per Michal's suggestion.
>  - Hide and unhide pressure files when disable/re-enable cgroup PSI,
>    depends on Tejun's work.
> 
> Changes in v2:
>  - Add Acked-by tags from Johannes Weiner. Thanks for review!
>  - Fix periodic aggregation wakeup for common ancestors in
>    psi_task_switch().
>  - Add patch 7/10 from Johannes Weiner, which remove NR_ONCPU
>    task accounting to save 4 bytes in the first cacheline.
>  - Remove "psi_irq=" kernel cmdline parameter in last version.
>  - Add per-cgroup interface "cgroup.psi" to disable/re-enable
>    PSI stats accounting in the cgroup level.
> 
> 
> Chengming Zhou (9):
>   sched/psi: fix periodic aggregation shut off
>   sched/psi: don't create cgroup PSI files when psi_disabled
>   sched/psi: save percpu memory when !psi_cgroups_enabled
>   sched/psi: move private helpers to sched/stats.h
>   sched/psi: optimize task switch inside shared cgroups again
>   sched/psi: add PSI_IRQ to track IRQ/SOFTIRQ pressure
>   sched/psi: consolidate cgroup_psi()
>   sched/psi: cache parent psi_group to speed up groups iterate
>   sched/psi: per-cgroup PSI accounting disable/re-enable interface
> 
> Johannes Weiner (1):
>   sched/psi: remove NR_ONCPU task accounting
> 
>  Documentation/admin-guide/cgroup-v2.rst |  23 ++
>  include/linux/cgroup-defs.h             |   3 +
>  include/linux/cgroup.h                  |   5 -
>  include/linux/psi.h                     |  12 +-
>  include/linux/psi_types.h               |  29 ++-
>  kernel/cgroup/cgroup.c                  | 106 ++++++++-
>  kernel/sched/core.c                     |   1 +
>  kernel/sched/psi.c                      | 280 +++++++++++++++++-------
>  kernel/sched/stats.h                    |   6 +
>  9 files changed, 362 insertions(+), 103 deletions(-)
> 

  parent reply	other threads:[~2022-09-06 13:13 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-25 16:41 Chengming Zhou
2022-08-25 16:41 ` [PATCH v4 01/10] sched/psi: fix periodic aggregation shut off Chengming Zhou
2022-09-09 14:00   ` [tip: sched/psi] sched/psi: Fix " tip-bot2 for Chengming Zhou
2022-08-25 16:41 ` [PATCH v4 02/10] sched/psi: don't create cgroup PSI files when psi_disabled Chengming Zhou
2022-09-09 14:00   ` [tip: sched/psi] sched/psi: Don't " tip-bot2 for Chengming Zhou
2022-08-25 16:41 ` [PATCH v4 03/10] sched/psi: save percpu memory when !psi_cgroups_enabled Chengming Zhou
2022-09-09 14:00   ` [tip: sched/psi] sched/psi: Save " tip-bot2 for Chengming Zhou
2022-08-25 16:41 ` [PATCH v4 04/10] sched/psi: move private helpers to sched/stats.h Chengming Zhou
2022-09-09 14:00   ` [tip: sched/psi] sched/psi: Move " tip-bot2 for Chengming Zhou
2022-08-25 16:41 ` [PATCH v4 05/10] sched/psi: optimize task switch inside shared cgroups again Chengming Zhou
2022-08-25 17:16   ` Johannes Weiner
2022-09-09 14:00   ` [tip: sched/psi] sched/psi: Optimize " tip-bot2 for Chengming Zhou
2022-08-25 16:41 ` [PATCH v4 06/10] sched/psi: remove NR_ONCPU task accounting Chengming Zhou
2022-09-09 14:00   ` [tip: sched/psi] sched/psi: Remove " tip-bot2 for Johannes Weiner
2022-08-25 16:41 ` [PATCH v4 07/10] sched/psi: add PSI_IRQ to track IRQ/SOFTIRQ pressure Chengming Zhou
2022-08-25 17:17   ` Johannes Weiner
2022-09-09 14:00   ` [tip: sched/psi] sched/psi: Add " tip-bot2 for Chengming Zhou
2022-08-25 16:41 ` [PATCH v4 08/10] sched/psi: consolidate cgroup_psi() Chengming Zhou
2022-09-09 14:00   ` [tip: sched/psi] sched/psi: Consolidate cgroup_psi() tip-bot2 for Chengming Zhou
2022-08-25 16:41 ` [PATCH v4 09/10] sched/psi: cache parent psi_group to speed up groups iterate Chengming Zhou
2022-09-09 14:00   ` [tip: sched/psi] sched/psi: Cache parent psi_group to speed up group iteration tip-bot2 for Chengming Zhou
2022-08-25 16:41 ` [PATCH v4 10/10] sched/psi: per-cgroup PSI accounting disable/re-enable interface Chengming Zhou
2022-09-07  9:03   ` [PATCH] sched/psi: Per-cgroup " Chengming Zhou
2022-09-09 14:00     ` [tip: sched/psi] " tip-bot2 for Chengming Zhou
2022-09-06 13:13 ` Chengming Zhou [this message]
2022-09-06 14:43   ` [PATCH v4 00/10] sched/psi: some optimizations and extensions Peter Zijlstra
2022-09-07  1:55     ` Chengming Zhou

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=be071d5a-ff2d-d06e-2f89-f2ca247dd19e@bytedance.com \
    --to=zhouchengming@bytedance.com \
    --cc=cgroups@vger.kernel.org \
    --cc=corbet@lwn.net \
    --cc=gregkh@linuxfoundation.org \
    --cc=hannes@cmpxchg.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=mkoutny@suse.com \
    --cc=peterz@infradead.org \
    --cc=songmuchun@bytedance.com \
    --cc=surenb@google.com \
    --cc=tj@kernel.org \
    /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

all inboxes | Powered by JetHome®