From be3e50adb3b969eb8e45e914ee69981f6c6646f7 Mon Sep 17 00:00:00 2001 From: Antoine Busque Date: Tue, 16 Feb 2016 12:50:16 -0500 Subject: [PATCH] Handle multiple hard IRQ handler names Signed-off-by: Antoine Busque --- lttnganalyses/core/irq.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/lttnganalyses/core/irq.py b/lttnganalyses/core/irq.py index 85c6ed6..d50bfc8 100644 --- a/lttnganalyses/core/irq.py +++ b/lttnganalyses/core/irq.py @@ -52,8 +52,8 @@ class IrqAnalysis(Analysis): name = kwargs['irq_name'] if id not in self.hard_irq_stats: self.hard_irq_stats[id] = HardIrqStats(name) - elif self.hard_irq_stats[id].name != name: - self.hard_irq_stats[id].name = name + elif name not in self.hard_irq_stats[id].names: + self.hard_irq_stats[id].names.append(name) def _process_irq_handler_exit(self, **kwargs): irq = kwargs['hard_irq'] @@ -97,12 +97,16 @@ class IrqAnalysis(Analysis): class IrqStats(): def __init__(self, name): - self.name = name + self._name = name self.min_duration = None self.max_duration = None self.total_duration = 0 self.irq_list = [] + @property + def name(self): + return self._name + @property def count(self): return len(self.irq_list) @@ -125,8 +129,15 @@ class IrqStats(): class HardIrqStats(IrqStats): + NAMES_SEPARATOR = ', ' + def __init__(self, name='unknown'): super().__init__(name) + self.names = [name] + + @property + def name(self): + return self.NAMES_SEPARATOR.join(self.names) class SoftIrqStats(IrqStats): -- 2.34.1