[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YJ64xHoogrowXTok@hirez.programming.kicks-ass.net>
Date: Fri, 14 May 2021 19:52:04 +0200
From: Peter Zijlstra <peterz@...radead.org>
To: Suren Baghdasaryan <surenb@...gle.com>
Cc: Tejun Heo <tj@...nel.org>, Johannes Weiner <hannes@...xchg.org>,
lizefan.x@...edance.com, Ingo Molnar <mingo@...hat.com>,
Juri Lelli <juri.lelli@...hat.com>,
Vincent Guittot <vincent.guittot@...aro.org>,
Dietmar Eggemann <dietmar.eggemann@....com>,
Steven Rostedt <rostedt@...dmis.org>,
Benjamin Segall <bsegall@...gle.com>, mgorman@...e.de,
Minchan Kim <minchan@...nel.org>,
Jonathan Corbet <corbet@....net>, bristot@...hat.com,
"Paul E . McKenney" <paulmck@...nel.org>, rdunlap@...radead.org,
Andrew Morton <akpm@...ux-foundation.org>,
Thomas Gleixner <tglx@...utronix.de>, macro@...am.me.uk,
Viresh Kumar <viresh.kumar@...aro.org>,
mike.kravetz@...cle.com, linux-doc@...r.kernel.org,
LKML <linux-kernel@...r.kernel.org>,
cgroups mailinglist <cgroups@...r.kernel.org>,
kernel-team <kernel-team@...roid.com>
Subject: Re: [PATCH 1/1] cgroup: make per-cgroup pressure stall tracking
configurable
On Fri, May 14, 2021 at 08:54:47AM -0700, Suren Baghdasaryan wrote:
> Correct, for this function CONFIG_CGROUPS=n and
> cgroup_disable=pressure are treated the same. True, from the code it's
> not very obvious. Do you have some refactoring in mind that would make
> it more explicit?
Does this make sense?
--- a/kernel/sched/psi.c
+++ b/kernel/sched/psi.c
@@ -744,24 +744,26 @@ static void psi_group_change(struct psi_
static struct psi_group *iterate_groups(struct task_struct *task, void **iter)
{
+ if (cgroup_psi_enabled()) {
#ifdef CONFIG_CGROUPS
- struct cgroup *cgroup = NULL;
+ struct cgroup *cgroup = NULL;
- if (!*iter)
- cgroup = task->cgroups->dfl_cgrp;
- else if (*iter == &psi_system)
- return NULL;
- else
- cgroup = cgroup_parent(*iter);
+ if (!*iter)
+ cgroup = task->cgroups->dfl_cgrp;
+ else if (*iter == &psi_system)
+ return NULL;
+ else
+ cgroup = cgroup_parent(*iter);
- if (cgroup && cgroup_parent(cgroup)) {
- *iter = cgroup;
- return cgroup_psi(cgroup);
- }
-#else
- if (*iter)
- return NULL;
+ if (cgroup && cgroup_parent(cgroup)) {
+ *iter = cgroup;
+ return cgroup_psi(cgroup);
+ }
#endif
+ } else {
+ if (*iter)
+ return NULL;
+ }
*iter = &psi_system;
return &psi_system;
}
Powered by blists - more mailing lists