Skip to content
Snippets Groups Projects
Commit d98f48fb authored by Laura Abbott's avatar Laura Abbott
Browse files

linux-ramdump-parser-v2: Cleanup workqueues

The ramdump APIs now provide functions for accessing per CPU
variables. Use those instead of writing the same code over again.

Change-Id: Ia34a9b1a279e8385bdc08b2612e59fdfe0e1f958
parent d36bfa48
No related branches found
No related tags found
No related merge requests found
...@@ -342,7 +342,6 @@ class Workqueues(RamParser): ...@@ -342,7 +342,6 @@ class Workqueues(RamParser):
def print_workqueue_state_3_10(self, ram_dump): def print_workqueue_state_3_10(self, ram_dump):
print_out_str( print_out_str(
'======================= WORKQUEUE STATE ============================') '======================= WORKQUEUE STATE ============================')
per_cpu_offset_addr = ram_dump.addr_lookup('__per_cpu_offset')
cpu_worker_pools_addr = ram_dump.addr_lookup('cpu_worker_pools') cpu_worker_pools_addr = ram_dump.addr_lookup('cpu_worker_pools')
busy_hash_offset = ram_dump.field_offset( busy_hash_offset = ram_dump.field_offset(
...@@ -362,22 +361,15 @@ class Workqueues(RamParser): ...@@ -362,22 +361,15 @@ class Workqueues(RamParser):
worker_pool_size = ram_dump.sizeof('struct worker_pool') worker_pool_size = ram_dump.sizeof('struct worker_pool')
pending_work_offset = ram_dump.field_offset( pending_work_offset = ram_dump.field_offset(
'struct worker_pool', 'worklist') 'struct worker_pool', 'worklist')
cpu_present_bits_addr = ram_dump.addr_lookup('cpu_present_bits')
cpu_present_bits = ram_dump.read_word(cpu_present_bits_addr)
cpus = bin(cpu_present_bits).count('1')
s = '<' s = '<'
for a in range(0, 64): for a in range(0, 64):
s = s + 'I' s = s + 'I'
for i in range(0, cpus): for i in ram_dump.iter_cpus():
busy_hash = [] busy_hash = []
if per_cpu_offset_addr is None:
offset = 0
else:
offset = ram_dump.read_word(per_cpu_offset_addr + 4 * i)
worker_pool = cpu_worker_pools_addr + offset worker_pool = cpu_worker_pools_addr + ram_dump.per_cpu_offset(i)
# Need better way to ge the number of pools... # Need better way to ge the number of pools...
for k in range(0, 2): for k in range(0, 2):
worker_pool_i = worker_pool + k * worker_pool_size worker_pool_i = worker_pool + k * worker_pool_size
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment