[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250513100730.12664-29-byungchul@sk.com>
Date: Tue, 13 May 2025 19:07:15 +0900
From: Byungchul Park <byungchul@...com>
To: linux-kernel@...r.kernel.org
Cc: kernel_team@...ynix.com,
torvalds@...ux-foundation.org,
damien.lemoal@...nsource.wdc.com,
linux-ide@...r.kernel.org,
adilger.kernel@...ger.ca,
linux-ext4@...r.kernel.org,
mingo@...hat.com,
peterz@...radead.org,
will@...nel.org,
tglx@...utronix.de,
rostedt@...dmis.org,
joel@...lfernandes.org,
sashal@...nel.org,
daniel.vetter@...ll.ch,
duyuyang@...il.com,
johannes.berg@...el.com,
tj@...nel.org,
tytso@....edu,
willy@...radead.org,
david@...morbit.com,
amir73il@...il.com,
gregkh@...uxfoundation.org,
kernel-team@....com,
linux-mm@...ck.org,
akpm@...ux-foundation.org,
mhocko@...nel.org,
minchan@...nel.org,
hannes@...xchg.org,
vdavydov.dev@...il.com,
sj@...nel.org,
jglisse@...hat.com,
dennis@...nel.org,
cl@...ux.com,
penberg@...nel.org,
rientjes@...gle.com,
vbabka@...e.cz,
ngupta@...are.org,
linux-block@...r.kernel.org,
josef@...icpanda.com,
linux-fsdevel@...r.kernel.org,
jack@...e.cz,
jlayton@...nel.org,
dan.j.williams@...el.com,
hch@...radead.org,
djwong@...nel.org,
dri-devel@...ts.freedesktop.org,
rodrigosiqueiramelo@...il.com,
melissa.srw@...il.com,
hamohammed.sa@...il.com,
harry.yoo@...cle.com,
chris.p.wilson@...el.com,
gwan-gyeong.mun@...el.com,
max.byungchul.park@...il.com,
boqun.feng@...il.com,
longman@...hat.com,
yskelg@...il.com,
yunseong.kim@...csson.com,
yeoreum.yun@....com,
netdev@...r.kernel.org,
matthew.brost@...el.com,
her0gyugyu@...il.com
Subject: [PATCH v15 28/43] dept: suppress reports with classes that have been already reported
Each different chain implies its own dependency problem, that is worth
being reported. However, generating similar reports mutiple times
should be suppressed.
To avoid that, suppress reports with classes that have been already
reported.
Signed-off-by: Byungchul Park <byungchul@...com>
---
include/linux/dept.h | 6 ++++++
kernel/dependency/dept.c | 10 ++++++++++
2 files changed, 16 insertions(+)
diff --git a/include/linux/dept.h b/include/linux/dept.h
index 551168220954..b1e5a1ec6763 100644
--- a/include/linux/dept.h
+++ b/include/linux/dept.h
@@ -107,6 +107,12 @@ struct dept_class {
* not an explicit map
*/
bool sched_map;
+
+ /*
+ * for avoiding this class involved in report
+ * more than once
+ */
+ bool reported;
};
};
};
diff --git a/kernel/dependency/dept.c b/kernel/dependency/dept.c
index 278194093108..8bea64bab379 100644
--- a/kernel/dependency/dept.c
+++ b/kernel/dependency/dept.c
@@ -501,6 +501,7 @@ static void initialize_class(struct dept_class *c)
iw->touched = false;
}
c->bfs_gen = 0U;
+ c->reported = false;
INIT_LIST_HEAD(&c->all_node);
INIT_LIST_HEAD(&c->dep_head);
@@ -913,6 +914,12 @@ static void print_circle(struct dept_class *c)
dump_stack();
dept_outworld_exit();
+
+ do {
+ tc->reported = true;
+ tc = fc;
+ fc = fc->bfs_parent;
+ } while (tc != c);
}
/*
@@ -1225,6 +1232,9 @@ static enum bfs_ret cb_check_dl(void *node, void *in, void **out)
struct dept_class *cur = (struct dept_class *)node;
struct dept_dep *new = (struct dept_dep *)in;
+ if (cur->reported)
+ return BFS_SKIP;
+
if (cur == dep_fc(new)) {
print_circle(dep_tc(new));
return BFS_DONE;
--
2.17.1
Powered by blists - more mailing lists