From d98f48fb13ebe2b589d2bdf25526fa308c9f2e9f Mon Sep 17 00:00:00 2001 From: Laura Abbott <lauraa@codeaurora.org> Date: Tue, 11 Mar 2014 17:09:01 -0700 Subject: [PATCH] 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 --- linux-ramdump-parser-v2/parsers/workqueue.py | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/linux-ramdump-parser-v2/parsers/workqueue.py b/linux-ramdump-parser-v2/parsers/workqueue.py index 183cb03..27b25ce 100644 --- a/linux-ramdump-parser-v2/parsers/workqueue.py +++ b/linux-ramdump-parser-v2/parsers/workqueue.py @@ -342,7 +342,6 @@ class Workqueues(RamParser): def print_workqueue_state_3_10(self, ram_dump): print_out_str( '======================= WORKQUEUE STATE ============================') - per_cpu_offset_addr = ram_dump.addr_lookup('__per_cpu_offset') cpu_worker_pools_addr = ram_dump.addr_lookup('cpu_worker_pools') busy_hash_offset = ram_dump.field_offset( @@ -362,22 +361,15 @@ class Workqueues(RamParser): worker_pool_size = ram_dump.sizeof('struct worker_pool') pending_work_offset = ram_dump.field_offset( '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 = '<' for a in range(0, 64): s = s + 'I' - for i in range(0, cpus): + for i in ram_dump.iter_cpus(): 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... for k in range(0, 2): worker_pool_i = worker_pool + k * worker_pool_size -- GitLab