Skip to content
Snippets Groups Projects
Commit d1d26dc6 authored by lnx build's avatar lnx build Committed by Gerrit - the friendly Code Review server
Browse files

Merge "lrdp_v2 : print affinity in irqstats" into opensource-tools.lnx.1.0

parents bdd42508 fcf4764e
No related branches found
No related tags found
No related merge requests found
......@@ -26,6 +26,10 @@ class IrqParse(RamParser):
h_irq_offset = ram_dump.field_offset('struct irq_desc', 'handle_irq')
irq_num_offset = ram_dump.field_offset('struct irq_data', 'irq')
hwirq_num_offset = ram_dump.field_offset('struct irq_data', 'hwirq')
affinity_offset = ram_dump.field_offset(
'struct irq_common_data', 'affinity')
irq_common_data_offset = ram_dump.field_offset(
'struct irq_desc', 'irq_common_data')
irq_data_offset = ram_dump.field_offset('struct irq_desc', 'irq_data')
irq_count_offset = ram_dump.field_offset(
'struct irq_desc', 'irq_count')
......@@ -41,11 +45,14 @@ class IrqParse(RamParser):
for i in range(0, cpus):
cpu_str = cpu_str + '{0:10} '.format('CPU{0}'.format(i))
print_out_str('{0:4} {1:10}\t {2} {3:30} {4:10}'
.format('IRQ', 'HWIRQ', cpu_str, 'Name', 'Chip'))
print_out_str('{0:4} {1:12} {2:10} {3} {4:30} {5:10}'
.format('IRQ', 'HWIRQ', 'affinity',
cpu_str, 'Name', 'Chip'))
for i in range(0, irq_desc_size, irq_desc_entry_size):
irqnum = ram_dump.read_word(irq_desc + i + irq_num_offset)
hwirq = ram_dump.read_word(irq_desc + i + hwirq_num_offset)
affinity = ram_dump.read_int(
irq_desc + irq_common_data_offset + affinity_offset)
irqcount = ram_dump.read_word(irq_desc + i + irq_count_offset)
action = ram_dump.read_word(irq_desc + i + irq_action_offset)
kstat_irqs_addr = ram_dump.read_word(
......@@ -69,10 +76,10 @@ class IrqParse(RamParser):
if action != 0:
name_addr = ram_dump.read_word(action + action_name_offset)
name = ram_dump.read_cstring(name_addr, 48)
str = '{0:4} {1:10}\t {2} {3:30} {4:10}'
str = '{0:4} {1:12} {2:10} {3} {4:30} {5:10}'
print_out_str(
str.format(irqnum, hex(hwirq), irq_stats_str, name,
chip_name))
str.format(irqnum, hex(hwirq), hex(affinity),
irq_stats_str, name, chip_name))
def shift_to_maxindex(self, shift):
radix_tree_map_shift = 6
......@@ -166,6 +173,10 @@ class IrqParse(RamParser):
h_irq_offset = ram_dump.field_offset('struct irq_desc', 'handle_irq')
irq_num_offset = ram_dump.field_offset('struct irq_data', 'irq')
hwirq_num_offset = ram_dump.field_offset('struct irq_data', 'hwirq')
affinity_offset = ram_dump.field_offset(
'struct irq_common_data', 'affinity')
irq_common_data_offset = ram_dump.field_offset(
'struct irq_desc', 'irq_common_data')
irq_data_offset = ram_dump.field_offset('struct irq_desc', 'irq_data')
irq_count_offset = ram_dump.field_offset(
'struct irq_desc', 'irq_count')
......@@ -183,8 +194,9 @@ class IrqParse(RamParser):
for i in ram_dump.iter_cpus():
cpu_str = cpu_str + '{0:10} '.format('CPU{0}'.format(i))
print_out_str('{0:4} {1:10}\t {2} {3:30} {4:15} {5:20}'\
.format('IRQ', 'HWIRQ', cpu_str, 'Name', 'Chip', 'IRQ Structure'))
print_out_str('{0:4} {1:12} {2:10} {3} {4:30} {5:15} {6:20}'\
.format('IRQ', 'HWIRQ', 'affinity', cpu_str,
'Name', 'Chip', 'IRQ Structure'))
if nr_irqs > 50000:
return
......@@ -205,6 +217,8 @@ class IrqParse(RamParser):
irqnum = ram_dump.read_int(irq_desc + irq_data_offset + irq_num_offset)
hwirq = ram_dump.read_int(
irq_desc + irq_data_offset + hwirq_num_offset)
affinity = ram_dump.read_int(
irq_desc + irq_common_data_offset + affinity_offset)
irqcount = ram_dump.read_int(irq_desc + irq_count_offset)
action = ram_dump.read_word(irq_desc + irq_action_offset)
kstat_irqs_addr = ram_dump.read_word(irq_desc + kstat_irqs_offset)
......@@ -226,11 +240,11 @@ class IrqParse(RamParser):
if action != 0:
name_addr = ram_dump.read_word(action + action_name_offset)
name = ram_dump.read_cstring(name_addr, 48)
str = "{0:4} {1:10}\t {2} {3:30} {4:15} " \
"v.v (struct irq_desc *)0x{5:<20x}"
str = "{0:4} {1:12} {2:10} {3} {4:30} {5:15} " \
"v.v (struct irq_desc *)0x{6:<20x}"
print_out_str(
str.format(irqnum, hex(hwirq), irq_stats_str, name,
chip_name, irq_desc))
str.format(irqnum, hex(hwirq), hex(affinity),
irq_stats_str, name, chip_name, irq_desc))
def parse(self):
irq_desc = self.ramdump.address_of('irq_desc')
......
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