Skip to content

Commit 57899a6

Browse files
Chengming ZhouPeter Zijlstra
authored andcommitted
sched/psi: Consolidate cgroup_psi()
cgroup_psi() can't return psi_group for root cgroup, so we have many open code "psi = cgroup_ino(cgrp) == 1 ? &psi_system : cgrp->psi". This patch move cgroup_psi() definition to <linux/psi.h>, in which we can return psi_system for root cgroup, so can handle all cgroups. Signed-off-by: Chengming Zhou <[email protected]> Signed-off-by: Peter Zijlstra (Intel) <[email protected]> Acked-by: Johannes Weiner <[email protected]> Link: https://lore.kernel.org/r/[email protected]
1 parent 52b1364 commit 57899a6

File tree

3 files changed

+11
-10
lines changed

3 files changed

+11
-10
lines changed

include/linux/cgroup.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -673,11 +673,6 @@ static inline void pr_cont_cgroup_path(struct cgroup *cgrp)
673673
pr_cont_kernfs_path(cgrp->kn);
674674
}
675675

676-
static inline struct psi_group *cgroup_psi(struct cgroup *cgrp)
677-
{
678-
return cgrp->psi;
679-
}
680-
681676
bool cgroup_psi_enabled(void);
682677

683678
static inline void cgroup_init_kthreadd(void)

include/linux/psi.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include <linux/sched.h>
88
#include <linux/poll.h>
99
#include <linux/cgroup-defs.h>
10+
#include <linux/cgroup.h>
1011

1112
struct seq_file;
1213
struct css_set;
@@ -30,6 +31,11 @@ __poll_t psi_trigger_poll(void **trigger_ptr, struct file *file,
3031
poll_table *wait);
3132

3233
#ifdef CONFIG_CGROUPS
34+
static inline struct psi_group *cgroup_psi(struct cgroup *cgrp)
35+
{
36+
return cgroup_ino(cgrp) == 1 ? &psi_system : cgrp->psi;
37+
}
38+
3339
int psi_cgroup_alloc(struct cgroup *cgrp);
3440
void psi_cgroup_free(struct cgroup *cgrp);
3541
void cgroup_move_task(struct task_struct *p, struct css_set *to);

kernel/cgroup/cgroup.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3689,21 +3689,21 @@ static int cpu_stat_show(struct seq_file *seq, void *v)
36893689
static int cgroup_io_pressure_show(struct seq_file *seq, void *v)
36903690
{
36913691
struct cgroup *cgrp = seq_css(seq)->cgroup;
3692-
struct psi_group *psi = cgroup_ino(cgrp) == 1 ? &psi_system : cgrp->psi;
3692+
struct psi_group *psi = cgroup_psi(cgrp);
36933693

36943694
return psi_show(seq, psi, PSI_IO);
36953695
}
36963696
static int cgroup_memory_pressure_show(struct seq_file *seq, void *v)
36973697
{
36983698
struct cgroup *cgrp = seq_css(seq)->cgroup;
3699-
struct psi_group *psi = cgroup_ino(cgrp) == 1 ? &psi_system : cgrp->psi;
3699+
struct psi_group *psi = cgroup_psi(cgrp);
37003700

37013701
return psi_show(seq, psi, PSI_MEM);
37023702
}
37033703
static int cgroup_cpu_pressure_show(struct seq_file *seq, void *v)
37043704
{
37053705
struct cgroup *cgrp = seq_css(seq)->cgroup;
3706-
struct psi_group *psi = cgroup_ino(cgrp) == 1 ? &psi_system : cgrp->psi;
3706+
struct psi_group *psi = cgroup_psi(cgrp);
37073707

37083708
return psi_show(seq, psi, PSI_CPU);
37093709
}
@@ -3729,7 +3729,7 @@ static ssize_t cgroup_pressure_write(struct kernfs_open_file *of, char *buf,
37293729
return -EBUSY;
37303730
}
37313731

3732-
psi = cgroup_ino(cgrp) == 1 ? &psi_system : cgrp->psi;
3732+
psi = cgroup_psi(cgrp);
37333733
new = psi_trigger_create(psi, buf, res);
37343734
if (IS_ERR(new)) {
37353735
cgroup_put(cgrp);
@@ -3767,7 +3767,7 @@ static ssize_t cgroup_cpu_pressure_write(struct kernfs_open_file *of,
37673767
static int cgroup_irq_pressure_show(struct seq_file *seq, void *v)
37683768
{
37693769
struct cgroup *cgrp = seq_css(seq)->cgroup;
3770-
struct psi_group *psi = cgroup_ino(cgrp) == 1 ? &psi_system : cgrp->psi;
3770+
struct psi_group *psi = cgroup_psi(cgrp);
37713771

37723772
return psi_show(seq, psi, PSI_IRQ);
37733773
}

0 commit comments

Comments
 (0)