mirror of
https://github.com/torvalds/linux.git
synced 2026-09-11 20:13:02 +02:00
tools/workqueue/wq_dump.py: Support backward compatibility for wq->attrs rename
Commit464e454e1c("workqueue: rename wq->unbound_attrs to wq->attrs") renamed wq->unbound_attrs to wq->attrs. When running wq_dump.py against older running kernels or vmcores where struct workqueue_struct still contains unbound_attrs, drgn raises an AttributeError. Add a wq_attrs() helper to allow wq_dump.py to inspect both older and newer kernel versions seamlessly. Fixes:464e454e1c("workqueue: rename wq->unbound_attrs to wq->attrs") Signed-off-by: Aaron Tomlin <atomlin@atomlin.com> Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
parent
068c35b5d0
commit
93e257938a
|
|
@ -78,6 +78,12 @@ def cpumask_str(cpumask):
|
|||
|
||||
wq_type_len = 9
|
||||
|
||||
def wq_attrs(wq):
|
||||
try:
|
||||
return wq.attrs
|
||||
except AttributeError:
|
||||
return wq.unbound_attrs
|
||||
|
||||
def wq_type_str(wq):
|
||||
if wq.flags & WQ_BH:
|
||||
return f'{"bh":{wq_type_len}}'
|
||||
|
|
@ -85,7 +91,7 @@ def wq_type_str(wq):
|
|||
if wq.flags & WQ_ORDERED:
|
||||
return f'{"ordered":{wq_type_len}}'
|
||||
else:
|
||||
if wq.attrs.affn_strict:
|
||||
if wq_attrs(wq).affn_strict:
|
||||
return f'{"unbound,S":{wq_type_len}}'
|
||||
else:
|
||||
return f'{"unbound":{wq_type_len}}'
|
||||
|
|
@ -206,7 +212,7 @@ for wq in list_for_each_entry('struct workqueue_struct', workqueues.address_of_(
|
|||
|
||||
print(f'{wq.name.string_().decode():{WQ_NAME_LEN}}', end='')
|
||||
if wq.flags & WQ_UNBOUND:
|
||||
print(f' {cpumask_str(wq.attrs.cpumask):{ucpus_len}}', end='')
|
||||
print(f' {cpumask_str(wq_attrs(wq).cpumask):{ucpus_len}}', end='')
|
||||
else:
|
||||
print(f' {"":{ucpus_len}}', end='')
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user