Handle multiple hard IRQ handler names
authorAntoine Busque <abusque@efficios.com>
Tue, 16 Feb 2016 17:50:16 +0000 (12:50 -0500)
committerAntoine Busque <abusque@efficios.com>
Wed, 24 Feb 2016 23:24:03 +0000 (18:24 -0500)
Signed-off-by: Antoine Busque <abusque@efficios.com>
lttnganalyses/core/irq.py

index 85c6ed64b928fdc687168c77b599b8f6f27d7620..d50bfc8e212c9b57c448826baa6eee28d74a66a5 100644 (file)
@@ -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):
This page took 0.025887 seconds and 5 git commands to generate.