All of lore.kernel.org
 help / color / mirror / Atom feed
From: Juri Lelli <juri.lelli@redhat.com>
To: Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@kernel.org>, Qais Yousef <qyousef@layalina.io>,
	Waiman Long <longman@redhat.com>, Tejun Heo <tj@kernel.org>,
	Zefan Li <lizefan.x@bytedance.com>,
	Johannes Weiner <hannes@cmpxchg.org>, Hao Luo <haoluo@google.com>
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	linux-kernel@vger.kernel.org, luca.abeni@santannapisa.it,
	claudio@evidence.eu.com, tommaso.cucinotta@santannapisa.it,
	bristot@redhat.com, mathieu.poirier@linaro.org,
	cgroups@vger.kernel.org,
	Vincent Guittot <vincent.guittot@linaro.org>,
	Wei Wang <wvw@google.com>, Rick Yiu <rickyiu@google.com>,
	Quentin Perret <qperret@google.com>,
	Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Sudeep Holla <sudeep.holla@arm.com>,
	Juri Lelli <juri.lelli@redhat.com>
Subject: [PATCH 6/6] cgroup/cpuset: Iterate only if DEADLINE tasks are present
Date: Wed, 29 Mar 2023 14:55:58 +0200	[thread overview]
Message-ID: <20230329125558.255239-7-juri.lelli@redhat.com> (raw)
In-Reply-To: <20230329125558.255239-1-juri.lelli@redhat.com>

update_tasks_root_domain currently iterates over all tasks even if no
DEADLINE task is present on the cpuset/root domain for which bandwidth
accounting is being rebuilt. This has been reported to introduce 10+ ms
delays on suspend-resume operations.

Skip the costly iteration for cpusets that don't contain DEADLINE tasks.

Reported-by: Qais Yousef <qyousef@layalina.io>
Link: https://lore.kernel.org/lkml/20230206221428.2125324-1-qyousef@layalina.io/
Signed-off-by: Juri Lelli <juri.lelli@redhat.com>
---
 kernel/cgroup/cpuset.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
index f8ebec66da51..05c0a1255218 100644
--- a/kernel/cgroup/cpuset.c
+++ b/kernel/cgroup/cpuset.c
@@ -1092,6 +1092,9 @@ static void dl_update_tasks_root_domain(struct cpuset *cs)
 	struct css_task_iter it;
 	struct task_struct *task;
 
+	if (cs->nr_deadline_tasks == 0)
+		return;
+
 	css_task_iter_start(&cs->css, 0, &it);
 
 	while ((task = css_task_iter_next(&it)))
-- 
2.39.2


WARNING: multiple messages have this Message-ID (diff)
From: Juri Lelli <juri.lelli-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Peter Zijlstra <peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>,
	Ingo Molnar <mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Qais Yousef <qyousef-wp2msK0BRk8tq7phqP6ubQ@public.gmane.org>,
	Waiman Long <longman-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Zefan Li <lizefan.x-EC8Uxl6Npydl57MIdRCFDg@public.gmane.org>,
	Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org>,
	Hao Luo <haoluo-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
Cc: Dietmar Eggemann <dietmar.eggemann-5wv7dgnIgG8@public.gmane.org>,
	Steven Rostedt <rostedt-nx8X9YLhiw1AfugRpC6u6w@public.gmane.org>,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	luca.abeni-5rdYK369eBLQB0XuIGIEkQ@public.gmane.org,
	claudio-YOzL5CV4y4YG1A2ADO40+w@public.gmane.org,
	tommaso.cucinotta-5rdYK369eBLQB0XuIGIEkQ@public.gmane.org,
	bristot-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
	mathieu.poirier-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
	cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Vincent Guittot
	<vincent.guittot-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	Wei Wang <wvw-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
	Rick Yiu <rickyiu-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
	Quentin Perret <qperret-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
	Heiko Carstens <hca-tEXmvtCZX7AybS5Ee8rs3A@public.gmane.org>,
	Vasily Gorbik <gor-tEXmvtCZX7AybS5Ee8rs3A@public.gmane.org>,
	Alexander Gordeev
	<agordeev-tEXmvtCZX7AybS5Ee8rs3A@public.gmane.org>,
	Sudeep Holla <sudeep.holla-5wv7dgnIgG8@public.gmane.org>,
	Juri Lelli <juri.lelli-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Subject: [PATCH 6/6] cgroup/cpuset: Iterate only if DEADLINE tasks are present
Date: Wed, 29 Mar 2023 14:55:58 +0200	[thread overview]
Message-ID: <20230329125558.255239-7-juri.lelli@redhat.com> (raw)
In-Reply-To: <20230329125558.255239-1-juri.lelli-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>

update_tasks_root_domain currently iterates over all tasks even if no
DEADLINE task is present on the cpuset/root domain for which bandwidth
accounting is being rebuilt. This has been reported to introduce 10+ ms
delays on suspend-resume operations.

Skip the costly iteration for cpusets that don't contain DEADLINE tasks.

Reported-by: Qais Yousef <qyousef-wp2msK0BRk8tq7phqP6ubQ@public.gmane.org>
Link: https://lore.kernel.org/lkml/20230206221428.2125324-1-qyousef-wp2msK0BRk8tq7phqP6ubQ@public.gmane.org/
Signed-off-by: Juri Lelli <juri.lelli-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
---
 kernel/cgroup/cpuset.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
index f8ebec66da51..05c0a1255218 100644
--- a/kernel/cgroup/cpuset.c
+++ b/kernel/cgroup/cpuset.c
@@ -1092,6 +1092,9 @@ static void dl_update_tasks_root_domain(struct cpuset *cs)
 	struct css_task_iter it;
 	struct task_struct *task;
 
+	if (cs->nr_deadline_tasks == 0)
+		return;
+
 	css_task_iter_start(&cs->css, 0, &it);
 
 	while ((task = css_task_iter_next(&it)))
-- 
2.39.2


  parent reply	other threads:[~2023-03-29 12:57 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-29 12:55 [PATCH 0/6] sched/deadline: cpuset: Rework DEADLINE bandwidth restoration Juri Lelli
2023-03-29 12:55 ` Juri Lelli
2023-03-29 12:55 ` [PATCH 1/6] cgroup/cpuset: Rename functions dealing with DEADLINE accounting Juri Lelli
2023-03-29 12:55   ` Juri Lelli
2023-04-04 20:05   ` Qais Yousef
2023-04-04 20:05     ` Qais Yousef
2023-03-29 12:55 ` [PATCH 2/6] sched/cpuset: Bring back cpuset_mutex Juri Lelli
2023-03-29 12:55   ` Juri Lelli
2023-04-04 17:31   ` Waiman Long
2023-04-04 17:31     ` Waiman Long
2023-04-26 11:57     ` Juri Lelli
2023-04-26 11:57       ` Juri Lelli
2023-04-26 14:05       ` Waiman Long
2023-04-26 14:05         ` Waiman Long
2023-04-27  2:58         ` Xuewen Yan
2023-04-27  2:58           ` Xuewen Yan
2023-04-27  5:53           ` Juri Lelli
2023-04-27  5:53             ` Juri Lelli
2023-04-27 11:50             ` Xuewen Yan
2023-04-27 11:50               ` Xuewen Yan
2023-04-28 11:22             ` Qais Yousef
2023-04-28 11:22               ` Qais Yousef
2023-04-26 14:31       ` Daniel Bristot de Oliveira
2023-04-26 14:31         ` Daniel Bristot de Oliveira
2023-04-04 20:05   ` Qais Yousef
2023-04-04 20:05     ` Qais Yousef
2023-03-29 12:55 ` [PATCH 3/6] sched/cpuset: Keep track of SCHED_DEADLINE task in cpusets Juri Lelli
2023-04-04 20:06   ` Qais Yousef
2023-04-04 20:06     ` Qais Yousef
2023-10-09 11:43   ` Xia Fukun
2023-10-09 15:26     ` Waiman Long
2023-03-29 12:55 ` [PATCH 4/6] sched/deadline: Create DL BW alloc, free & check overflow interface Juri Lelli
2023-03-29 12:55   ` Juri Lelli
2023-03-29 14:24   ` Waiman Long
2023-03-29 14:24     ` Waiman Long
2023-03-29 12:55 ` [PATCH 5/6] cgroup/cpuset: Free DL BW in case can_attach() fails Juri Lelli
2023-03-29 12:55   ` Juri Lelli
2023-03-29 14:25   ` Waiman Long
2023-03-29 14:31     ` Waiman Long
2023-03-29 14:31       ` Waiman Long
2023-03-29 16:39       ` Dietmar Eggemann
2023-03-29 16:39         ` Dietmar Eggemann
2023-03-29 18:09         ` Waiman Long
2023-03-29 18:09           ` Waiman Long
2023-03-30 15:14           ` Dietmar Eggemann
2023-03-30 15:14             ` Dietmar Eggemann
2023-03-30 16:13             ` Waiman Long
2023-03-30 16:13               ` Waiman Long
2023-03-29 12:55 ` Juri Lelli [this message]
2023-03-29 12:55   ` [PATCH 6/6] cgroup/cpuset: Iterate only if DEADLINE tasks are present Juri Lelli
2023-04-04 20:06   ` Qais Yousef
2023-04-04 20:06     ` Qais Yousef
2023-04-26 11:58     ` Juri Lelli
2023-04-26 11:58       ` Juri Lelli
2023-03-29 14:34 ` [PATCH 0/6] sched/deadline: cpuset: Rework DEADLINE bandwidth restoration Waiman Long
2023-03-29 14:34   ` Waiman Long
2023-03-29 16:02 ` [PATCH 6/7] cgroup/cpuset: Protect DL BW data against parallel cpuset_attach() Waiman Long
2023-03-29 16:02   ` Waiman Long
2023-03-29 16:05   ` Waiman Long
2023-03-30 13:34   ` Dietmar Eggemann
2023-03-30 13:34     ` Dietmar Eggemann
2023-04-04 20:09 ` [PATCH 0/6] sched/deadline: cpuset: Rework DEADLINE bandwidth restoration Qais Yousef
2023-04-04 20:09   ` Qais Yousef
2023-04-18 14:11 ` Qais Yousef
2023-04-18 14:11   ` Qais Yousef
2023-04-18 14:31   ` Waiman Long
2023-04-18 14:31     ` Waiman Long
2023-04-20 14:15     ` Juri Lelli
2023-04-20 14:15       ` Juri Lelli

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=20230329125558.255239-7-juri.lelli@redhat.com \
    --to=juri.lelli@redhat.com \
    --cc=agordeev@linux.ibm.com \
    --cc=bristot@redhat.com \
    --cc=cgroups@vger.kernel.org \
    --cc=claudio@evidence.eu.com \
    --cc=dietmar.eggemann@arm.com \
    --cc=gor@linux.ibm.com \
    --cc=hannes@cmpxchg.org \
    --cc=haoluo@google.com \
    --cc=hca@linux.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lizefan.x@bytedance.com \
    --cc=longman@redhat.com \
    --cc=luca.abeni@santannapisa.it \
    --cc=mathieu.poirier@linaro.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=qperret@google.com \
    --cc=qyousef@layalina.io \
    --cc=rickyiu@google.com \
    --cc=rostedt@goodmis.org \
    --cc=sudeep.holla@arm.com \
    --cc=tj@kernel.org \
    --cc=tommaso.cucinotta@santannapisa.it \
    --cc=vincent.guittot@linaro.org \
    --cc=wvw@google.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.