[PATCH v2 00/10] sched/psi: some optimization and extension

From: Chengming Zhou
Date: Mon Aug 08 2022 - 07:04:30 EST


Hi all,

This patch series are some optimization and extension for PSI, based on
the tip/sched/core branch.

patch 1/10 fix periodic aggregation shut off problem introduced by earlier
commit 4117cebf1a9f ("psi: Optimize task switch inside shared cgroups").

patch 2/10 optimize task switch inside shared cgroups when in_memstall status
of prev task and next task are different.

patch 3-4 optimize and simplify PSI status tracking by don't change task
psi_flags when migrate CPU/cgroup.

patch 7/10 remove NR_ONCPU task accounting to save 4 bytes in the first
cacheline to be used by the following patch 8/10, which introduce new
PSI resource PSI_IRQ to track IRQ/SOFTIRQ pressure stall information.

patch 9/10 introduce a per-cgroup interface "cgroup.psi" to disable
or re-enable PSI stats accounting in the cgroup level.

patch 10/10 cache parent psi_group in struct psi_group to speed up
the hot iteration path.

Thanks!

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: optimize task switch inside shared cgroups again
sched/psi: move private helpers to sched/stats.h
sched/psi: don't change task psi_flags when migrate CPU/group
sched/psi: don't create cgroup PSI files when psi_disabled
sched/psi: save percpu memory when !psi_cgroups_enabled
sched/psi: add PSI_IRQ to track IRQ/SOFTIRQ pressure
sched/psi: per-cgroup PSI stats disable/re-enable interface
sched/psi: cache parent psi_group to speed up groups iterate

Johannes Weiner (1):
sched/psi: remove NR_ONCPU task accounting

Documentation/admin-guide/cgroup-v2.rst | 13 ++
include/linux/psi.h | 6 +-
include/linux/psi_types.h | 25 +--
include/linux/sched.h | 3 -
kernel/cgroup/cgroup.c | 73 +++++++
kernel/sched/core.c | 2 +
kernel/sched/psi.c | 247 +++++++++++++++++-------
kernel/sched/stats.h | 60 +++---
8 files changed, 313 insertions(+), 116 deletions(-)

--
2.36.1