[PATCH] tools/workqueue: parse help before importing drgn
From: Yousef Alhouseen
Date: Wed Jun 24 2026 - 08:34:03 EST
wq_monitor.py and wq_dump.py import drgn before argparse can handle "-h".
That makes help fail on systems where drgn is not installed, even though
the scripts do not need drgn to print usage text.
Parse arguments before importing drgn so the help path works without the
runtime debugging dependency. Normal execution still imports drgn before
reading kernel state.
Signed-off-by: Yousef Alhouseen <alhouseenyousef@xxxxxxxxx>
---
tools/workqueue/wq_dump.py | 10 +++++-----
tools/workqueue/wq_monitor.py | 6 +++---
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/tools/workqueue/wq_dump.py b/tools/workqueue/wq_dump.py
index ce4161f52..a0c722375 100644
--- a/tools/workqueue/wq_dump.py
+++ b/tools/workqueue/wq_dump.py
@@ -46,6 +46,11 @@ each workqueue:
import sys
+import argparse
+parser = argparse.ArgumentParser(description=desc,
+ formatter_class=argparse.RawTextHelpFormatter)
+args = parser.parse_args()
+
import drgn
from drgn.helpers.linux.list import list_for_each_entry,list_empty
from drgn.helpers.linux.percpu import per_cpu_ptr
@@ -53,11 +58,6 @@ from drgn.helpers.linux.cpumask import for_each_cpu,for_each_possible_cpu
from drgn.helpers.linux.nodemask import for_each_node
from drgn.helpers.linux.idr import idr_for_each
-import argparse
-parser = argparse.ArgumentParser(description=desc,
- formatter_class=argparse.RawTextHelpFormatter)
-args = parser.parse_args()
-
def err(s):
print(s, file=sys.stderr, flush=True)
sys.exit(1)
diff --git a/tools/workqueue/wq_monitor.py b/tools/workqueue/wq_monitor.py
index 9e964c5be..7f47fa398 100644
--- a/tools/workqueue/wq_monitor.py
+++ b/tools/workqueue/wq_monitor.py
@@ -37,9 +37,6 @@ import re
import time
import json
-import drgn
-from drgn.helpers.linux.list import list_for_each_entry
-
import argparse
parser = argparse.ArgumentParser(description=desc,
formatter_class=argparse.RawTextHelpFormatter)
@@ -51,6 +48,9 @@ parser.add_argument('-j', '--json', action='store_true',
help='Output in json')
args = parser.parse_args()
+import drgn
+from drgn.helpers.linux.list import list_for_each_entry
+
workqueues = prog['workqueues']
WQ_UNBOUND = prog['WQ_UNBOUND']
--
2.54.0