Merge tag 'sched-psi-2022-10-14' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 14 Oct 2022 20:03:00 +0000 (13:03 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 14 Oct 2022 20:03:00 +0000 (13:03 -0700)
Pull PSI updates from Ingo Molnar:

 - Various performance optimizations, resulting in a 4%-9% speedup in
   the mmtests/config-scheduler-perfpipe micro-benchmark.

 - New interface to turn PSI on/off on a per cgroup level.

* tag 'sched-psi-2022-10-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  sched/psi: Per-cgroup PSI accounting disable/re-enable interface
  sched/psi: Cache parent psi_group to speed up group iteration
  sched/psi: Consolidate cgroup_psi()
  sched/psi: Add PSI_IRQ to track IRQ/SOFTIRQ pressure
  sched/psi: Remove NR_ONCPU task accounting
  sched/psi: Optimize task switch inside shared cgroups again
  sched/psi: Move private helpers to sched/stats.h
  sched/psi: Save percpu memory when !psi_cgroups_enabled
  sched/psi: Don't create cgroup PSI files when psi_disabled
  sched/psi: Fix periodic aggregation shut off

1  2 
Documentation/admin-guide/cgroup-v2.rst
include/linux/cgroup-defs.h
include/linux/cgroup.h
kernel/cgroup/cgroup.c
kernel/sched/core.c
kernel/sched/psi.c

Simple merge
Simple merge
index 764bdd5fd8d14ecd24287715983800ee621a8871,fa1cf836b66a36e939d249142ebce87eee79f695..7f486677ab1febcf064735ed47c87075b5118db7
@@@ -5175,6 -5222,8 +5243,7 @@@ static struct cftype cgroup_psi_files[
  #ifdef CONFIG_PSI
        {
                .name = "io.pressure",
 -              .flags = CFTYPE_PRESSURE,
+               .file_offset = offsetof(struct cgroup, psi_files[PSI_IO]),
                .seq_show = cgroup_io_pressure_show,
                .write = cgroup_io_pressure_write,
                .poll = cgroup_pressure_poll,
        },
        {
                .name = "memory.pressure",
 -              .flags = CFTYPE_PRESSURE,
+               .file_offset = offsetof(struct cgroup, psi_files[PSI_MEM]),
                .seq_show = cgroup_memory_pressure_show,
                .write = cgroup_memory_pressure_write,
                .poll = cgroup_pressure_poll,
        },
        {
                .name = "cpu.pressure",
 -              .flags = CFTYPE_PRESSURE,
+               .file_offset = offsetof(struct cgroup, psi_files[PSI_CPU]),
                .seq_show = cgroup_cpu_pressure_show,
                .write = cgroup_cpu_pressure_write,
                .poll = cgroup_pressure_poll,
                .release = cgroup_pressure_release,
        },
 -              .flags = CFTYPE_PRESSURE,
+ #ifdef CONFIG_IRQ_TIME_ACCOUNTING
+       {
+               .name = "irq.pressure",
 -              .flags = CFTYPE_PRESSURE,
+               .file_offset = offsetof(struct cgroup, psi_files[PSI_IRQ]),
+               .seq_show = cgroup_irq_pressure_show,
+               .write = cgroup_irq_pressure_write,
+               .poll = cgroup_pressure_poll,
+               .release = cgroup_pressure_release,
+       },
+ #endif
+       {
+               .name = "cgroup.pressure",
+               .seq_show = cgroup_pressure_show,
+               .write = cgroup_pressure_write,
+       },
  #endif /* CONFIG_PSI */
        { }     /* terminate */
  };
Simple merge
Simple merge