ce03bd2e6168bf8f47bd6755304c57ae7eb622cb
1 from TraceTest
import AnalysesTest
5 class IrqTest(AnalysesTest
):
6 def __init__(self
, delete_trace
=True, verbose
=False):
7 super().__init
__(delete_trace
=delete_trace
,
9 self
.test_list
= [('irqstats', self
.run_irqstats
),
10 ('irqlog', self
.run_irqlog
)]
12 def write_trace(self
):
13 self
.t
.write_softirq_raise(1000 , 1, 1)
14 self
.t
.write_softirq_raise(1001 , 3, 1)
15 self
.t
.write_softirq_raise(1002 , 1, 9)
16 self
.t
.write_softirq_exit(1003 , 0, 4)
17 self
.t
.write_softirq_raise(1004 , 3, 9)
18 self
.t
.write_softirq_raise(1005 , 3, 7)
19 self
.t
.write_softirq_entry(1006 , 3, 1)
20 self
.t
.write_softirq_entry(1007 , 1, 1)
21 self
.t
.write_softirq_exit(1008 , 1, 1)
22 self
.t
.write_softirq_exit(1009 , 3, 1)
23 self
.t
.write_softirq_entry(1010 , 1, 9)
24 self
.t
.write_softirq_entry(1011 , 3, 7)
25 self
.t
.write_softirq_exit(1012 , 1, 9)
26 self
.t
.write_softirq_exit(1013 , 3, 7)
27 self
.t
.write_softirq_entry(1014 , 3, 9)
28 self
.t
.write_softirq_exit(1015 , 3, 9)
29 self
.t
.write_irq_handler_entry(1016 , 0, 41, "ahci")
30 self
.t
.write_softirq_raise(1017 , 0, 4)
31 self
.t
.write_irq_handler_exit(1018 , 0, 41, 1)
32 self
.t
.write_softirq_entry(1019 , 0, 4)
33 self
.t
.write_softirq_exit(1020 , 0, 4)
34 self
.t
.write_irq_handler_entry(1021 , 0, 41, "ahci")
35 self
.t
.write_softirq_raise(1022 , 0, 4)
36 self
.t
.write_irq_handler_exit(1023 , 0, 41, 1)
37 self
.t
.write_softirq_entry(1024 , 0, 4)
38 self
.t
.write_softirq_exit(1025 , 0, 4)
39 self
.t
.write_irq_handler_entry(1026 , 0, 41, "ahci")
40 self
.t
.write_softirq_raise(1027 , 0, 4)
41 self
.t
.write_irq_handler_exit(1028 , 0, 41, 1)
42 self
.t
.write_softirq_entry(1029 , 0, 4)
43 self
.t
.write_softirq_exit(1030 , 0, 4)
44 self
.t
.write_irq_handler_entry(1031 , 0, 41, "ahci")
45 self
.t
.write_softirq_raise(1032 , 0, 4)
46 self
.t
.write_irq_handler_exit(1033 , 0, 41, 1)
47 self
.t
.write_softirq_entry(1034 , 0, 4)
48 self
.t
.write_softirq_exit(1035 , 0, 4)
49 self
.t
.write_irq_handler_entry(1036 , 0, 41, "ahci")
50 self
.t
.write_softirq_raise(1037 , 0, 4)
51 self
.t
.write_irq_handler_exit(1038 , 0, 41, 1)
52 self
.t
.write_softirq_entry(1039 , 0, 4)
53 self
.t
.write_softirq_exit(1040 , 0, 4)
54 self
.t
.write_irq_handler_entry(1041 , 0, 41, "ahci")
55 self
.t
.write_softirq_raise(1042 , 0, 4)
56 self
.t
.write_irq_handler_exit(1043 , 0, 41, 1)
57 self
.t
.write_softirq_entry(1044 , 0, 4)
58 self
.t
.write_softirq_exit(1045 , 0, 4)
61 def run_irqstats(self
):
62 expected
= """Timerange: [1969-12-31 19:00:01.000000000, 1969-12-31 19:00:01.045000000]
63 Hard IRQ Duration (us)
64 count min avg max stdev
65 ----------------------------------------------------------------------------------|
66 41: <ahci> 6 2000.000 2000.000 2000.000 0.000 |
68 Soft IRQ Duration (us) Raise latency (us)
69 count min avg max stdev | count min avg max stdev
70 ----------------------------------------------------------------------------------|------------------------------------------------------------
71 1: <TIMER_SOFTIRQ> 2 1000.000 2000.000 3000.000 1414.214 | 2 5000.000 6000.000 7000.000 1414.214
72 4: <BLOCK_SOFTIRQ> 6 1000.000 1000.000 1000.000 0.000 | 6 2000.000 2000.000 2000.000 0.000
73 7: <SCHED_SOFTIRQ> 1 2000.000 2000.000 2000.000 ? | 1 6000.000 6000.000 6000.000 ?
74 9: <RCU_SOFTIRQ> 2 1000.000 1500.000 2000.000 707.107 | 2 8000.000 9000.000 10000.000 1414.214"""
76 return self
.compare_output('%slttng-irqstats %s "%s"' % (
77 self
.cmd_root
, self
.common_options
, self
.t
.trace_root
),
81 expected
= """Timerange: [1969-12-31 19:00:01.000000000, 1969-12-31 19:00:01.045000000]
82 Begin End Duration (us) CPU Type # Name
83 [19:00:01.007000000, 19:00:01.008000000] 1000.000 1 SoftIRQ 1 TIMER_SOFTIRQ (raised at 19:00:01.000000000)
84 [19:00:01.006000000, 19:00:01.009000000] 3000.000 3 SoftIRQ 1 TIMER_SOFTIRQ (raised at 19:00:01.001000000)
85 [19:00:01.010000000, 19:00:01.012000000] 2000.000 1 SoftIRQ 9 RCU_SOFTIRQ (raised at 19:00:01.002000000)
86 [19:00:01.011000000, 19:00:01.013000000] 2000.000 3 SoftIRQ 7 SCHED_SOFTIRQ (raised at 19:00:01.005000000)
87 [19:00:01.014000000, 19:00:01.015000000] 1000.000 3 SoftIRQ 9 RCU_SOFTIRQ (raised at 19:00:01.004000000)
88 [19:00:01.016000000, 19:00:01.018000000] 2000.000 0 IRQ 41 ahci
89 [19:00:01.019000000, 19:00:01.020000000] 1000.000 0 SoftIRQ 4 BLOCK_SOFTIRQ (raised at 19:00:01.017000000)
90 [19:00:01.021000000, 19:00:01.023000000] 2000.000 0 IRQ 41 ahci
91 [19:00:01.024000000, 19:00:01.025000000] 1000.000 0 SoftIRQ 4 BLOCK_SOFTIRQ (raised at 19:00:01.022000000)
92 [19:00:01.026000000, 19:00:01.028000000] 2000.000 0 IRQ 41 ahci
93 [19:00:01.029000000, 19:00:01.030000000] 1000.000 0 SoftIRQ 4 BLOCK_SOFTIRQ (raised at 19:00:01.027000000)
94 [19:00:01.031000000, 19:00:01.033000000] 2000.000 0 IRQ 41 ahci
95 [19:00:01.034000000, 19:00:01.035000000] 1000.000 0 SoftIRQ 4 BLOCK_SOFTIRQ (raised at 19:00:01.032000000)
96 [19:00:01.036000000, 19:00:01.038000000] 2000.000 0 IRQ 41 ahci
97 [19:00:01.039000000, 19:00:01.040000000] 1000.000 0 SoftIRQ 4 BLOCK_SOFTIRQ (raised at 19:00:01.037000000)
98 [19:00:01.041000000, 19:00:01.043000000] 2000.000 0 IRQ 41 ahci
99 [19:00:01.044000000, 19:00:01.045000000] 1000.000 0 SoftIRQ 4 BLOCK_SOFTIRQ (raised at 19:00:01.042000000)"""
101 return self
.compare_output('%slttng-irqlog %s "%s"' % (
102 self
.cmd_root
, self
.common_options
, self
.t
.trace_root
),
107 t
= IrqTest(verbose
=True)
This page took 0.036064 seconds and 4 git commands to generate.