From f2fe14844896c7abdc792b0b0d24ef1c2224b883 Mon Sep 17 00:00:00 2001 From: Kumar Harsh <harkumar@codeaurora.org> Date: Fri, 14 Dec 2018 19:35:11 +0530 Subject: [PATCH] ldrp_V2 : Extract epoch info from clock data struct Extracts the epoch data from clock data struct. This helps in converting HLOS timestamps to non-HLOS timestamps and vica-versa. This also additionally logs the Linux Banner for ease in post-processing. Change-Id: I6598d3dfb8c2c591f12cd3f77ab8de0363c76e0b Signed-off-by: Kumar Harsh <harkumar@codeaurora.org> --- linux-ramdump-parser-v2/parsers/pstore.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/linux-ramdump-parser-v2/parsers/pstore.py b/linux-ramdump-parser-v2/parsers/pstore.py index 70858f2..d62ff63 100644 --- a/linux-ramdump-parser-v2/parsers/pstore.py +++ b/linux-ramdump-parser-v2/parsers/pstore.py @@ -115,8 +115,27 @@ class PStore(RamParser): self.print_event_logs(pstore_out, start_addr+cpu_offset, percpu_size) pstore_out.close() + def print_clockdata_info(self): + ''' + Extracts the epoch data from clock data struct. This helps in converting + HLOS timestamps to non-HLOS timestamps and vica-versa. This also + additionally logs the Linux Banner for ease in post-processing. + ''' + out_file = self.ramdump.open_file('epoch_info.txt') + banner_addr = self.ramdump.address_of('linux_banner') + if banner_addr is not None: + banner_addr = self.ramdump.kernel_virt_to_phys(banner_addr) + vm_v = self.ramdump.gdbmi.get_value_of_string('linux_banner') + if vm_v is not None: + out_file.write('Linux Banner : {}\n'.format(vm_v)) + epoch_ns = self.ramdump.read_word('cd.read_data[0].epoch_ns') + epoch_cyc = self.ramdump.read_word('cd.read_data[0].epoch_cyc') + out_file.write('\nepoch_ns: {0}ns epoch_cyc: {1}\n'.format(epoch_ns,epoch_cyc)) + out_file.close() + def parse(self): base_addr = self.ramdump.address_of('oops_cxt') self.extract_io_event_logs(base_addr) self.extract_console_logs(base_addr) + self.print_clockdata_info() -- GitLab