From: Juri Lelli <juri.lelli@redhat.com>
To: Tejun Heo <tj@kernel.org>
Cc: Lai Jiangshan <jiangshanlai@gmail.com>,
Aaron Tomlin <atomlin@atomlin.com>,
Valentin Schneider <vschneid@redhat.com>,
Waiman Long <longman@redhat.com>,
Juri Lelli <juri.lelli@redhat.com>,
linux-kernel@vger.kernel.org
Subject: [RFC PATCH 1/4] tools/workqueue: Add rescuers printing to wq_dump.py
Date: Tue, 16 Jan 2024 17:19:26 +0100 [thread overview]
Message-ID: <20240116161929.232885-2-juri.lelli@redhat.com> (raw)
In-Reply-To: <20240116161929.232885-1-juri.lelli@redhat.com>
Retrieving rescuers information (e.g., affinity and name) is quite
useful when debugging workqueues configurations.
Add printing of such information to the existing wq_dump.py script.
Signed-off-by: Juri Lelli <juri.lelli@redhat.com>
---
tools/workqueue/wq_dump.py | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/tools/workqueue/wq_dump.py b/tools/workqueue/wq_dump.py
index d0df5833f2c18..6da621989e210 100644
--- a/tools/workqueue/wq_dump.py
+++ b/tools/workqueue/wq_dump.py
@@ -175,3 +175,32 @@ for wq in list_for_each_entry('struct workqueue_struct', workqueues.address_of_(
if wq.flags & WQ_UNBOUND:
print(f' {wq.dfl_pwq.pool.id.value_():{max_pool_id_len}}', end='')
print('')
+
+print('')
+print('Workqueue -> rescuer')
+print('=====================')
+print(f'wq_unbound_cpumask={cpumask_str(wq_unbound_cpumask)}')
+print('')
+print('[ workqueue \ type unbound_cpumask rescuer pid cpumask]')
+
+for wq in list_for_each_entry('struct workqueue_struct', workqueues.address_of_(), 'list'):
+ print(f'{wq.name.string_().decode()[-24:]:24}', end='')
+ if wq.flags & WQ_UNBOUND:
+ if wq.flags & WQ_ORDERED:
+ print(' ordered ', end='')
+ else:
+ print(' unbound', end='')
+ if wq.unbound_attrs.affn_strict:
+ print(',S ', end='')
+ else:
+ print(' ', end='')
+ print(f' {cpumask_str(wq.unbound_attrs.cpumask):24}', end='')
+ else:
+ print(' percpu ', end='')
+ print(' ', end='')
+
+ if wq.flags & WQ_MEM_RECLAIM:
+ print(f' {wq.rescuer.task.comm.string_().decode()[-24:]:24}', end='')
+ print(f' {wq.rescuer.task.pid.value_():5}', end='')
+ print(f' {cpumask_str(wq.rescuer.task.cpus_ptr)}', end='')
+ print('')
--
2.43.0
next prev parent reply other threads:[~2024-01-16 16:20 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-16 16:19 [RFC PATCH 0/4] Fix handling of rescuers affinity Juri Lelli
2024-01-16 16:19 ` Juri Lelli [this message]
2024-01-16 16:19 ` [RFC PATCH 2/4] kernel/workqueue: Bind rescuer to unbound cpumask for WQ_UNBOUND Juri Lelli
2024-01-16 18:47 ` Tejun Heo
2024-01-17 6:30 ` Juri Lelli
2024-01-16 16:19 ` [RFC PATCH 3/4] kernel/workqueue: Distinguish between general unbound and WQ_SYSFS cpumask changes Juri Lelli
2024-01-16 18:57 ` Tejun Heo
2024-01-17 13:06 ` Juri Lelli
2024-01-17 17:12 ` Tejun Heo
2024-01-17 19:32 ` Waiman Long
2024-01-17 19:42 ` Tejun Heo
2024-01-18 12:52 ` Juri Lelli
2024-01-16 16:19 ` [RFC PATCH 4/4] kernel/workqueue: Let rescuers follow unbound wq " Juri Lelli
2024-01-17 3:56 ` Lai Jiangshan
2024-01-17 6:30 ` 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=20240116161929.232885-2-juri.lelli@redhat.com \
--to=juri.lelli@redhat.com \
--cc=atomlin@atomlin.com \
--cc=jiangshanlai@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=longman@redhat.com \
--cc=tj@kernel.org \
--cc=vschneid@redhat.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.