fluent-plugin-perf-tools 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +15 -0
  3. data/.rubocop.yml +26 -0
  4. data/.ruby-version +1 -0
  5. data/CHANGELOG.md +5 -0
  6. data/CODE_OF_CONDUCT.md +84 -0
  7. data/Gemfile +5 -0
  8. data/LICENSE.txt +21 -0
  9. data/README.md +43 -0
  10. data/Rakefile +17 -0
  11. data/bin/console +15 -0
  12. data/bin/setup +8 -0
  13. data/fluent-plugin-perf-tools.gemspec +48 -0
  14. data/lib/fluent/plugin/in_perf_tools.rb +42 -0
  15. data/lib/fluent/plugin/perf_tools/cachestat.rb +65 -0
  16. data/lib/fluent/plugin/perf_tools/command.rb +30 -0
  17. data/lib/fluent/plugin/perf_tools/version.rb +9 -0
  18. data/lib/fluent/plugin/perf_tools.rb +11 -0
  19. data/perf-tools/LICENSE +339 -0
  20. data/perf-tools/README.md +205 -0
  21. data/perf-tools/bin/bitesize +1 -0
  22. data/perf-tools/bin/cachestat +1 -0
  23. data/perf-tools/bin/execsnoop +1 -0
  24. data/perf-tools/bin/funccount +1 -0
  25. data/perf-tools/bin/funcgraph +1 -0
  26. data/perf-tools/bin/funcslower +1 -0
  27. data/perf-tools/bin/functrace +1 -0
  28. data/perf-tools/bin/iolatency +1 -0
  29. data/perf-tools/bin/iosnoop +1 -0
  30. data/perf-tools/bin/killsnoop +1 -0
  31. data/perf-tools/bin/kprobe +1 -0
  32. data/perf-tools/bin/opensnoop +1 -0
  33. data/perf-tools/bin/perf-stat-hist +1 -0
  34. data/perf-tools/bin/reset-ftrace +1 -0
  35. data/perf-tools/bin/syscount +1 -0
  36. data/perf-tools/bin/tcpretrans +1 -0
  37. data/perf-tools/bin/tpoint +1 -0
  38. data/perf-tools/bin/uprobe +1 -0
  39. data/perf-tools/deprecated/README.md +1 -0
  40. data/perf-tools/deprecated/execsnoop-proc +150 -0
  41. data/perf-tools/deprecated/execsnoop-proc.8 +80 -0
  42. data/perf-tools/deprecated/execsnoop-proc_example.txt +46 -0
  43. data/perf-tools/disk/bitesize +175 -0
  44. data/perf-tools/examples/bitesize_example.txt +63 -0
  45. data/perf-tools/examples/cachestat_example.txt +58 -0
  46. data/perf-tools/examples/execsnoop_example.txt +153 -0
  47. data/perf-tools/examples/funccount_example.txt +126 -0
  48. data/perf-tools/examples/funcgraph_example.txt +2178 -0
  49. data/perf-tools/examples/funcslower_example.txt +110 -0
  50. data/perf-tools/examples/functrace_example.txt +341 -0
  51. data/perf-tools/examples/iolatency_example.txt +350 -0
  52. data/perf-tools/examples/iosnoop_example.txt +302 -0
  53. data/perf-tools/examples/killsnoop_example.txt +62 -0
  54. data/perf-tools/examples/kprobe_example.txt +379 -0
  55. data/perf-tools/examples/opensnoop_example.txt +47 -0
  56. data/perf-tools/examples/perf-stat-hist_example.txt +149 -0
  57. data/perf-tools/examples/reset-ftrace_example.txt +88 -0
  58. data/perf-tools/examples/syscount_example.txt +297 -0
  59. data/perf-tools/examples/tcpretrans_example.txt +93 -0
  60. data/perf-tools/examples/tpoint_example.txt +210 -0
  61. data/perf-tools/examples/uprobe_example.txt +321 -0
  62. data/perf-tools/execsnoop +292 -0
  63. data/perf-tools/fs/cachestat +167 -0
  64. data/perf-tools/images/perf-tools_2016.png +0 -0
  65. data/perf-tools/iolatency +296 -0
  66. data/perf-tools/iosnoop +296 -0
  67. data/perf-tools/kernel/funccount +146 -0
  68. data/perf-tools/kernel/funcgraph +259 -0
  69. data/perf-tools/kernel/funcslower +248 -0
  70. data/perf-tools/kernel/functrace +192 -0
  71. data/perf-tools/kernel/kprobe +270 -0
  72. data/perf-tools/killsnoop +263 -0
  73. data/perf-tools/man/man8/bitesize.8 +70 -0
  74. data/perf-tools/man/man8/cachestat.8 +111 -0
  75. data/perf-tools/man/man8/execsnoop.8 +104 -0
  76. data/perf-tools/man/man8/funccount.8 +76 -0
  77. data/perf-tools/man/man8/funcgraph.8 +166 -0
  78. data/perf-tools/man/man8/funcslower.8 +129 -0
  79. data/perf-tools/man/man8/functrace.8 +123 -0
  80. data/perf-tools/man/man8/iolatency.8 +116 -0
  81. data/perf-tools/man/man8/iosnoop.8 +169 -0
  82. data/perf-tools/man/man8/killsnoop.8 +100 -0
  83. data/perf-tools/man/man8/kprobe.8 +162 -0
  84. data/perf-tools/man/man8/opensnoop.8 +113 -0
  85. data/perf-tools/man/man8/perf-stat-hist.8 +111 -0
  86. data/perf-tools/man/man8/reset-ftrace.8 +49 -0
  87. data/perf-tools/man/man8/syscount.8 +96 -0
  88. data/perf-tools/man/man8/tcpretrans.8 +93 -0
  89. data/perf-tools/man/man8/tpoint.8 +140 -0
  90. data/perf-tools/man/man8/uprobe.8 +168 -0
  91. data/perf-tools/misc/perf-stat-hist +223 -0
  92. data/perf-tools/net/tcpretrans +311 -0
  93. data/perf-tools/opensnoop +280 -0
  94. data/perf-tools/syscount +192 -0
  95. data/perf-tools/system/tpoint +232 -0
  96. data/perf-tools/tools/reset-ftrace +123 -0
  97. data/perf-tools/user/uprobe +390 -0
  98. metadata +349 -0
@@ -0,0 +1,2178 @@
1
+ Demonstrations of funcgraph, the Linux ftrace version.
2
+
3
+
4
+ I'll start by showing do_nanosleep(), since it's usually a low frequency
5
+ function that can be easily triggered (run "vmstat 1"):
6
+
7
+ # ./funcgraph do_nanosleep
8
+ Tracing "do_nanosleep"... Ctrl-C to end.
9
+ 0) | do_nanosleep() {
10
+ 0) | hrtimer_start_range_ns() {
11
+ 0) | __hrtimer_start_range_ns() {
12
+ 0) | lock_hrtimer_base.isra.24() {
13
+ 0) 0.198 us | _raw_spin_lock_irqsave();
14
+ 0) 0.908 us | }
15
+ 0) 0.061 us | idle_cpu();
16
+ 0) 0.117 us | ktime_get();
17
+ 0) 0.371 us | enqueue_hrtimer();
18
+ 0) 0.075 us | _raw_spin_unlock_irqrestore();
19
+ 0) 3.447 us | }
20
+ 0) 3.998 us | }
21
+ 0) | schedule() {
22
+ 0) | __schedule() {
23
+ 0) 0.050 us | rcu_note_context_switch();
24
+ 0) 0.055 us | _raw_spin_lock_irq();
25
+ 0) | deactivate_task() {
26
+ 0) | dequeue_task() {
27
+ 0) 0.142 us | update_rq_clock();
28
+ 0) | dequeue_task_fair() {
29
+ 0) | dequeue_entity() {
30
+ 0) | update_curr() {
31
+ 0) 0.086 us | cpuacct_charge();
32
+ 0) 0.757 us | }
33
+ 0) 0.052 us | clear_buddies();
34
+ 0) 0.103 us | update_cfs_load();
35
+ 0) | update_cfs_shares() {
36
+ 0) | reweight_entity() {
37
+ 0) 0.077 us | update_curr();
38
+ 0) 0.438 us | }
39
+ 0) 0.794 us | }
40
+ 0) 3.067 us | }
41
+ 0) 0.064 us | set_next_buddy();
42
+ 0) 0.066 us | update_cfs_load();
43
+ 0) 0.085 us | update_cfs_shares();
44
+ 0) | hrtick_update() {
45
+ 0) 0.063 us | hrtick_start_fair();
46
+ 0) 0.367 us | }
47
+ 0) 5.188 us | }
48
+ 0) 5.923 us | }
49
+ 0) 6.228 us | }
50
+ 0) | put_prev_task_fair() {
51
+ 0) 0.078 us | put_prev_entity();
52
+ 0) | put_prev_entity() {
53
+ 0) 0.070 us | update_curr();
54
+ 0) 0.074 us | __enqueue_entity();
55
+ 0) 0.737 us | }
56
+ 0) 1.367 us | }
57
+ 0) | pick_next_task_fair() {
58
+ 0) | pick_next_entity() {
59
+ 0) 0.052 us | wakeup_preempt_entity.isra.95();
60
+ 0) 0.070 us | clear_buddies();
61
+ 0) 0.676 us | }
62
+ 0) | set_next_entity() {
63
+ 0) 0.052 us | update_stats_wait_end();
64
+ 0) 0.435 us | }
65
+ 0) | pick_next_entity() {
66
+ 0) 0.065 us | clear_buddies();
67
+ 0) 0.376 us | }
68
+ 0) | set_next_entity() {
69
+ 0) 0.067 us | update_stats_wait_end();
70
+ 0) 0.374 us | }
71
+ 0) 0.051 us | hrtick_start_fair();
72
+ 0) 3.879 us | }
73
+ 0) 0.057 us | paravirt_start_context_switch();
74
+ 0) | xen_load_sp0() {
75
+ 0) 0.050 us | paravirt_get_lazy_mode();
76
+ 0) 0.057 us | __xen_mc_entry();
77
+ 0) 0.056 us | paravirt_get_lazy_mode();
78
+ 0) 1.441 us | }
79
+ 0) | xen_load_tls() {
80
+ 0) 0.049 us | paravirt_get_lazy_mode();
81
+ 0) 0.051 us | paravirt_get_lazy_mode();
82
+ 0) | load_TLS_descriptor() {
83
+ 0) | arbitrary_virt_to_machine() {
84
+ 0) 0.081 us | __virt_addr_valid();
85
+ 0) 0.052 us | __phys_addr();
86
+ 0) 0.084 us | get_phys_to_machine();
87
+ 0) 1.115 us | }
88
+ 0) 0.053 us | __xen_mc_entry();
89
+ 0) 1.744 us | }
90
+ 0) | load_TLS_descriptor() {
91
+ 0) | arbitrary_virt_to_machine() {
92
+ 0) 0.053 us | __virt_addr_valid();
93
+ 0) 0.056 us | __phys_addr();
94
+ 0) 0.057 us | get_phys_to_machine();
95
+ 0) 0.990 us | }
96
+ 0) 0.053 us | __xen_mc_entry();
97
+ 0) 1.583 us | } /* load_TLS_descriptor */
98
+ 0) | load_TLS_descriptor() {
99
+ 0) | arbitrary_virt_to_machine() {
100
+ 0) 0.057 us | __virt_addr_valid();
101
+ 0) 0.051 us | __phys_addr();
102
+ 0) 0.053 us | get_phys_to_machine();
103
+ 0) 0.978 us | }
104
+ 0) 0.052 us | __xen_mc_entry();
105
+ 0) 1.586 us | }
106
+ 0) 0.052 us | paravirt_get_lazy_mode();
107
+ 0) 6.630 us | }
108
+ 0) | xen_end_context_switch() {
109
+ 0) 0.666 us | xen_mc_flush();
110
+ 0) 0.050 us | paravirt_end_context_switch();
111
+ 0) 1.286 us | }
112
+ 0) 0.172 us | xen_write_msr_safe();
113
+ ------------------------------------------
114
+ 0) platfor-3210 => vmstat-2854
115
+ ------------------------------------------
116
+
117
+ 0) | do_nanosleep() {
118
+ 0) | hrtimer_start_range_ns() {
119
+ 0) | __hrtimer_start_range_ns() {
120
+ 0) | lock_hrtimer_base.isra.24() {
121
+ 0) 0.217 us | _raw_spin_lock_irqsave();
122
+ 0) 0.831 us | }
123
+ 0) 0.066 us | idle_cpu();
124
+ 0) 0.123 us | ktime_get();
125
+ 0) 1.172 us | enqueue_hrtimer();
126
+ 0) 0.089 us | _raw_spin_unlock_irqrestore();
127
+ 0) 4.050 us | }
128
+ 0) 4.523 us | }
129
+ [...]
130
+
131
+ The default output shows the function call graph, including all child kernel
132
+ functions, along with the function duration times. These times are printed on
133
+ either the return line for the function ("}"), or for leaf functions, on the
134
+ same line.
135
+
136
+ The format of this output is documented in the function graph section of the
137
+ kernel source file Documentation/trace/ftrace.txt.
138
+
139
+ This particular example shows the workings of do_nanosleep, in the first dozen
140
+ lines, and then schedule() is called to sleep this thread and run another. The
141
+ inner workings of schedule() is included in the output.
142
+
143
+ This output is great for determining the behavior of a certain kernel function,
144
+ and to identify functions that can be studied in more details using other, lower
145
+ overhead, tools (eg, funccount(8), functrace(8), kprobe(8)). The overheads
146
+ of funcgraph are moderate, since all kernel functions are traced in case
147
+ they are executed, then included in the output if they are.
148
+
149
+ Now, if you want to start understanding the general behavior of the kernel,
150
+ without a certain kernel function in mind, you may be better to begin with
151
+ CPU stack profiling using perf and generating a flame graph. Such an approach
152
+ has low overhead, as you are in control of the frequency of event collection
153
+ (eg, gathering CPU stacks at 99 Hertz). For instructions, see:
154
+ http://www.brendangregg.com/perf.html#FlameGraphs
155
+
156
+
157
+
158
+ On newer Linux kernels, you can use the -m option to limit the function
159
+ depth. Eg, 3 levels only:
160
+
161
+ # ./funcgraph -m 3 do_nanosleep
162
+ Tracing "do_nanosleep"... Ctrl-C to end.
163
+ 1) | do_nanosleep() {
164
+ 1) | hrtimer_start_range_ns() {
165
+ 1) 1.115 us | __hrtimer_start_range_ns();
166
+ 1) 1.919 us | }
167
+ 1) | schedule() {
168
+ 1) | __schedule() {
169
+ 1) 1000131 us | }
170
+ 1) 11.006 us | xen_evtchn_do_upcall();
171
+ 1) 1000149 us | }
172
+ 1) | hrtimer_cancel() {
173
+ 1) 0.212 us | hrtimer_try_to_cancel();
174
+ 1) 0.699 us | }
175
+ 1) 1000154 us | }
176
+
177
+ Neat.
178
+
179
+
180
+ Now do_sys_open() to 3 levels:
181
+
182
+ 0) | do_sys_open() {
183
+ 0) | getname() {
184
+ 0) 0.296 us | getname_flags();
185
+ 0) 0.768 us | }
186
+ 0) | get_unused_fd_flags() {
187
+ 0) 0.397 us | __alloc_fd();
188
+ 0) 0.827 us | }
189
+ 0) | do_filp_open() {
190
+ 0) 4.166 us | path_openat();
191
+ 0) 4.617 us | }
192
+ 0) | __fsnotify_parent() {
193
+ 0) 0.083 us | dget_parent();
194
+ 0) 0.063 us | dput();
195
+ 0) 0.883 us | }
196
+ 0) 0.058 us | fsnotify();
197
+ 0) | fd_install() {
198
+ 0) 0.133 us | __fd_install();
199
+ 0) 0.525 us | }
200
+ 0) | putname() {
201
+ 0) 0.198 us | final_putname();
202
+ 0) 0.512 us | }
203
+ 0) 10.777 us | }
204
+ [...]
205
+
206
+ I can then pick the highest latency child function, then run funcgraph again
207
+ using it as the target.
208
+
209
+
210
+ Without timestamps (-D to elide duration):
211
+
212
+ # ./funcgraph -Dm 3 do_sys_open
213
+ Tracing "do_sys_open"... Ctrl-C to end.
214
+ 1) do_sys_open() {
215
+ 1) getname() {
216
+ 1) getname_flags();
217
+ 1) }
218
+ 1) get_unused_fd_flags() {
219
+ 1) __alloc_fd();
220
+ 1) }
221
+ 1) do_filp_open() {
222
+ 1) path_openat();
223
+ 1) }
224
+ 1) __fsnotify_parent();
225
+ 1) fsnotify();
226
+ 1) fd_install() {
227
+ 1) __fd_install();
228
+ 1) }
229
+ 1) putname() {
230
+ 1) final_putname();
231
+ 1) }
232
+ 1) }
233
+
234
+ Beautiful.
235
+
236
+ I could elide the CPU column as well, but I want to leave it: if it changes
237
+ half-way through some output, you know the CPU buffer has switched, and the
238
+ output may be shuffled.
239
+
240
+
241
+ For this example, I trace vfs_read() calls by process ID 5363: which is a bash
242
+ shell. I also include headers (-H) and absolute timestamps (-t). While
243
+ tracing, in that bash shell, I typed the word "hello":
244
+
245
+ # ./funcgraph -Htp 5363 vfs_read
246
+ Tracing "vfs_read" for PID 5363... Ctrl-C to end.
247
+ # tracer: function_graph
248
+ #
249
+ # TIME CPU DURATION FUNCTION CALLS
250
+ # | | | | | | | |
251
+ 7238523.638008 | 0) | finish_task_switch() {
252
+ 7238523.638012 | 0) | xen_evtchn_do_upcall() {
253
+ 7238523.638012 | 0) | irq_enter() {
254
+ 7238523.638013 | 0) 0.153 us | rcu_irq_enter();
255
+ 7238523.638014 | 0) 1.144 us | }
256
+ 7238523.638014 | 0) 0.056 us | exit_idle();
257
+ 7238523.638014 | 0) | __xen_evtchn_do_upcall() {
258
+ 7238523.638015 | 0) | evtchn_2l_handle_events() {
259
+ 7238523.638015 | 0) 0.057 us | irq_from_virq();
260
+ 7238523.638015 | 0) | evtchn_from_irq() {
261
+ 7238523.638015 | 0) | irq_get_irq_data() {
262
+ 7238523.638016 | 0) 0.058 us | irq_to_desc();
263
+ 7238523.638016 | 0) 0.565 us | }
264
+ 7238523.638016 | 0) 0.966 us | }
265
+ 7238523.638016 | 0) | get_evtchn_to_irq() {
266
+ 7238523.638017 | 0) 0.050 us | evtchn_2l_max_channels();
267
+ 7238523.638017 | 0) 0.386 us | }
268
+ 7238523.638017 | 0) | generic_handle_irq() {
269
+ 7238523.638017 | 0) 0.058 us | irq_to_desc();
270
+ 7238523.638018 | 0) | handle_percpu_irq() {
271
+ 7238523.638018 | 0) | ack_dynirq() {
272
+ 7238523.638018 | 0) | evtchn_from_irq() {
273
+ 7238523.638018 | 0) | irq_get_irq_data() {
274
+ 7238523.638019 | 0) 0.049 us | irq_to_desc();
275
+ 7238523.638019 | 0) 0.441 us | }
276
+ 7238523.638019 | 0) 0.772 us | }
277
+ 7238523.638019 | 0) 0.049 us | irq_move_irq();
278
+ 7238523.638020 | 0) 0.060 us | evtchn_2l_clear_pending();
279
+ 7238523.638020 | 0) 1.810 us | }
280
+ 7238523.638020 | 0) | handle_irq_event_percpu() {
281
+ 7238523.638020 | 0) | xen_irq_work_interrupt() {
282
+ 7238523.638021 | 0) | irq_enter() {
283
+ 7238523.638021 | 0) 0.056 us | rcu_irq_enter();
284
+ 7238523.638021 | 0) 0.384 us | }
285
+ 7238523.638021 | 0) | __wake_up() {
286
+ 7238523.638022 | 0) 0.059 us | _raw_spin_lock_irqsave();
287
+ 7238523.638022 | 0) | __wake_up_common() {
288
+ 7238523.638022 | 0) | autoremove_wake_function() {
289
+ 7238523.638023 | 0) | default_wake_function() {
290
+ 7238523.638023 | 0) | try_to_wake_up() {
291
+ 7238523.638023 | 0) 0.220 us | _raw_spin_lock_irqsave();
292
+ 7238523.638024 | 0) 0.270 us | task_waking_fair();
293
+ 7238523.638024 | 0) | select_task_rq_fair() {
294
+ 7238523.638025 | 0) 0.055 us | source_load();
295
+ 7238523.638025 | 0) 0.056 us | target_load();
296
+ 7238523.638025 | 0) 0.060 us | idle_cpu();
297
+ 7238523.638026 | 0) 0.054 us | cpus_share_cache();
298
+ 7238523.638026 | 0) 0.083 us | idle_cpu();
299
+ 7238523.638026 | 0) 2.060 us | }
300
+ 7238523.638027 | 0) 0.051 us | _raw_spin_lock();
301
+ 7238523.638027 | 0) | ttwu_do_activate.constprop.124() {
302
+ 7238523.638027 | 0) | activate_task() {
303
+ 7238523.638027 | 0) | enqueue_task() {
304
+ 7238523.638028 | 0) 0.120 us | update_rq_clock();
305
+ 7238523.638028 | 0) | enqueue_task_fair() {
306
+ 7238523.638028 | 0) | enqueue_entity() {
307
+ 7238523.638028 | 0) 0.147 us | update_curr();
308
+ 7238523.638029 | 0) 0.055 us | __compute_runnable_contrib.part.51();
309
+ 7238523.638029 | 0) 0.066 us | __update_entity_load_avg_contrib();
310
+ 7238523.638029 | 0) 0.141 us | update_cfs_rq_blocked_load();
311
+ 7238523.638030 | 0) 0.068 us | account_entity_enqueue();
312
+ 7238523.638030 | 0) 0.351 us | update_cfs_shares();
313
+ 7238523.638031 | 0) 0.053 us | place_entity();
314
+ 7238523.638031 | 0) 0.082 us | __enqueue_entity();
315
+ 7238523.638032 | 0) 0.050 us | update_cfs_rq_blocked_load();
316
+ 7238523.638032 | 0) 3.922 us | }
317
+ 7238523.638032 | 0) | enqueue_entity() {
318
+ 7238523.638033 | 0) 0.058 us | update_curr();
319
+ 7238523.638033 | 0) 0.056 us | __compute_runnable_contrib.part.51();
320
+ 7238523.638033 | 0) 0.078 us | __update_entity_load_avg_contrib();
321
+ 7238523.638034 | 0) 0.055 us | update_cfs_rq_blocked_load();
322
+ 7238523.638034 | 0) 0.064 us | account_entity_enqueue();
323
+ 7238523.638034 | 0) 0.059 us | update_cfs_shares();
324
+ 7238523.638035 | 0) 0.050 us | place_entity();
325
+ 7238523.638036 | 0) 0.057 us | __enqueue_entity();
326
+ 7238523.638036 | 0) 3.829 us | }
327
+ 7238523.638037 | 0) 0.057 us | hrtick_update();
328
+ 7238523.638037 | 0) 8.876 us | }
329
+ 7238523.638037 | 0) 9.698 us | }
330
+ 7238523.638037 | 0) 10.113 us | }
331
+ 7238523.638038 | 0) | ttwu_do_wakeup() {
332
+ 7238523.638038 | 0) | check_preempt_curr() {
333
+ 7238523.638038 | 0) | resched_task() {
334
+ 7238523.638038 | 0) | xen_smp_send_reschedule() {
335
+ 7238523.638038 | 0) | xen_send_IPI_one() {
336
+ 7238523.638039 | 0) | notify_remote_via_irq() {
337
+ 7238523.638039 | 0) | evtchn_from_irq() {
338
+ 7238523.638039 | 0) | irq_get_irq_data() {
339
+ 7238523.638039 | 0) 0.051 us | irq_to_desc();
340
+ 7238523.638039 | 0) 0.518 us | }
341
+ 7238523.638040 | 0) 0.955 us | }
342
+ 7238523.638041 | 0) 2.001 us | }
343
+ 7238523.638041 | 0) 2.391 us | }
344
+ 7238523.638041 | 0) 2.745 us | }
345
+ 7238523.638041 | 0) 3.183 us | }
346
+ 7238523.638042 | 0) 3.663 us | }
347
+ 7238523.638042 | 0) 4.621 us | }
348
+ 7238523.638043 | 0) 15.443 us | }
349
+ 7238523.638043 | 0) 0.067 us | _raw_spin_unlock();
350
+ 7238523.638043 | 0) 0.167 us | ttwu_stat();
351
+ 7238523.638044 | 0) 0.087 us | _raw_spin_unlock_irqrestore();
352
+ 7238523.638044 | 0) 21.447 us | }
353
+ 7238523.638045 | 0) 21.940 us | }
354
+ 7238523.638045 | 0) 22.406 us | }
355
+ 7238523.638045 | 0) 23.071 us | }
356
+ 7238523.638045 | 0) 0.073 us | _raw_spin_unlock_irqrestore();
357
+ 7238523.638046 | 0) 24.382 us | }
358
+ 7238523.638046 | 0) | irq_exit() {
359
+ 7238523.638047 | 0) 0.085 us | idle_cpu();
360
+ 7238523.638047 | 0) 0.093 us | rcu_irq_exit();
361
+ 7238523.638048 | 0) 1.242 us | }
362
+ 7238523.638048 | 0) 27.410 us | }
363
+ 7238523.638049 | 0) 0.139 us | add_interrupt_randomness();
364
+ 7238523.638049 | 0) 0.089 us | note_interrupt();
365
+ 7238523.638050 | 0) 29.582 us | }
366
+ 7238523.638050 | 0) 32.112 us | }
367
+ 7238523.638050 | 0) 32.951 us | }
368
+ 7238523.638051 | 0) 35.765 us | }
369
+ 7238523.638051 | 0) 36.170 us | }
370
+ 7238523.638051 | 0) | irq_exit() {
371
+ 7238523.638051 | 0) 0.082 us | idle_cpu();
372
+ 7238523.638052 | 0) 0.071 us | rcu_irq_exit();
373
+ 7238523.638053 | 0) 1.328 us | }
374
+ 7238523.638053 | 0) 40.563 us | }
375
+ 7238523.638054 | 0) | __mmdrop() {
376
+ 7238523.638054 | 0) | pgd_free() {
377
+ 7238523.638055 | 0) 0.151 us | _raw_spin_lock();
378
+ 7238523.638055 | 0) 0.069 us | _raw_spin_unlock();
379
+ 7238523.638056 | 0) | xen_pgd_free() {
380
+ 7238523.638056 | 0) 0.067 us | xen_get_user_pgd();
381
+ 7238523.638057 | 0) | free_pages() {
382
+ 7238523.638057 | 0) | __free_pages() {
383
+ 7238523.638057 | 0) | free_hot_cold_page() {
384
+ 7238523.638058 | 0) 0.080 us | free_pages_prepare();
385
+ 7238523.638058 | 0) 0.363 us | get_pfnblock_flags_mask();
386
+ 7238523.638059 | 0) 1.626 us | }
387
+ 7238523.638059 | 0) 2.317 us | }
388
+ 7238523.638060 | 0) 2.847 us | }
389
+ 7238523.638060 | 0) 3.908 us | }
390
+ 7238523.638060 | 0) | free_pages() {
391
+ 7238523.638060 | 0) | __free_pages() {
392
+ 7238523.638061 | 0) | free_hot_cold_page() {
393
+ 7238523.638061 | 0) 0.083 us | free_pages_prepare();
394
+ 7238523.638061 | 0) 0.139 us | get_pfnblock_flags_mask();
395
+ 7238523.638062 | 0) 1.062 us | }
396
+ 7238523.638062 | 0) 1.534 us | }
397
+ 7238523.638062 | 0) 2.038 us | }
398
+ 7238523.638063 | 0) 8.268 us | }
399
+ 7238523.638064 | 0) 0.160 us | destroy_context();
400
+ 7238523.638065 | 0) 0.384 us | kmem_cache_free();
401
+ 7238523.638066 | 0) 11.433 us | }
402
+ 7238523.638066 | 0) 54.448 us | }
403
+ 7238523.638066 | 0) 19354026 us | } /* __schedule */
404
+ 7238523.638067 | 0) 19354026 us | } /* schedule */
405
+ 7238523.638067 | 0) 19354027 us | } /* schedule_timeout */
406
+ 7238523.638067 | 0) 0.121 us | down_read();
407
+ 7238523.638068 | 0) | copy_from_read_buf() {
408
+ 7238523.638069 | 0) | tty_audit_add_data() {
409
+ 7238523.638070 | 0) 0.220 us | _raw_spin_lock_irqsave();
410
+ 7238523.638071 | 0) 0.097 us | _raw_spin_unlock_irqrestore();
411
+ 7238523.638071 | 0) 0.078 us | _raw_spin_lock_irqsave();
412
+ 7238523.638072 | 0) 0.077 us | _raw_spin_unlock_irqrestore();
413
+ 7238523.638072 | 0) 2.795 us | }
414
+ 7238523.638073 | 0) 4.183 us | }
415
+ 7238523.638073 | 0) 0.084 us | copy_from_read_buf();
416
+ 7238523.638074 | 0) 0.078 us | n_tty_set_room();
417
+ 7238523.638074 | 0) 0.082 us | n_tty_write_wakeup();
418
+ 7238523.638075 | 0) | __wake_up() {
419
+ 7238523.638075 | 0) 0.084 us | _raw_spin_lock_irqsave();
420
+ 7238523.638076 | 0) | __wake_up_common() {
421
+ 7238523.638076 | 0) 0.095 us | pollwake();
422
+ 7238523.638077 | 0) 0.819 us | }
423
+ 7238523.638077 | 0) 0.074 us | _raw_spin_unlock_irqrestore();
424
+ 7238523.638078 | 0) 2.463 us | }
425
+ 7238523.638078 | 0) 0.071 us | n_tty_set_room();
426
+ 7238523.638078 | 0) 0.082 us | up_read();
427
+ 7238523.638079 | 0) | remove_wait_queue() {
428
+ 7238523.638079 | 0) 0.082 us | _raw_spin_lock_irqsave();
429
+ 7238523.638080 | 0) 0.086 us | _raw_spin_unlock_irqrestore();
430
+ 7238523.638080 | 0) 1.239 us | }
431
+ 7238523.638081 | 0) 0.142 us | mutex_unlock();
432
+ 7238523.638081 | 0) 19354047 us | } /* n_tty_read */
433
+ 7238523.638082 | 0) | tty_ldisc_deref() {
434
+ 7238523.638082 | 0) 0.064 us | ldsem_up_read();
435
+ 7238523.638082 | 0) 0.554 us | }
436
+ 7238523.638083 | 0) 0.074 us | get_seconds();
437
+ 7238523.638083 | 0) 19354052 us | } /* tty_read */
438
+ 7238523.638084 | 0) 0.352 us | __fsnotify_parent();
439
+ 7238523.638085 | 0) 0.178 us | fsnotify();
440
+ 7238523.638085 | 0) 19354058 us | } /* vfs_read */
441
+ 7238523.638156 | 0) | vfs_read() {
442
+ 7238523.638157 | 0) | rw_verify_area() {
443
+ 7238523.638157 | 0) | security_file_permission() {
444
+ 7238523.638158 | 0) | apparmor_file_permission() {
445
+ 7238523.638158 | 0) 0.183 us | common_file_perm();
446
+ 7238523.638159 | 0) 0.778 us | }
447
+ 7238523.638159 | 0) 0.081 us | __fsnotify_parent();
448
+ 7238523.638160 | 0) 0.104 us | fsnotify();
449
+ 7238523.638160 | 0) 2.662 us | }
450
+ 7238523.638161 | 0) 3.337 us | }
451
+ 7238523.638161 | 0) | tty_read() {
452
+ 7238523.638161 | 0) 0.067 us | tty_paranoia_check();
453
+ 7238523.638162 | 0) | tty_ldisc_ref_wait() {
454
+ 7238523.638162 | 0) 0.080 us | } /* ldsem_down_read */
455
+ 7238523.638163 | 0) 0.637 us | }
456
+ 7238523.638163 | 0) | n_tty_read() {
457
+ 7238523.638164 | 0) 0.078 us | _raw_spin_lock_irq();
458
+ 7238523.638164 | 0) 0.090 us | mutex_lock_interruptible();
459
+ 7238523.638165 | 0) 0.078 us | down_read();
460
+ 7238523.638165 | 0) | add_wait_queue() {
461
+ 7238523.638166 | 0) 0.070 us | _raw_spin_lock_irqsave();
462
+ 7238523.638166 | 0) 0.084 us | _raw_spin_unlock_irqrestore();
463
+ 7238523.638167 | 0) 1.111 us | }
464
+ 7238523.638167 | 0) 0.083 us | tty_hung_up_p();
465
+ 7238523.638168 | 0) 0.080 us | n_tty_set_room();
466
+ 7238523.638169 | 0) 0.068 us | up_read();
467
+ 7238523.638169 | 0) | schedule_timeout() {
468
+ 7238523.638170 | 0) | schedule() {
469
+ 7238523.638170 | 0) | __schedule() {
470
+ 7238523.638171 | 0) 0.078 us | rcu_note_context_switch();
471
+ 7238523.638171 | 0) 0.081 us | _raw_spin_lock_irq();
472
+ 7238523.638172 | 0) | deactivate_task() {
473
+ 7238523.638172 | 0) | dequeue_task() {
474
+ 7238523.638172 | 0) 0.181 us | update_rq_clock();
475
+ 7238523.638173 | 0) | dequeue_task_fair() {
476
+ 7238523.638174 | 0) | dequeue_entity() {
477
+ 7238523.638174 | 0) | update_curr() {
478
+ 7238523.638174 | 0) 0.257 us | cpuacct_charge();
479
+ 7238523.638175 | 0) 0.982 us | }
480
+ 7238523.638175 | 0) 0.079 us | update_cfs_rq_blocked_load();
481
+ 7238523.638176 | 0) 0.080 us | clear_buddies();
482
+ 7238523.638177 | 0) 0.096 us | account_entity_dequeue();
483
+ 7238523.638177 | 0) | update_cfs_shares() {
484
+ 7238523.638178 | 0) 0.113 us | update_curr();
485
+ 7238523.638178 | 0) 0.087 us | account_entity_dequeue();
486
+ 7238523.638179 | 0) 0.073 us | account_entity_enqueue();
487
+ 7238523.638179 | 0) 1.948 us | }
488
+ 7238523.638180 | 0) 5.913 us | }
489
+ 7238523.638180 | 0) | dequeue_entity() {
490
+ 7238523.638180 | 0) 0.086 us | update_curr();
491
+ 7238523.638181 | 0) 0.079 us | update_cfs_rq_blocked_load();
492
+ 7238523.638182 | 0) 0.076 us | clear_buddies();
493
+ 7238523.638182 | 0) 0.076 us | account_entity_dequeue();
494
+ 7238523.638183 | 0) 0.104 us | update_cfs_shares();
495
+ 7238523.638183 | 0) 3.171 us | }
496
+ 7238523.638184 | 0) 0.076 us | hrtick_update();
497
+ 7238523.638184 | 0) 10.785 us | }
498
+ 7238523.638184 | 0) 12.057 us | }
499
+ 7238523.638185 | 0) 12.704 us | }
500
+ 7238523.638185 | 0) | pick_next_task_fair() {
501
+ 7238523.638185 | 0) 0.074 us | check_cfs_rq_runtime();
502
+ 7238523.638186 | 0) | pick_next_entity() {
503
+ 7238523.638186 | 0) 0.067 us | clear_buddies();
504
+ 7238523.638187 | 0) 0.544 us | }
505
+ 7238523.638187 | 0) | put_prev_entity() {
506
+ 7238523.638187 | 0) 0.079 us | check_cfs_rq_runtime();
507
+ 7238523.638188 | 0) 0.612 us | }
508
+ 7238523.638188 | 0) | put_prev_entity() {
509
+ 7238523.638188 | 0) 0.076 us | check_cfs_rq_runtime();
510
+ 7238523.638189 | 0) 0.618 us | }
511
+ 7238523.638189 | 0) | set_next_entity() {
512
+ 7238523.638190 | 0) 0.078 us | update_stats_wait_end();
513
+ 7238523.638190 | 0) 0.712 us | }
514
+ 7238523.638190 | 0) 5.023 us | }
515
+ 7238523.638191 | 0) 0.086 us | paravirt_start_context_switch();
516
+ 7238523.638192 | 0) 0.070 us | xen_read_cr0();
517
+ 7238523.638193 | 0) | xen_write_cr0() {
518
+ 7238523.638193 | 0) 0.085 us | paravirt_get_lazy_mode();
519
+ 7238523.638194 | 0) 0.085 us | __xen_mc_entry();
520
+ 7238523.638194 | 0) 0.077 us | paravirt_get_lazy_mode();
521
+ 7238523.638195 | 0) 1.822 us | }
522
+ 7238523.638195 | 0) | xen_load_sp0() {
523
+ 7238523.638195 | 0) 0.074 us | paravirt_get_lazy_mode();
524
+ 7238523.638196 | 0) 0.085 us | __xen_mc_entry();
525
+ 7238523.638196 | 0) 0.078 us | paravirt_get_lazy_mode();
526
+ 7238523.638197 | 0) 1.754 us | }
527
+ 7238523.638197 | 0) | xen_load_tls() {
528
+ 7238523.638198 | 0) 0.069 us | paravirt_get_lazy_mode();
529
+ 7238523.638198 | 0) 0.082 us | paravirt_get_lazy_mode();
530
+ 7238523.638199 | 0) 0.127 us | load_TLS_descriptor();
531
+ 7238523.638199 | 0) 0.080 us | load_TLS_descriptor();
532
+ 7238523.638200 | 0) 0.094 us | load_TLS_descriptor();
533
+ 7238523.638201 | 0) 0.081 us | paravirt_get_lazy_mode();
534
+ 7238523.638202 | 0) 4.155 us | }
535
+ 7238523.638202 | 0) | xen_end_context_switch() {
536
+ 7238523.638202 | 0) 0.699 us | xen_mc_flush();
537
+ 7238523.638204 | 0) 0.089 us | paravirt_end_context_switch();
538
+ 7238523.638204 | 0) 1.915 us | }
539
+ 7238523.797630 | 0) | finish_task_switch() {
540
+ 7238523.797634 | 0) | xen_evtchn_do_upcall() {
541
+ 7238523.797634 | 0) | irq_enter() {
542
+ 7238523.797634 | 0) 0.134 us | rcu_irq_enter();
543
+ 7238523.797635 | 0) 0.688 us | }
544
+ 7238523.797635 | 0) 0.055 us | exit_idle();
545
+ 7238523.797635 | 0) | __xen_evtchn_do_upcall() {
546
+ 7238523.797636 | 0) | evtchn_2l_handle_events() {
547
+ 7238523.797636 | 0) 0.048 us | irq_from_virq();
548
+ 7238523.797636 | 0) | evtchn_from_irq() {
549
+ 7238523.797636 | 0) | irq_get_irq_data() {
550
+ 7238523.797637 | 0) 0.061 us | irq_to_desc();
551
+ 7238523.797637 | 0) 0.564 us | }
552
+ 7238523.797637 | 0) 0.954 us | }
553
+ 7238523.797638 | 0) | get_evtchn_to_irq() {
554
+ 7238523.797638 | 0) 0.057 us | evtchn_2l_max_channels();
555
+ 7238523.797638 | 0) 0.409 us | }
556
+ 7238523.797638 | 0) | generic_handle_irq() {
557
+ 7238523.797638 | 0) 0.052 us | irq_to_desc();
558
+ 7238523.797639 | 0) | handle_percpu_irq() {
559
+ 7238523.797639 | 0) | ack_dynirq() {
560
+ 7238523.797639 | 0) | evtchn_from_irq() {
561
+ 7238523.797639 | 0) | irq_get_irq_data() {
562
+ 7238523.797640 | 0) 0.057 us | irq_to_desc();
563
+ 7238523.797640 | 0) 0.440 us | }
564
+ 7238523.797640 | 0) 0.746 us | }
565
+ 7238523.797640 | 0) 0.056 us | irq_move_irq();
566
+ 7238523.797641 | 0) 0.058 us | evtchn_2l_clear_pending();
567
+ 7238523.797641 | 0) 1.729 us | }
568
+ 7238523.797641 | 0) | handle_irq_event_percpu() {
569
+ 7238523.797641 | 0) | xen_irq_work_interrupt() {
570
+ 7238523.797642 | 0) | irq_enter() {
571
+ 7238523.797642 | 0) 0.053 us | rcu_irq_enter();
572
+ 7238523.797642 | 0) 0.396 us | }
573
+ 7238523.797642 | 0) | __wake_up() {
574
+ 7238523.797643 | 0) 0.053 us | _raw_spin_lock_irqsave();
575
+ 7238523.797643 | 0) | __wake_up_common() {
576
+ 7238523.797643 | 0) | autoremove_wake_function() {
577
+ 7238523.797644 | 0) | default_wake_function() {
578
+ 7238523.797644 | 0) | try_to_wake_up() {
579
+ 7238523.797644 | 0) 0.228 us | _raw_spin_lock_irqsave();
580
+ 7238523.797645 | 0) 0.194 us | task_waking_fair();
581
+ 7238523.797645 | 0) | select_task_rq_fair() {
582
+ 7238523.797645 | 0) 0.051 us | source_load();
583
+ 7238523.797646 | 0) 0.050 us | target_load();
584
+ 7238523.797646 | 0) 0.067 us | idle_cpu();
585
+ 7238523.797647 | 0) 0.050 us | cpus_share_cache();
586
+ 7238523.797647 | 0) 0.068 us | idle_cpu();
587
+ 7238523.797647 | 0) 1.983 us | }
588
+ 7238523.797648 | 0) 0.051 us | _raw_spin_lock();
589
+ 7238523.797648 | 0) | ttwu_do_activate.constprop.124() {
590
+ 7238523.797648 | 0) | activate_task() {
591
+ 7238523.797648 | 0) | enqueue_task() {
592
+ 7238523.797648 | 0) 0.135 us | update_rq_clock();
593
+ 7238523.797649 | 0) | enqueue_task_fair() {
594
+ 7238523.797649 | 0) | enqueue_entity() {
595
+ 7238523.797649 | 0) 0.059 us | update_curr();
596
+ 7238523.797650 | 0) 0.073 us | __compute_runnable_contrib.part.51();
597
+ 7238523.797650 | 0) 0.066 us | __update_entity_load_avg_contrib();
598
+ 7238523.797650 | 0) 0.059 us | update_cfs_rq_blocked_load();
599
+ 7238523.797651 | 0) 0.064 us | account_entity_enqueue();
600
+ 7238523.797651 | 0) 0.137 us | update_cfs_shares();
601
+ 7238523.797651 | 0) 0.054 us | place_entity();
602
+ 7238523.797652 | 0) 0.074 us | __enqueue_entity();
603
+ 7238523.797652 | 0) 3.085 us | }
604
+ 7238523.797652 | 0) | enqueue_entity() {
605
+ 7238523.797653 | 0) 0.058 us | update_curr();
606
+ 7238523.797654 | 0) 0.049 us | update_cfs_rq_blocked_load();
607
+ 7238523.797654 | 0) 0.057 us | account_entity_enqueue();
608
+ 7238523.797655 | 0) 0.066 us | update_cfs_shares();
609
+ 7238523.797655 | 0) 0.049 us | place_entity();
610
+ 7238523.797655 | 0) 0.051 us | __enqueue_entity();
611
+ 7238523.797656 | 0) 3.432 us | }
612
+ 7238523.797656 | 0) 0.049 us | hrtick_update();
613
+ 7238523.797657 | 0) 7.552 us | }
614
+ 7238523.797657 | 0) 8.414 us | }
615
+ 7238523.797657 | 0) 8.753 us | }
616
+ 7238523.797657 | 0) | ttwu_do_wakeup() {
617
+ 7238523.797657 | 0) | check_preempt_curr() {
618
+ 7238523.797657 | 0) | resched_task() {
619
+ 7238523.797658 | 0) | xen_smp_send_reschedule() {
620
+ 7238523.797658 | 0) | xen_send_IPI_one() {
621
+ 7238523.797658 | 0) | notify_remote_via_irq() {
622
+ 7238523.797658 | 0) | evtchn_from_irq() {
623
+ 7238523.797658 | 0) | irq_get_irq_data() {
624
+ 7238523.797659 | 0) 0.069 us | irq_to_desc();
625
+ 7238523.797659 | 0) 0.504 us | }
626
+ 7238523.797659 | 0) 0.869 us | }
627
+ 7238523.797660 | 0) 1.940 us | } /* notify_remote_via_irq */
628
+ 7238523.797660 | 0) 2.319 us | }
629
+ 7238523.797660 | 0) 2.712 us | }
630
+ 7238523.797661 | 0) 3.147 us | }
631
+ 7238523.797661 | 0) 3.625 us | }
632
+ 7238523.797662 | 0) 4.525 us | }
633
+ 7238523.797662 | 0) 13.961 us | }
634
+ 7238523.797662 | 0) 0.069 us | _raw_spin_unlock();
635
+ 7238523.797663 | 0) 0.168 us | ttwu_stat();
636
+ 7238523.797663 | 0) 0.076 us | _raw_spin_unlock_irqrestore();
637
+ 7238523.797664 | 0) 19.821 us | }
638
+ 7238523.797664 | 0) 20.301 us | }
639
+ 7238523.797664 | 0) 20.796 us | }
640
+ 7238523.797664 | 0) 21.367 us | }
641
+ 7238523.797665 | 0) 0.071 us | _raw_spin_unlock_irqrestore();
642
+ 7238523.797665 | 0) 22.621 us | }
643
+ 7238523.797666 | 0) | irq_exit() {
644
+ 7238523.797666 | 0) 0.085 us | idle_cpu();
645
+ 7238523.797666 | 0) 0.106 us | rcu_irq_exit();
646
+ 7238523.797667 | 0) 1.220 us | }
647
+ 7238523.797667 | 0) 25.712 us | }
648
+ 7238523.797668 | 0) 0.138 us | add_interrupt_randomness();
649
+ 7238523.797668 | 0) 0.092 us | note_interrupt();
650
+ 7238523.797669 | 0) 27.713 us | }
651
+ 7238523.797669 | 0) 30.163 us | }
652
+ 7238523.797669 | 0) 31.017 us | }
653
+ 7238523.797670 | 0) 33.953 us | }
654
+ 7238523.797670 | 0) 34.384 us | }
655
+ 7238523.797670 | 0) | irq_exit() {
656
+ 7238523.797671 | 0) 0.079 us | idle_cpu();
657
+ 7238523.797671 | 0) 0.072 us | rcu_irq_exit();
658
+ 7238523.797672 | 0) 1.023 us | }
659
+ 7238523.797672 | 0) 37.789 us | }
660
+ 7238523.797672 | 0) 39.298 us | }
661
+ 7238523.797673 | 0) 159502.1 us | }
662
+ 7238523.797673 | 0) 159502.8 us | }
663
+ 7238523.797673 | 0) 159503.5 us | }
664
+ 7238523.797674 | 0) 0.112 us | down_read();
665
+ 7238523.797675 | 0) | copy_from_read_buf() {
666
+ 7238523.797676 | 0) | tty_audit_add_data() {
667
+ 7238523.797676 | 0) 0.226 us | _raw_spin_lock_irqsave();
668
+ 7238523.797677 | 0) 0.075 us | _raw_spin_unlock_irqrestore();
669
+ 7238523.797677 | 0) 0.101 us | _raw_spin_lock_irqsave();
670
+ 7238523.797678 | 0) 0.068 us | _raw_spin_unlock_irqrestore();
671
+ 7238523.797679 | 0) 2.656 us | }
672
+ 7238523.797679 | 0) 3.762 us | }
673
+ 7238523.797679 | 0) 0.145 us | copy_from_read_buf();
674
+ 7238523.797680 | 0) 0.068 us | n_tty_set_room();
675
+ 7238523.797680 | 0) 0.058 us | n_tty_write_wakeup();
676
+ 7238523.797681 | 0) | __wake_up() {
677
+ 7238523.797682 | 0) 0.060 us | _raw_spin_lock_irqsave();
678
+ 7238523.797682 | 0) | __wake_up_common() {
679
+ 7238523.797683 | 0) 0.083 us | pollwake();
680
+ 7238523.797683 | 0) 0.739 us | }
681
+ 7238523.797683 | 0) 0.069 us | _raw_spin_unlock_irqrestore();
682
+ 7238523.797684 | 0) 2.745 us | }
683
+ 7238523.797684 | 0) 0.061 us | n_tty_set_room();
684
+ 7238523.797685 | 0) 0.074 us | up_read();
685
+ 7238523.797685 | 0) | remove_wait_queue() {
686
+ 7238523.797685 | 0) 0.075 us | _raw_spin_lock_irqsave();
687
+ 7238523.797686 | 0) 0.070 us | _raw_spin_unlock_irqrestore();
688
+ 7238523.797686 | 0) 1.110 us | }
689
+ 7238523.797687 | 0) 0.146 us | mutex_unlock();
690
+ 7238523.797687 | 0) 159524.0 us | }
691
+ 7238523.797688 | 0) | tty_ldisc_deref() {
692
+ 7238523.797688 | 0) 0.070 us | ldsem_up_read();
693
+ 7238523.797689 | 0) 0.739 us | }
694
+ 7238523.797689 | 0) 0.066 us | get_seconds();
695
+ 7238523.797690 | 0) 159528.3 us | }
696
+ 7238523.797690 | 0) 0.298 us | __fsnotify_parent();
697
+ 7238523.797691 | 0) 0.179 us | fsnotify();
698
+ 7238523.797692 | 0) 159534.6 us | }
699
+ 7238523.797762 | 0) | vfs_read() {
700
+ 7238523.797763 | 0) | rw_verify_area() {
701
+ 7238523.797763 | 0) | security_file_permission() {
702
+ 7238523.797764 | 0) | apparmor_file_permission() {
703
+ 7238523.797764 | 0) 0.165 us | common_file_perm();
704
+ 7238523.797765 | 0) 0.732 us | }
705
+ 7238523.797765 | 0) 0.081 us | __fsnotify_parent();
706
+ 7238523.797766 | 0) 0.094 us | fsnotify();
707
+ 7238523.797766 | 0) 2.711 us | }
708
+ 7238523.797767 | 0) 3.386 us | }
709
+ 7238523.797767 | 0) | tty_read() {
710
+ 7238523.797767 | 0) 0.077 us | tty_paranoia_check();
711
+ 7238523.797768 | 0) | tty_ldisc_ref_wait() {
712
+ 7238523.797768 | 0) 0.083 us | ldsem_down_read();
713
+ 7238523.797769 | 0) 0.686 us | }
714
+ 7238523.797769 | 0) | n_tty_read() {
715
+ 7238523.797770 | 0) 0.071 us | _raw_spin_lock_irq();
716
+ 7238523.797770 | 0) 0.111 us | mutex_lock_interruptible();
717
+ 7238523.797771 | 0) 0.072 us | down_read();
718
+ 7238523.797771 | 0) | add_wait_queue() {
719
+ 7238523.797772 | 0) 0.083 us | _raw_spin_lock_irqsave();
720
+ 7238523.797772 | 0) 0.085 us | _raw_spin_unlock_irqrestore();
721
+ 7238523.797773 | 0) 1.124 us | }
722
+ 7238523.797773 | 0) 0.066 us | tty_hung_up_p();
723
+ 7238523.797774 | 0) 0.090 us | n_tty_set_room();
724
+ 7238523.797774 | 0) 0.064 us | up_read();
725
+ 7238523.797775 | 0) | schedule_timeout() {
726
+ 7238523.797775 | 0) | schedule() {
727
+ 7238523.797775 | 0) | __schedule() {
728
+ 7238523.797776 | 0) 0.083 us | rcu_note_context_switch();
729
+ 7238523.797776 | 0) 0.078 us | _raw_spin_lock_irq();
730
+ 7238523.797777 | 0) | deactivate_task() {
731
+ 7238523.797777 | 0) | dequeue_task() {
732
+ 7238523.797777 | 0) 0.191 us | update_rq_clock();
733
+ 7238523.797778 | 0) | dequeue_task_fair() {
734
+ 7238523.797778 | 0) | dequeue_entity() {
735
+ 7238523.797779 | 0) | update_curr() {
736
+ 7238523.797779 | 0) 0.179 us | cpuacct_charge();
737
+ 7238523.797780 | 0) 0.902 us | }
738
+ 7238523.797780 | 0) 0.070 us | __update_entity_load_avg_contrib();
739
+ 7238523.797781 | 0) 0.152 us | update_cfs_rq_blocked_load();
740
+ 7238523.797781 | 0) 0.073 us | clear_buddies();
741
+ 7238523.797782 | 0) 0.074 us | account_entity_dequeue();
742
+ 7238523.797783 | 0) | update_cfs_shares() {
743
+ 7238523.797783 | 0) 0.111 us | update_curr();
744
+ 7238523.797783 | 0) 0.082 us | account_entity_dequeue();
745
+ 7238523.797784 | 0) 0.081 us | account_entity_enqueue();
746
+ 7238523.797785 | 0) 2.330 us | }
747
+ 7238523.797785 | 0) 6.633 us | } /* dequeue_entity */
748
+ 7238523.797786 | 0) | dequeue_entity() {
749
+ 7238523.797786 | 0) 0.078 us | update_curr();
750
+ 7238523.797787 | 0) 0.086 us | update_cfs_rq_blocked_load();
751
+ 7238523.797787 | 0) 0.076 us | clear_buddies();
752
+ 7238523.797788 | 0) 0.079 us | account_entity_dequeue();
753
+ 7238523.797789 | 0) 0.074 us | update_cfs_shares();
754
+ 7238523.797789 | 0) 3.287 us | }
755
+ 7238523.797789 | 0) 0.074 us | hrtick_update();
756
+ 7238523.797790 | 0) 11.606 us | }
757
+ 7238523.797790 | 0) 12.879 us | }
758
+ 7238523.797790 | 0) 13.406 us | }
759
+ 7238523.797791 | 0) | pick_next_task_fair() {
760
+ 7238523.797791 | 0) 0.073 us | check_cfs_rq_runtime();
761
+ 7238523.797792 | 0) | pick_next_entity() {
762
+ 7238523.797792 | 0) 0.076 us | clear_buddies();
763
+ 7238523.797793 | 0) 0.663 us | }
764
+ 7238523.797793 | 0) | put_prev_entity() {
765
+ 7238523.797793 | 0) 0.076 us | check_cfs_rq_runtime();
766
+ 7238523.797794 | 0) 0.598 us | }
767
+ 7238523.797794 | 0) | put_prev_entity() {
768
+ 7238523.797794 | 0) 0.078 us | check_cfs_rq_runtime();
769
+ 7238523.797795 | 0) 0.618 us | }
770
+ 7238523.797795 | 0) | set_next_entity() {
771
+ 7238523.797795 | 0) 0.096 us | update_stats_wait_end();
772
+ 7238523.797796 | 0) 0.738 us | }
773
+ 7238523.797796 | 0) 5.222 us | }
774
+ 7238523.797797 | 0) 0.078 us | paravirt_start_context_switch();
775
+ 7238523.797798 | 0) 0.071 us | xen_read_cr0();
776
+ 7238523.797799 | 0) | xen_write_cr0() {
777
+ 7238523.797799 | 0) 0.078 us | paravirt_get_lazy_mode();
778
+ 7238523.797800 | 0) 0.084 us | __xen_mc_entry();
779
+ 7238523.797800 | 0) 0.076 us | paravirt_get_lazy_mode();
780
+ 7238523.797801 | 0) 1.798 us | }
781
+ 7238523.797801 | 0) | xen_load_sp0() {
782
+ 7238523.797801 | 0) 0.080 us | paravirt_get_lazy_mode();
783
+ 7238523.797802 | 0) 0.076 us | __xen_mc_entry();
784
+ 7238523.797802 | 0) 0.073 us | paravirt_get_lazy_mode();
785
+ 7238523.797803 | 0) 1.623 us | }
786
+ 7238523.797803 | 0) | xen_load_tls() {
787
+ 7238523.797803 | 0) 0.082 us | paravirt_get_lazy_mode();
788
+ 7238523.797804 | 0) 0.084 us | paravirt_get_lazy_mode();
789
+ 7238523.797804 | 0) 0.136 us | load_TLS_descriptor();
790
+ 7238523.797805 | 0) 0.072 us | load_TLS_descriptor();
791
+ 7238523.797806 | 0) 0.080 us | load_TLS_descriptor();
792
+ 7238523.797806 | 0) 0.088 us | paravirt_get_lazy_mode();
793
+ 7238523.797807 | 0) 3.360 us | }
794
+ 7238523.797807 | 0) | xen_end_context_switch() {
795
+ 7238523.797807 | 0) 0.601 us | xen_mc_flush();
796
+ 7238523.797808 | 0) 0.098 us | paravirt_end_context_switch();
797
+ 7238523.797809 | 0) 1.902 us | }
798
+ 7238524.005649 | 0) | finish_task_switch() {
799
+ 7238524.005653 | 0) | xen_evtchn_do_upcall() {
800
+ 7238524.005653 | 0) | irq_enter() {
801
+ 7238524.005653 | 0) 0.138 us | rcu_irq_enter();
802
+ 7238524.005654 | 0) 0.753 us | }
803
+ 7238524.005654 | 0) 0.056 us | exit_idle();
804
+ 7238524.005655 | 0) | __xen_evtchn_do_upcall() {
805
+ 7238524.005655 | 0) | evtchn_2l_handle_events() {
806
+ 7238524.005655 | 0) 0.057 us | irq_from_virq();
807
+ 7238524.005656 | 0) | evtchn_from_irq() {
808
+ 7238524.005656 | 0) | irq_get_irq_data() {
809
+ 7238524.005656 | 0) 0.050 us | irq_to_desc();
810
+ 7238524.005656 | 0) 0.499 us | }
811
+ 7238524.005657 | 0) 0.958 us | }
812
+ 7238524.005657 | 0) | get_evtchn_to_irq() {
813
+ 7238524.005657 | 0) 0.057 us | evtchn_2l_max_channels();
814
+ 7238524.005658 | 0) 0.400 us | }
815
+ 7238524.005659 | 0) | generic_handle_irq() {
816
+ 7238524.005659 | 0) 0.052 us | irq_to_desc();
817
+ 7238524.005659 | 0) | handle_percpu_irq() {
818
+ 7238524.005659 | 0) | ack_dynirq() {
819
+ 7238524.005659 | 0) | evtchn_from_irq() {
820
+ 7238524.005660 | 0) | irq_get_irq_data() {
821
+ 7238524.005660 | 0) 0.056 us | irq_to_desc();
822
+ 7238524.005660 | 0) 0.439 us | }
823
+ 7238524.005660 | 0) 0.739 us | }
824
+ 7238524.005661 | 0) 0.051 us | irq_move_irq();
825
+ 7238524.005661 | 0) 0.051 us | evtchn_2l_clear_pending();
826
+ 7238524.005661 | 0) 1.963 us | }
827
+ 7238524.005662 | 0) | handle_irq_event_percpu() {
828
+ 7238524.005662 | 0) | xen_irq_work_interrupt() {
829
+ 7238524.005662 | 0) | irq_enter() {
830
+ 7238524.005662 | 0) 0.053 us | rcu_irq_enter();
831
+ 7238524.005663 | 0) 0.392 us | }
832
+ 7238524.005663 | 0) | __wake_up() {
833
+ 7238524.005663 | 0) 0.058 us | _raw_spin_lock_irqsave();
834
+ 7238524.005664 | 0) | __wake_up_common() {
835
+ 7238524.005664 | 0) | autoremove_wake_function() {
836
+ 7238524.005664 | 0) | default_wake_function() {
837
+ 7238524.005665 | 0) | try_to_wake_up() {
838
+ 7238524.005665 | 0) 0.226 us | _raw_spin_lock_irqsave();
839
+ 7238524.005665 | 0) 0.392 us | task_waking_fair();
840
+ 7238524.005666 | 0) | select_task_rq_fair() {
841
+ 7238524.005666 | 0) 0.067 us | source_load();
842
+ 7238524.005667 | 0) 0.057 us | target_load();
843
+ 7238524.005667 | 0) 0.065 us | idle_cpu();
844
+ 7238524.005668 | 0) 0.050 us | cpus_share_cache();
845
+ 7238524.005668 | 0) 0.080 us | idle_cpu();
846
+ 7238524.005668 | 0) 2.053 us | }
847
+ 7238524.005669 | 0) 0.051 us | _raw_spin_lock();
848
+ 7238524.005669 | 0) | ttwu_do_activate.constprop.124() {
849
+ 7238524.005669 | 0) | activate_task() {
850
+ 7238524.005669 | 0) | enqueue_task() {
851
+ 7238524.005669 | 0) 0.165 us | update_rq_clock();
852
+ 7238524.005670 | 0) | enqueue_task_fair() {
853
+ 7238524.005670 | 0) | enqueue_entity() {
854
+ 7238524.005670 | 0) 0.065 us | update_curr();
855
+ 7238524.005671 | 0) 0.078 us | __compute_runnable_contrib.part.51();
856
+ 7238524.005671 | 0) 0.070 us | __update_entity_load_avg_contrib();
857
+ 7238524.005671 | 0) 0.051 us | update_cfs_rq_blocked_load();
858
+ 7238524.005672 | 0) 0.069 us | account_entity_enqueue();
859
+ 7238524.005672 | 0) 0.132 us | update_cfs_shares();
860
+ 7238524.005673 | 0) 0.054 us | place_entity();
861
+ 7238524.005673 | 0) 0.081 us | __enqueue_entity();
862
+ 7238524.005673 | 0) 3.111 us | }
863
+ 7238524.005673 | 0) | enqueue_entity() {
864
+ 7238524.005674 | 0) 0.059 us | update_curr();
865
+ 7238524.005674 | 0) 0.057 us | update_cfs_rq_blocked_load();
866
+ 7238524.005674 | 0) 0.067 us | account_entity_enqueue();
867
+ 7238524.005675 | 0) 0.082 us | update_cfs_shares();
868
+ 7238524.005675 | 0) 0.120 us | place_entity();
869
+ 7238524.005675 | 0) 0.051 us | __enqueue_entity();
870
+ 7238524.005676 | 0) 2.075 us | }
871
+ 7238524.005676 | 0) 0.049 us | hrtick_update();
872
+ 7238524.005676 | 0) 6.167 us | }
873
+ 7238524.005676 | 0) 6.979 us | }
874
+ 7238524.005676 | 0) 7.317 us | }
875
+ 7238524.005677 | 0) | ttwu_do_wakeup() {
876
+ 7238524.005677 | 0) | check_preempt_curr() {
877
+ 7238524.005677 | 0) | resched_task() {
878
+ 7238524.005677 | 0) | xen_smp_send_reschedule() {
879
+ 7238524.005677 | 0) | xen_send_IPI_one() {
880
+ 7238524.005678 | 0) | notify_remote_via_irq() {
881
+ 7238524.005678 | 0) | evtchn_from_irq() {
882
+ 7238524.005678 | 0) | irq_get_irq_data() {
883
+ 7238524.005678 | 0) 0.051 us | irq_to_desc();
884
+ 7238524.005679 | 0) 0.545 us | }
885
+ 7238524.005679 | 0) 0.910 us | }
886
+ 7238524.005680 | 0) 1.962 us | } /* notify_remote_via_irq */
887
+ 7238524.005680 | 0) 2.332 us | }
888
+ 7238524.005680 | 0) 2.684 us | }
889
+ 7238524.005681 | 0) 3.606 us | }
890
+ 7238524.005681 | 0) 4.064 us | }
891
+ 7238524.005682 | 0) 5.129 us | }
892
+ 7238524.005682 | 0) 13.194 us | }
893
+ 7238524.005683 | 0) 0.066 us | _raw_spin_unlock();
894
+ 7238524.005683 | 0) 0.165 us | ttwu_stat();
895
+ 7238524.005684 | 0) 0.070 us | _raw_spin_unlock_irqrestore();
896
+ 7238524.005684 | 0) 19.634 us | }
897
+ 7238524.005685 | 0) 20.080 us | }
898
+ 7238524.005685 | 0) 20.608 us | }
899
+ 7238524.005685 | 0) 21.348 us | }
900
+ 7238524.005685 | 0) 0.084 us | _raw_spin_unlock_irqrestore();
901
+ 7238524.005686 | 0) 22.728 us | }
902
+ 7238524.005686 | 0) | irq_exit() {
903
+ 7238524.005687 | 0) 0.077 us | idle_cpu();
904
+ 7238524.005687 | 0) 0.093 us | rcu_irq_exit();
905
+ 7238524.005688 | 0) 1.101 us | }
906
+ 7238524.005688 | 0) 25.644 us | }
907
+ 7238524.005688 | 0) 0.138 us | add_interrupt_randomness();
908
+ 7238524.005689 | 0) 0.083 us | note_interrupt();
909
+ 7238524.005689 | 0) 27.672 us | }
910
+ 7238524.005690 | 0) 30.410 us | }
911
+ 7238524.005690 | 0) 31.458 us | }
912
+ 7238524.005690 | 0) 35.276 us | }
913
+ 7238524.005691 | 0) 35.797 us | }
914
+ 7238524.005691 | 0) | irq_exit() {
915
+ 7238524.005691 | 0) 0.066 us | idle_cpu();
916
+ 7238524.005692 | 0) 0.080 us | rcu_irq_exit();
917
+ 7238524.005692 | 0) 1.110 us | }
918
+ 7238524.005693 | 0) 39.440 us | }
919
+ 7238524.005693 | 0) 41.142 us | }
920
+ 7238524.005694 | 0) 207918.1 us | }
921
+ 7238524.005694 | 0) 207918.7 us | }
922
+ 7238524.005694 | 0) 207919.4 us | }
923
+ 7238524.005695 | 0) 0.068 us | down_read();
924
+ 7238524.005696 | 0) | copy_from_read_buf() {
925
+ 7238524.005697 | 0) | tty_audit_add_data() {
926
+ 7238524.005697 | 0) 0.233 us | _raw_spin_lock_irqsave();
927
+ 7238524.005698 | 0) 0.076 us | _raw_spin_unlock_irqrestore();
928
+ 7238524.005699 | 0) 0.076 us | _raw_spin_lock_irqsave();
929
+ 7238524.005699 | 0) 0.078 us | _raw_spin_unlock_irqrestore();
930
+ 7238524.005700 | 0) 2.696 us | }
931
+ 7238524.005700 | 0) 4.335 us | }
932
+ 7238524.005701 | 0) 0.086 us | copy_from_read_buf();
933
+ 7238524.005701 | 0) 0.074 us | n_tty_set_room();
934
+ 7238524.005702 | 0) 0.085 us | n_tty_write_wakeup();
935
+ 7238524.005702 | 0) | __wake_up() {
936
+ 7238524.005703 | 0) 0.061 us | _raw_spin_lock_irqsave();
937
+ 7238524.005703 | 0) | __wake_up_common() {
938
+ 7238524.005703 | 0) 0.080 us | pollwake();
939
+ 7238524.005704 | 0) 0.687 us | }
940
+ 7238524.005704 | 0) 0.063 us | _raw_spin_unlock_irqrestore();
941
+ 7238524.005705 | 0) 2.040 us | }
942
+ 7238524.005705 | 0) 0.071 us | n_tty_set_room();
943
+ 7238524.005706 | 0) 0.074 us | up_read();
944
+ 7238524.005706 | 0) | remove_wait_queue() {
945
+ 7238524.005706 | 0) 0.074 us | _raw_spin_lock_irqsave();
946
+ 7238524.005707 | 0) 0.069 us | _raw_spin_unlock_irqrestore();
947
+ 7238524.005707 | 0) 1.076 us | }
948
+ 7238524.005708 | 0) 0.139 us | mutex_unlock();
949
+ 7238524.005708 | 0) 207939.0 us | }
950
+ 7238524.005709 | 0) | tty_ldisc_deref() {
951
+ 7238524.005709 | 0) 0.077 us | ldsem_up_read();
952
+ 7238524.005710 | 0) 0.702 us | }
953
+ 7238524.005710 | 0) 0.068 us | get_seconds();
954
+ 7238524.005711 | 0) 207943.4 us | }
955
+ 7238524.005712 | 0) 0.301 us | __fsnotify_parent();
956
+ 7238524.005713 | 0) 0.157 us | fsnotify();
957
+ 7238524.005713 | 0) 207950.3 us | }
958
+ 7238524.005783 | 0) | vfs_read() {
959
+ 7238524.005784 | 0) | rw_verify_area() {
960
+ 7238524.005784 | 0) | security_file_permission() {
961
+ 7238524.005785 | 0) | apparmor_file_permission() {
962
+ 7238524.005785 | 0) 0.164 us | common_file_perm();
963
+ 7238524.005786 | 0) 0.790 us | }
964
+ 7238524.005786 | 0) 0.080 us | __fsnotify_parent();
965
+ 7238524.005787 | 0) 0.094 us | fsnotify();
966
+ 7238524.005787 | 0) 2.683 us | }
967
+ 7238524.005788 | 0) 3.313 us | }
968
+ 7238524.005788 | 0) | tty_read() {
969
+ 7238524.005788 | 0) 0.087 us | tty_paranoia_check();
970
+ 7238524.005789 | 0) | tty_ldisc_ref_wait() {
971
+ 7238524.005789 | 0) 0.080 us | ldsem_down_read();
972
+ 7238524.005790 | 0) 0.683 us | }
973
+ 7238524.005790 | 0) | n_tty_read() {
974
+ 7238524.005791 | 0) 0.080 us | _raw_spin_lock_irq();
975
+ 7238524.005791 | 0) 0.104 us | mutex_lock_interruptible();
976
+ 7238524.005792 | 0) 0.070 us | down_read();
977
+ 7238524.005792 | 0) | add_wait_queue() {
978
+ 7238524.005793 | 0) 0.079 us | _raw_spin_lock_irqsave();
979
+ 7238524.005793 | 0) 0.087 us | _raw_spin_unlock_irqrestore();
980
+ 7238524.005794 | 0) 1.147 us | }
981
+ 7238524.005794 | 0) 0.078 us | tty_hung_up_p();
982
+ 7238524.005795 | 0) 0.071 us | n_tty_set_room();
983
+ 7238524.005795 | 0) 0.077 us | up_read();
984
+ 7238524.005796 | 0) | schedule_timeout() {
985
+ 7238524.005796 | 0) | schedule() {
986
+ 7238524.005796 | 0) | __schedule() {
987
+ 7238524.005797 | 0) 0.087 us | rcu_note_context_switch();
988
+ 7238524.005797 | 0) 0.075 us | _raw_spin_lock_irq();
989
+ 7238524.005798 | 0) | deactivate_task() {
990
+ 7238524.005798 | 0) | dequeue_task() {
991
+ 7238524.005798 | 0) 0.177 us | update_rq_clock();
992
+ 7238524.005799 | 0) | dequeue_task_fair() {
993
+ 7238524.005799 | 0) | dequeue_entity() {
994
+ 7238524.005800 | 0) | update_curr() {
995
+ 7238524.005800 | 0) 0.334 us | cpuacct_charge();
996
+ 7238524.005801 | 0) 1.199 us | }
997
+ 7238524.005802 | 0) 0.081 us | __update_entity_load_avg_contrib();
998
+ 7238524.005802 | 0) 0.064 us | update_cfs_rq_blocked_load();
999
+ 7238524.005803 | 0) 0.076 us | clear_buddies();
1000
+ 7238524.005803 | 0) 0.079 us | account_entity_dequeue();
1001
+ 7238524.005804 | 0) | update_cfs_shares() {
1002
+ 7238524.005804 | 0) 0.108 us | update_curr();
1003
+ 7238524.005805 | 0) 0.083 us | account_entity_dequeue();
1004
+ 7238524.005805 | 0) 0.084 us | account_entity_enqueue();
1005
+ 7238524.005806 | 0) 1.869 us | }
1006
+ 7238524.005806 | 0) 6.530 us | } /* dequeue_entity */
1007
+ 7238524.005807 | 0) | dequeue_entity() {
1008
+ 7238524.005807 | 0) 0.104 us | update_curr();
1009
+ 7238524.005808 | 0) 0.115 us | __update_entity_load_avg_contrib();
1010
+ 7238524.005808 | 0) 0.069 us | update_cfs_rq_blocked_load();
1011
+ 7238524.005809 | 0) 0.066 us | clear_buddies();
1012
+ 7238524.005809 | 0) 0.086 us | account_entity_dequeue();
1013
+ 7238524.005810 | 0) 0.102 us | update_cfs_shares();
1014
+ 7238524.005811 | 0) 3.907 us | }
1015
+ 7238524.005811 | 0) 0.071 us | hrtick_update();
1016
+ 7238524.005812 | 0) 12.301 us | }
1017
+ 7238524.005812 | 0) 13.546 us | }
1018
+ 7238524.005812 | 0) 14.105 us | }
1019
+ 7238524.005812 | 0) | pick_next_task_fair() {
1020
+ 7238524.005813 | 0) 0.078 us | check_cfs_rq_runtime();
1021
+ 7238524.005813 | 0) | pick_next_entity() {
1022
+ 7238524.005814 | 0) 0.071 us | clear_buddies();
1023
+ 7238524.005815 | 0) 0.585 us | }
1024
+ 7238524.005815 | 0) | put_prev_entity() {
1025
+ 7238524.005815 | 0) 0.073 us | check_cfs_rq_runtime();
1026
+ 7238524.005816 | 0) 0.717 us | }
1027
+ 7238524.005816 | 0) | put_prev_entity() {
1028
+ 7238524.005817 | 0) 0.080 us | check_cfs_rq_runtime();
1029
+ 7238524.005817 | 0) 0.687 us | }
1030
+ 7238524.005817 | 0) | set_next_entity() {
1031
+ 7238524.005818 | 0) 0.091 us | update_stats_wait_end();
1032
+ 7238524.005818 | 0) 0.786 us | }
1033
+ 7238524.005819 | 0) 6.135 us | }
1034
+ 7238524.005820 | 0) 0.091 us | paravirt_start_context_switch();
1035
+ 7238524.005821 | 0) 0.089 us | xen_read_cr0();
1036
+ 7238524.005821 | 0) | xen_write_cr0() {
1037
+ 7238524.005821 | 0) 0.078 us | paravirt_get_lazy_mode();
1038
+ 7238524.005822 | 0) 0.083 us | __xen_mc_entry();
1039
+ 7238524.005823 | 0) 0.074 us | paravirt_get_lazy_mode();
1040
+ 7238524.005823 | 0) 1.657 us | }
1041
+ 7238524.005823 | 0) | xen_load_sp0() {
1042
+ 7238524.005824 | 0) 0.074 us | paravirt_get_lazy_mode();
1043
+ 7238524.005824 | 0) 0.083 us | __xen_mc_entry();
1044
+ 7238524.005825 | 0) 0.087 us | paravirt_get_lazy_mode();
1045
+ 7238524.005825 | 0) 1.764 us | }
1046
+ 7238524.005826 | 0) | xen_load_tls() {
1047
+ 7238524.005826 | 0) 0.077 us | paravirt_get_lazy_mode();
1048
+ 7238524.005826 | 0) 0.084 us | paravirt_get_lazy_mode();
1049
+ 7238524.005827 | 0) 0.150 us | load_TLS_descriptor();
1050
+ 7238524.005828 | 0) 0.082 us | load_TLS_descriptor();
1051
+ 7238524.005828 | 0) 0.084 us | load_TLS_descriptor();
1052
+ 7238524.005829 | 0) 0.076 us | paravirt_get_lazy_mode();
1053
+ 7238524.005829 | 0) 3.388 us | }
1054
+ 7238524.005829 | 0) | xen_end_context_switch() {
1055
+ 7238524.005830 | 0) 0.731 us | xen_mc_flush();
1056
+ 7238524.005831 | 0) 0.093 us | paravirt_end_context_switch();
1057
+ 7238524.005831 | 0) 1.836 us | }
1058
+ 7238524.141853 | 0) | finish_task_switch() {
1059
+ 7238524.141857 | 0) | xen_evtchn_do_upcall() {
1060
+ 7238524.141858 | 0) | irq_enter() {
1061
+ 7238524.141858 | 0) 0.133 us | rcu_irq_enter();
1062
+ 7238524.141859 | 0) 0.766 us | }
1063
+ 7238524.141859 | 0) 0.056 us | exit_idle();
1064
+ 7238524.141859 | 0) | __xen_evtchn_do_upcall() {
1065
+ 7238524.141859 | 0) | evtchn_2l_handle_events() {
1066
+ 7238524.141860 | 0) 0.049 us | irq_from_virq();
1067
+ 7238524.141860 | 0) | evtchn_from_irq() {
1068
+ 7238524.141860 | 0) | irq_get_irq_data() {
1069
+ 7238524.141860 | 0) 0.058 us | irq_to_desc();
1070
+ 7238524.141861 | 0) 0.498 us | }
1071
+ 7238524.141861 | 0) 0.897 us | }
1072
+ 7238524.141861 | 0) | get_evtchn_to_irq() {
1073
+ 7238524.141861 | 0) 0.049 us | evtchn_2l_max_channels();
1074
+ 7238524.141862 | 0) 0.392 us | }
1075
+ 7238524.141862 | 0) | generic_handle_irq() {
1076
+ 7238524.141862 | 0) 0.061 us | irq_to_desc();
1077
+ 7238524.141862 | 0) | handle_percpu_irq() {
1078
+ 7238524.141863 | 0) | ack_dynirq() {
1079
+ 7238524.141863 | 0) | evtchn_from_irq() {
1080
+ 7238524.141863 | 0) | irq_get_irq_data() {
1081
+ 7238524.141863 | 0) 0.051 us | irq_to_desc();
1082
+ 7238524.141863 | 0) 0.439 us | }
1083
+ 7238524.141864 | 0) 0.745 us | }
1084
+ 7238524.141864 | 0) 0.049 us | irq_move_irq();
1085
+ 7238524.141864 | 0) 0.060 us | evtchn_2l_clear_pending();
1086
+ 7238524.141864 | 0) 1.714 us | }
1087
+ 7238524.141865 | 0) | handle_irq_event_percpu() {
1088
+ 7238524.141865 | 0) | xen_irq_work_interrupt() {
1089
+ 7238524.141865 | 0) | irq_enter() {
1090
+ 7238524.141865 | 0) 0.053 us | rcu_irq_enter();
1091
+ 7238524.141866 | 0) 0.371 us | }
1092
+ 7238524.141866 | 0) | __wake_up() {
1093
+ 7238524.141866 | 0) 0.051 us | _raw_spin_lock_irqsave();
1094
+ 7238524.141867 | 0) | __wake_up_common() {
1095
+ 7238524.141867 | 0) | autoremove_wake_function() {
1096
+ 7238524.141867 | 0) | default_wake_function() {
1097
+ 7238524.141867 | 0) | try_to_wake_up() {
1098
+ 7238524.141868 | 0) 0.213 us | _raw_spin_lock_irqsave();
1099
+ 7238524.141869 | 0) 0.196 us | task_waking_fair();
1100
+ 7238524.141870 | 0) | select_task_rq_fair() {
1101
+ 7238524.141870 | 0) 0.051 us | source_load();
1102
+ 7238524.141870 | 0) 0.049 us | target_load();
1103
+ 7238524.141871 | 0) 0.065 us | idle_cpu();
1104
+ 7238524.141871 | 0) 0.051 us | cpus_share_cache();
1105
+ 7238524.141872 | 0) 0.078 us | idle_cpu();
1106
+ 7238524.141872 | 0) 2.427 us | }
1107
+ 7238524.141873 | 0) 0.050 us | _raw_spin_lock();
1108
+ 7238524.141873 | 0) | ttwu_do_activate.constprop.124() {
1109
+ 7238524.141873 | 0) | activate_task() {
1110
+ 7238524.141873 | 0) | enqueue_task() {
1111
+ 7238524.141873 | 0) 0.170 us | update_rq_clock();
1112
+ 7238524.141874 | 0) | enqueue_task_fair() {
1113
+ 7238524.141874 | 0) | enqueue_entity() {
1114
+ 7238524.141874 | 0) 0.058 us | update_curr();
1115
+ 7238524.141875 | 0) 0.076 us | __compute_runnable_contrib.part.51();
1116
+ 7238524.141875 | 0) 0.059 us | __update_entity_load_avg_contrib();
1117
+ 7238524.141875 | 0) 0.060 us | update_cfs_rq_blocked_load();
1118
+ 7238524.141876 | 0) 0.064 us | account_entity_enqueue();
1119
+ 7238524.141876 | 0) 0.123 us | update_cfs_shares();
1120
+ 7238524.141876 | 0) 0.055 us | place_entity();
1121
+ 7238524.141877 | 0) 0.078 us | __enqueue_entity();
1122
+ 7238524.141877 | 0) 3.039 us | }
1123
+ 7238524.141877 | 0) | enqueue_entity() {
1124
+ 7238524.141877 | 0) 0.065 us | update_curr();
1125
+ 7238524.141878 | 0) 0.050 us | update_cfs_rq_blocked_load();
1126
+ 7238524.141878 | 0) 0.049 us | account_entity_enqueue();
1127
+ 7238524.141878 | 0) 0.081 us | update_cfs_shares();
1128
+ 7238524.141879 | 0) 0.049 us | place_entity();
1129
+ 7238524.141879 | 0) 0.051 us | __enqueue_entity();
1130
+ 7238524.141879 | 0) 2.021 us | }
1131
+ 7238524.141880 | 0) 0.049 us | hrtick_update();
1132
+ 7238524.141880 | 0) 6.040 us | }
1133
+ 7238524.141880 | 0) 6.874 us | }
1134
+ 7238524.141880 | 0) 7.212 us | }
1135
+ 7238524.141880 | 0) | ttwu_do_wakeup() {
1136
+ 7238524.141881 | 0) | check_preempt_curr() {
1137
+ 7238524.141881 | 0) | resched_task() {
1138
+ 7238524.141881 | 0) | xen_smp_send_reschedule() {
1139
+ 7238524.141881 | 0) | xen_send_IPI_one() {
1140
+ 7238524.141881 | 0) | notify_remote_via_irq() {
1141
+ 7238524.141881 | 0) | evtchn_from_irq() {
1142
+ 7238524.141882 | 0) | irq_get_irq_data() {
1143
+ 7238524.141882 | 0) 0.049 us | irq_to_desc();
1144
+ 7238524.141882 | 0) 0.497 us | }
1145
+ 7238524.141882 | 0) 0.860 us | }
1146
+ 7238524.141883 | 0) 1.882 us | } /* notify_remote_via_irq */
1147
+ 7238524.141884 | 0) 2.257 us | }
1148
+ 7238524.141884 | 0) 2.619 us | }
1149
+ 7238524.141884 | 0) 3.079 us | }
1150
+ 7238524.141884 | 0) 3.526 us | }
1151
+ 7238524.141885 | 0) 4.485 us | }
1152
+ 7238524.141885 | 0) 12.333 us | }
1153
+ 7238524.141885 | 0) 0.062 us | _raw_spin_unlock();
1154
+ 7238524.141886 | 0) 0.169 us | ttwu_stat();
1155
+ 7238524.141887 | 0) 0.076 us | _raw_spin_unlock_irqrestore();
1156
+ 7238524.141887 | 0) 19.434 us | }
1157
+ 7238524.141887 | 0) 19.909 us | }
1158
+ 7238524.141888 | 0) 20.377 us | }
1159
+ 7238524.141888 | 0) 21.020 us | }
1160
+ 7238524.141888 | 0) 0.075 us | _raw_spin_unlock_irqrestore();
1161
+ 7238524.141888 | 0) 22.268 us | }
1162
+ 7238524.141889 | 0) | irq_exit() {
1163
+ 7238524.141889 | 0) 0.087 us | idle_cpu();
1164
+ 7238524.141889 | 0) 0.101 us | rcu_irq_exit();
1165
+ 7238524.141890 | 0) 1.127 us | }
1166
+ 7238524.141890 | 0) 25.163 us | }
1167
+ 7238524.141891 | 0) 0.133 us | add_interrupt_randomness();
1168
+ 7238524.141892 | 0) 0.083 us | note_interrupt();
1169
+ 7238524.141892 | 0) 27.453 us | }
1170
+ 7238524.141893 | 0) 30.024 us | }
1171
+ 7238524.141893 | 0) 30.898 us | }
1172
+ 7238524.141893 | 0) 33.683 us | }
1173
+ 7238524.141893 | 0) 34.097 us | }
1174
+ 7238524.141894 | 0) | irq_exit() {
1175
+ 7238524.141894 | 0) 0.065 us | idle_cpu();
1176
+ 7238524.141895 | 0) 0.076 us | rcu_irq_exit();
1177
+ 7238524.141895 | 0) 1.135 us | }
1178
+ 7238524.141895 | 0) 37.746 us | }
1179
+ 7238524.141896 | 0) 39.634 us | }
1180
+ 7238524.141897 | 0) 136100.0 us | }
1181
+ 7238524.141897 | 0) 136100.6 us | }
1182
+ 7238524.141897 | 0) 136101.4 us | }
1183
+ 7238524.141898 | 0) 0.093 us | down_read();
1184
+ 7238524.141899 | 0) | copy_from_read_buf() {
1185
+ 7238524.141900 | 0) | tty_audit_add_data() {
1186
+ 7238524.141900 | 0) 0.238 us | _raw_spin_lock_irqsave();
1187
+ 7238524.141901 | 0) 0.069 us | _raw_spin_unlock_irqrestore();
1188
+ 7238524.141901 | 0) 0.090 us | _raw_spin_lock_irqsave();
1189
+ 7238524.141902 | 0) 0.077 us | _raw_spin_unlock_irqrestore();
1190
+ 7238524.141902 | 0) 2.513 us | }
1191
+ 7238524.141903 | 0) 3.632 us | }
1192
+ 7238524.141903 | 0) 0.085 us | copy_from_read_buf();
1193
+ 7238524.141904 | 0) 0.066 us | n_tty_set_room();
1194
+ 7238524.141905 | 0) 0.067 us | n_tty_write_wakeup();
1195
+ 7238524.141905 | 0) | __wake_up() {
1196
+ 7238524.141906 | 0) 0.070 us | _raw_spin_lock_irqsave();
1197
+ 7238524.141906 | 0) | __wake_up_common() {
1198
+ 7238524.141906 | 0) 0.086 us | pollwake();
1199
+ 7238524.141907 | 0) 0.620 us | }
1200
+ 7238524.141907 | 0) 0.064 us | _raw_spin_unlock_irqrestore();
1201
+ 7238524.141907 | 0) 1.980 us | }
1202
+ 7238524.141908 | 0) 0.059 us | n_tty_set_room();
1203
+ 7238524.141909 | 0) 0.071 us | up_read();
1204
+ 7238524.141909 | 0) | remove_wait_queue() {
1205
+ 7238524.141909 | 0) 0.079 us | _raw_spin_lock_irqsave();
1206
+ 7238524.141910 | 0) 0.082 us | _raw_spin_unlock_irqrestore();
1207
+ 7238524.141910 | 0) 1.164 us | }
1208
+ 7238524.141910 | 0) 0.142 us | mutex_unlock();
1209
+ 7238524.141911 | 0) 136120.9 us | }
1210
+ 7238524.141911 | 0) | tty_ldisc_deref() {
1211
+ 7238524.141912 | 0) 0.062 us | ldsem_up_read();
1212
+ 7238524.141912 | 0) 0.593 us | }
1213
+ 7238524.141912 | 0) 0.079 us | get_seconds();
1214
+ 7238524.141913 | 0) 136125.1 us | }
1215
+ 7238524.141914 | 0) 0.280 us | __fsnotify_parent();
1216
+ 7238524.141915 | 0) 0.187 us | fsnotify();
1217
+ 7238524.141915 | 0) 136131.2 us | }
1218
+ 7238524.141988 | 0) | vfs_read() {
1219
+ 7238524.141989 | 0) | rw_verify_area() {
1220
+ 7238524.141989 | 0) | security_file_permission() {
1221
+ 7238524.141989 | 0) | apparmor_file_permission() {
1222
+ 7238524.141990 | 0) 0.149 us | common_file_perm();
1223
+ 7238524.141990 | 0) 0.774 us | }
1224
+ 7238524.141991 | 0) 0.079 us | __fsnotify_parent();
1225
+ 7238524.141991 | 0) 0.095 us | fsnotify();
1226
+ 7238524.141992 | 0) 2.558 us | }
1227
+ 7238524.141992 | 0) 3.300 us | }
1228
+ 7238524.141993 | 0) | tty_read() {
1229
+ 7238524.141993 | 0) 0.076 us | tty_paranoia_check();
1230
+ 7238524.141994 | 0) | tty_ldisc_ref_wait() {
1231
+ 7238524.141994 | 0) 0.081 us | ldsem_down_read();
1232
+ 7238524.141995 | 0) 0.689 us | }
1233
+ 7238524.141995 | 0) | n_tty_read() {
1234
+ 7238524.141995 | 0) 0.073 us | _raw_spin_lock_irq();
1235
+ 7238524.141996 | 0) 0.110 us | mutex_lock_interruptible();
1236
+ 7238524.141997 | 0) 0.069 us | down_read();
1237
+ 7238524.141998 | 0) | add_wait_queue() {
1238
+ 7238524.141998 | 0) 0.079 us | _raw_spin_lock_irqsave();
1239
+ 7238524.141999 | 0) 0.078 us | _raw_spin_unlock_irqrestore();
1240
+ 7238524.141999 | 0) 1.201 us | }
1241
+ 7238524.142000 | 0) 0.067 us | tty_hung_up_p();
1242
+ 7238524.142000 | 0) 0.078 us | n_tty_set_room();
1243
+ 7238524.142001 | 0) 0.079 us | up_read();
1244
+ 7238524.142001 | 0) | schedule_timeout() {
1245
+ 7238524.142002 | 0) | schedule() {
1246
+ 7238524.142002 | 0) | __schedule() {
1247
+ 7238524.142002 | 0) 0.076 us | rcu_note_context_switch();
1248
+ 7238524.142003 | 0) 0.080 us | _raw_spin_lock_irq();
1249
+ 7238524.142004 | 0) | deactivate_task() {
1250
+ 7238524.142004 | 0) | dequeue_task() {
1251
+ 7238524.142004 | 0) 0.178 us | update_rq_clock();
1252
+ 7238524.142005 | 0) | dequeue_task_fair() {
1253
+ 7238524.142005 | 0) | dequeue_entity() {
1254
+ 7238524.142005 | 0) | update_curr() {
1255
+ 7238524.142006 | 0) 0.263 us | cpuacct_charge();
1256
+ 7238524.142007 | 0) 0.965 us | }
1257
+ 7238524.142007 | 0) 0.075 us | update_cfs_rq_blocked_load();
1258
+ 7238524.142008 | 0) 0.065 us | clear_buddies();
1259
+ 7238524.142008 | 0) 0.084 us | account_entity_dequeue();
1260
+ 7238524.142009 | 0) | update_cfs_shares() {
1261
+ 7238524.142009 | 0) 0.115 us | update_curr();
1262
+ 7238524.142010 | 0) 0.084 us | account_entity_dequeue();
1263
+ 7238524.142010 | 0) 0.068 us | account_entity_enqueue();
1264
+ 7238524.142011 | 0) 1.754 us | }
1265
+ 7238524.142011 | 0) 5.580 us | }
1266
+ 7238524.142012 | 0) | dequeue_entity() {
1267
+ 7238524.142012 | 0) 0.089 us | update_curr();
1268
+ 7238524.142012 | 0) 0.101 us | update_cfs_rq_blocked_load();
1269
+ 7238524.142013 | 0) 0.076 us | clear_buddies();
1270
+ 7238524.142013 | 0) 0.078 us | account_entity_dequeue();
1271
+ 7238524.142014 | 0) 0.076 us | update_cfs_shares();
1272
+ 7238524.142015 | 0) 3.071 us | }
1273
+ 7238524.142015 | 0) 0.078 us | hrtick_update();
1274
+ 7238524.142016 | 0) 10.525 us | }
1275
+ 7238524.142016 | 0) 11.803 us | }
1276
+ 7238524.142016 | 0) 12.447 us | }
1277
+ 7238524.142017 | 0) | pick_next_task_fair() {
1278
+ 7238524.142017 | 0) 0.069 us | check_cfs_rq_runtime();
1279
+ 7238524.142017 | 0) | pick_next_entity() {
1280
+ 7238524.142018 | 0) 0.061 us | clear_buddies();
1281
+ 7238524.142018 | 0) 0.601 us | }
1282
+ 7238524.142019 | 0) | put_prev_entity() {
1283
+ 7238524.142019 | 0) 0.069 us | check_cfs_rq_runtime();
1284
+ 7238524.142019 | 0) 0.605 us | }
1285
+ 7238524.142020 | 0) | put_prev_entity() {
1286
+ 7238524.142020 | 0) 0.076 us | check_cfs_rq_runtime();
1287
+ 7238524.142020 | 0) 0.609 us | }
1288
+ 7238524.142021 | 0) | set_next_entity() {
1289
+ 7238524.142021 | 0) 0.088 us | update_stats_wait_end();
1290
+ 7238524.142022 | 0) 0.768 us | }
1291
+ 7238524.142022 | 0) 5.183 us | }
1292
+ 7238524.142023 | 0) 0.080 us | paravirt_start_context_switch();
1293
+ 7238524.142024 | 0) 0.076 us | xen_read_cr0();
1294
+ 7238524.142024 | 0) | xen_write_cr0() {
1295
+ 7238524.142025 | 0) 0.088 us | paravirt_get_lazy_mode();
1296
+ 7238524.142025 | 0) 0.096 us | __xen_mc_entry();
1297
+ 7238524.142026 | 0) 0.083 us | paravirt_get_lazy_mode();
1298
+ 7238524.142026 | 0) 1.802 us | }
1299
+ 7238524.142026 | 0) | xen_load_sp0() {
1300
+ 7238524.142027 | 0) 0.074 us | paravirt_get_lazy_mode();
1301
+ 7238524.142027 | 0) 0.098 us | __xen_mc_entry();
1302
+ 7238524.142028 | 0) 0.073 us | paravirt_get_lazy_mode();
1303
+ 7238524.142029 | 0) 2.289 us | }
1304
+ 7238524.142029 | 0) | xen_load_tls() {
1305
+ 7238524.142029 | 0) 0.073 us | paravirt_get_lazy_mode();
1306
+ 7238524.142030 | 0) 0.079 us | paravirt_get_lazy_mode();
1307
+ 7238524.142031 | 0) 0.135 us | load_TLS_descriptor();
1308
+ 7238524.142031 | 0) 0.082 us | load_TLS_descriptor();
1309
+ 7238524.142032 | 0) 0.091 us | load_TLS_descriptor();
1310
+ 7238524.142032 | 0) 0.081 us | paravirt_get_lazy_mode();
1311
+ 7238524.142033 | 0) 3.306 us | }
1312
+ 7238524.142033 | 0) | xen_end_context_switch() {
1313
+ 7238524.142033 | 0) 0.697 us | xen_mc_flush();
1314
+ 7238524.142034 | 0) 0.083 us | paravirt_end_context_switch();
1315
+ 7238524.142035 | 0) 1.876 us | }
1316
+ 7238524.269404 | 0) | finish_task_switch() {
1317
+ 7238524.269408 | 0) | xen_evtchn_do_upcall() {
1318
+ 7238524.269408 | 0) | irq_enter() {
1319
+ 7238524.269408 | 0) 0.132 us | rcu_irq_enter();
1320
+ 7238524.269409 | 0) 0.948 us | }
1321
+ 7238524.269409 | 0) 0.063 us | exit_idle();
1322
+ 7238524.269410 | 0) | __xen_evtchn_do_upcall() {
1323
+ 7238524.269410 | 0) | evtchn_2l_handle_events() {
1324
+ 7238524.269410 | 0) 0.057 us | irq_from_virq();
1325
+ 7238524.269411 | 0) | evtchn_from_irq() {
1326
+ 7238524.269411 | 0) | irq_get_irq_data() {
1327
+ 7238524.269411 | 0) 0.058 us | irq_to_desc();
1328
+ 7238524.269412 | 0) 0.579 us | }
1329
+ 7238524.269412 | 0) 0.898 us | }
1330
+ 7238524.269412 | 0) | get_evtchn_to_irq() {
1331
+ 7238524.269412 | 0) 0.049 us | evtchn_2l_max_channels();
1332
+ 7238524.269412 | 0) 0.390 us | }
1333
+ 7238524.269413 | 0) | generic_handle_irq() {
1334
+ 7238524.269413 | 0) 0.051 us | irq_to_desc();
1335
+ 7238524.269413 | 0) | handle_percpu_irq() {
1336
+ 7238524.269413 | 0) | ack_dynirq() {
1337
+ 7238524.269413 | 0) | evtchn_from_irq() {
1338
+ 7238524.269414 | 0) | irq_get_irq_data() {
1339
+ 7238524.269414 | 0) 0.057 us | irq_to_desc();
1340
+ 7238524.269414 | 0) 0.446 us | }
1341
+ 7238524.269414 | 0) 0.754 us | }
1342
+ 7238524.269414 | 0) 0.057 us | irq_move_irq();
1343
+ 7238524.269415 | 0) 0.057 us | evtchn_2l_clear_pending();
1344
+ 7238524.269415 | 0) 1.718 us | }
1345
+ 7238524.269415 | 0) | handle_irq_event_percpu() {
1346
+ 7238524.269416 | 0) | xen_irq_work_interrupt() {
1347
+ 7238524.269416 | 0) | irq_enter() {
1348
+ 7238524.269416 | 0) 0.059 us | rcu_irq_enter();
1349
+ 7238524.269416 | 0) 0.380 us | }
1350
+ 7238524.269417 | 0) | __wake_up() {
1351
+ 7238524.269417 | 0) 0.051 us | _raw_spin_lock_irqsave();
1352
+ 7238524.269417 | 0) | __wake_up_common() {
1353
+ 7238524.269417 | 0) | autoremove_wake_function() {
1354
+ 7238524.269418 | 0) | default_wake_function() {
1355
+ 7238524.269418 | 0) | try_to_wake_up() {
1356
+ 7238524.269418 | 0) 0.230 us | _raw_spin_lock_irqsave();
1357
+ 7238524.269419 | 0) 0.197 us | task_waking_fair();
1358
+ 7238524.269419 | 0) | select_task_rq_fair() {
1359
+ 7238524.269419 | 0) 0.050 us | source_load();
1360
+ 7238524.269420 | 0) 0.057 us | target_load();
1361
+ 7238524.269420 | 0) 0.065 us | idle_cpu();
1362
+ 7238524.269421 | 0) 0.055 us | cpus_share_cache();
1363
+ 7238524.269421 | 0) 0.076 us | idle_cpu();
1364
+ 7238524.269421 | 0) 2.041 us | }
1365
+ 7238524.269422 | 0) 0.050 us | _raw_spin_lock();
1366
+ 7238524.269422 | 0) | ttwu_do_activate.constprop.124() {
1367
+ 7238524.269422 | 0) | activate_task() {
1368
+ 7238524.269422 | 0) | enqueue_task() {
1369
+ 7238524.269422 | 0) 0.175 us | update_rq_clock();
1370
+ 7238524.269423 | 0) | enqueue_task_fair() {
1371
+ 7238524.269423 | 0) | enqueue_entity() {
1372
+ 7238524.269423 | 0) 0.065 us | update_curr();
1373
+ 7238524.269424 | 0) 0.070 us | __compute_runnable_contrib.part.51();
1374
+ 7238524.269424 | 0) 0.052 us | __update_entity_load_avg_contrib();
1375
+ 7238524.269424 | 0) 0.050 us | update_cfs_rq_blocked_load();
1376
+ 7238524.269425 | 0) 0.059 us | account_entity_enqueue();
1377
+ 7238524.269426 | 0) 0.134 us | update_cfs_shares();
1378
+ 7238524.269426 | 0) 0.055 us | place_entity();
1379
+ 7238524.269427 | 0) 0.083 us | __enqueue_entity();
1380
+ 7238524.269427 | 0) 4.026 us | }
1381
+ 7238524.269427 | 0) | enqueue_entity() {
1382
+ 7238524.269428 | 0) 0.065 us | update_curr();
1383
+ 7238524.269428 | 0) 0.051 us | update_cfs_rq_blocked_load();
1384
+ 7238524.269428 | 0) 0.058 us | account_entity_enqueue();
1385
+ 7238524.269429 | 0) 0.082 us | update_cfs_shares();
1386
+ 7238524.269429 | 0) 0.105 us | place_entity();
1387
+ 7238524.269429 | 0) 0.049 us | __enqueue_entity();
1388
+ 7238524.269430 | 0) 2.247 us | }
1389
+ 7238524.269430 | 0) 0.050 us | hrtick_update();
1390
+ 7238524.269430 | 0) 7.310 us | }
1391
+ 7238524.269430 | 0) 8.101 us | }
1392
+ 7238524.269431 | 0) 8.449 us | }
1393
+ 7238524.269431 | 0) | ttwu_do_wakeup() {
1394
+ 7238524.269431 | 0) | check_preempt_curr() {
1395
+ 7238524.269431 | 0) | resched_task() {
1396
+ 7238524.269431 | 0) | xen_smp_send_reschedule() {
1397
+ 7238524.269432 | 0) | xen_send_IPI_one() {
1398
+ 7238524.269432 | 0) | notify_remote_via_irq() {
1399
+ 7238524.269432 | 0) | evtchn_from_irq() {
1400
+ 7238524.269432 | 0) | irq_get_irq_data() {
1401
+ 7238524.269432 | 0) 0.051 us | irq_to_desc();
1402
+ 7238524.269433 | 0) 0.493 us | }
1403
+ 7238524.269433 | 0) 0.857 us | }
1404
+ 7238524.269434 | 0) 1.909 us | } /* notify_remote_via_irq */
1405
+ 7238524.269434 | 0) 2.288 us | }
1406
+ 7238524.269434 | 0) 2.655 us | }
1407
+ 7238524.269434 | 0) 3.127 us | }
1408
+ 7238524.269435 | 0) 3.590 us | }
1409
+ 7238524.269435 | 0) 4.506 us | }
1410
+ 7238524.269436 | 0) 13.594 us | }
1411
+ 7238524.269436 | 0) 0.070 us | _raw_spin_unlock();
1412
+ 7238524.269436 | 0) 0.163 us | ttwu_stat();
1413
+ 7238524.269437 | 0) 0.080 us | _raw_spin_unlock_irqrestore();
1414
+ 7238524.269438 | 0) 19.508 us | }
1415
+ 7238524.269438 | 0) 19.991 us | }
1416
+ 7238524.269438 | 0) 20.486 us | }
1417
+ 7238524.269438 | 0) 21.024 us | }
1418
+ 7238524.269438 | 0) 0.076 us | _raw_spin_unlock_irqrestore();
1419
+ 7238524.269439 | 0) 22.247 us | }
1420
+ 7238524.269439 | 0) | irq_exit() {
1421
+ 7238524.269439 | 0) 0.101 us | idle_cpu();
1422
+ 7238524.269440 | 0) 0.099 us | rcu_irq_exit();
1423
+ 7238524.269441 | 0) 1.207 us | }
1424
+ 7238524.269441 | 0) 25.035 us | }
1425
+ 7238524.269441 | 0) 0.131 us | add_interrupt_randomness();
1426
+ 7238524.269442 | 0) 0.076 us | note_interrupt();
1427
+ 7238524.269442 | 0) 26.909 us | }
1428
+ 7238524.269443 | 0) 29.377 us | }
1429
+ 7238524.269443 | 0) 30.139 us | }
1430
+ 7238524.269443 | 0) 32.759 us | }
1431
+ 7238524.269443 | 0) 33.204 us | }
1432
+ 7238524.269444 | 0) | irq_exit() {
1433
+ 7238524.269444 | 0) | __do_softirq() {
1434
+ 7238524.269444 | 0) 0.068 us | msecs_to_jiffies();
1435
+ 7238524.269445 | 0) | rcu_process_callbacks() {
1436
+ 7238524.269445 | 0) 0.070 us | note_gp_changes();
1437
+ 7238524.269445 | 0) 0.064 us | _raw_spin_lock_irqsave();
1438
+ 7238524.269446 | 0) 0.135 us | rcu_accelerate_cbs();
1439
+ 7238524.269447 | 0) | rcu_report_qs_rnp() {
1440
+ 7238524.269447 | 0) 0.061 us | _raw_spin_unlock_irqrestore();
1441
+ 7238524.269448 | 0) 0.779 us | }
1442
+ 7238524.269448 | 0) 0.081 us | cpu_needs_another_gp();
1443
+ 7238524.269449 | 0) | file_free_rcu() {
1444
+ 7238524.269449 | 0) 0.291 us | kmem_cache_free();
1445
+ 7238524.269450 | 0) 1.139 us | }
1446
+ 7238524.269451 | 0) | put_cred_rcu() {
1447
+ 7238524.269451 | 0) | security_cred_free() {
1448
+ 7238524.269452 | 0) | apparmor_cred_free() {
1449
+ 7238524.269453 | 0) | aa_free_task_context() {
1450
+ 7238524.269453 | 0) | kzfree() {
1451
+ 7238524.269454 | 0) 0.380 us | ksize();
1452
+ 7238524.269455 | 0) 0.147 us | kfree();
1453
+ 7238524.269455 | 0) 1.602 us | }
1454
+ 7238524.269455 | 0) 2.631 us | }
1455
+ 7238524.269456 | 0) 3.611 us | } /* apparmor_cred_free */
1456
+ 7238524.269456 | 0) 4.927 us | }
1457
+ 7238524.269457 | 0) 0.071 us | key_put();
1458
+ 7238524.269457 | 0) 0.071 us | key_put();
1459
+ 7238524.269458 | 0) 0.065 us | key_put();
1460
+ 7238524.269458 | 0) 0.066 us | key_put();
1461
+ 7238524.269459 | 0) 0.390 us | free_uid();
1462
+ 7238524.269460 | 0) 0.178 us | kmem_cache_free();
1463
+ 7238524.269460 | 0) 9.429 us | }
1464
+ 7238524.269461 | 0) 0.099 us | note_gp_changes();
1465
+ 7238524.269461 | 0) 0.080 us | cpu_needs_another_gp();
1466
+ 7238524.269462 | 0) 16.796 us | }
1467
+ 7238524.269462 | 0) 0.068 us | rcu_bh_qs();
1468
+ 7238524.269462 | 0) 0.066 us | __local_bh_enable();
1469
+ 7238524.269463 | 0) 18.770 us | }
1470
+ 7238524.269463 | 0) 0.073 us | idle_cpu();
1471
+ 7238524.269464 | 0) 0.088 us | rcu_irq_exit();
1472
+ 7238524.269464 | 0) 20.487 us | }
1473
+ 7238524.269465 | 0) 56.365 us | }
1474
+ 7238524.269465 | 0) 58.028 us | }
1475
+ 7238524.269466 | 0) 127463.5 us | }
1476
+ 7238524.269466 | 0) 127464.2 us | }
1477
+ 7238524.269467 | 0) 127465.0 us | }
1478
+ 7238524.269467 | 0) 0.095 us | down_read();
1479
+ 7238524.269468 | 0) | copy_from_read_buf() {
1480
+ 7238524.269469 | 0) | tty_audit_add_data() {
1481
+ 7238524.269469 | 0) 0.228 us | _raw_spin_lock_irqsave();
1482
+ 7238524.269470 | 0) 0.070 us | _raw_spin_unlock_irqrestore();
1483
+ 7238524.269471 | 0) 0.074 us | _raw_spin_lock_irqsave();
1484
+ 7238524.269471 | 0) 0.079 us | _raw_spin_unlock_irqrestore();
1485
+ 7238524.269472 | 0) 2.616 us | }
1486
+ 7238524.269472 | 0) 3.878 us | }
1487
+ 7238524.269473 | 0) 0.104 us | copy_from_read_buf();
1488
+ 7238524.269473 | 0) 0.074 us | n_tty_set_room();
1489
+ 7238524.269474 | 0) 0.067 us | n_tty_write_wakeup();
1490
+ 7238524.269474 | 0) | __wake_up() {
1491
+ 7238524.269475 | 0) 0.077 us | _raw_spin_lock_irqsave();
1492
+ 7238524.269475 | 0) | __wake_up_common() {
1493
+ 7238524.269476 | 0) 0.095 us | pollwake();
1494
+ 7238524.269476 | 0) 0.694 us | }
1495
+ 7238524.269476 | 0) 0.064 us | _raw_spin_unlock_irqrestore();
1496
+ 7238524.269477 | 0) 2.128 us | }
1497
+ 7238524.269477 | 0) 0.062 us | n_tty_set_room();
1498
+ 7238524.269477 | 0) 0.066 us | up_read();
1499
+ 7238524.269478 | 0) | remove_wait_queue() {
1500
+ 7238524.269478 | 0) 0.080 us | _raw_spin_lock_irqsave();
1501
+ 7238524.269479 | 0) 0.081 us | _raw_spin_unlock_irqrestore();
1502
+ 7238524.269480 | 0) 1.225 us | }
1503
+ 7238524.269480 | 0) 0.152 us | mutex_unlock();
1504
+ 7238524.269480 | 0) 127485.3 us | }
1505
+ 7238524.269481 | 0) | tty_ldisc_deref() {
1506
+ 7238524.269481 | 0) 0.081 us | ldsem_up_read();
1507
+ 7238524.269482 | 0) 0.655 us | }
1508
+ 7238524.269482 | 0) 0.089 us | get_seconds();
1509
+ 7238524.269483 | 0) 127490.1 us | }
1510
+ 7238524.269484 | 0) 0.287 us | __fsnotify_parent();
1511
+ 7238524.269484 | 0) 0.183 us | fsnotify();
1512
+ 7238524.269485 | 0) 127496.2 us | }
1513
+ 7238524.269559 | 0) | vfs_read() {
1514
+ 7238524.269559 | 0) | rw_verify_area() {
1515
+ 7238524.269560 | 0) | security_file_permission() {
1516
+ 7238524.269560 | 0) | apparmor_file_permission() {
1517
+ 7238524.269561 | 0) 0.164 us | common_file_perm();
1518
+ 7238524.269561 | 0) 0.831 us | }
1519
+ 7238524.269562 | 0) 0.078 us | __fsnotify_parent();
1520
+ 7238524.269562 | 0) 0.080 us | fsnotify();
1521
+ 7238524.269563 | 0) 2.765 us | }
1522
+ 7238524.269563 | 0) 3.490 us | }
1523
+ 7238524.269564 | 0) | tty_read() {
1524
+ 7238524.269564 | 0) 0.066 us | tty_paranoia_check();
1525
+ 7238524.269564 | 0) | tty_ldisc_ref_wait() {
1526
+ 7238524.269565 | 0) 0.085 us | ldsem_down_read();
1527
+ 7238524.269565 | 0) 0.656 us | }
1528
+ 7238524.269566 | 0) | n_tty_read() {
1529
+ 7238524.269566 | 0) 0.078 us | _raw_spin_lock_irq();
1530
+ 7238524.269567 | 0) 0.118 us | mutex_lock_interruptible();
1531
+ 7238524.269567 | 0) 0.078 us | down_read();
1532
+ 7238524.269568 | 0) | add_wait_queue() {
1533
+ 7238524.269568 | 0) 0.089 us | _raw_spin_lock_irqsave();
1534
+ 7238524.269569 | 0) 0.082 us | _raw_spin_unlock_irqrestore();
1535
+ 7238524.269569 | 0) 1.164 us | }
1536
+ 7238524.269570 | 0) 0.073 us | tty_hung_up_p();
1537
+ 7238524.269570 | 0) 0.076 us | n_tty_set_room();
1538
+ 7238524.269571 | 0) 0.078 us | up_read();
1539
+ 7238524.269571 | 0) | schedule_timeout() {
1540
+ 7238524.269572 | 0) | schedule() {
1541
+ 7238524.269572 | 0) | __schedule() {
1542
+ 7238524.269572 | 0) 0.078 us | rcu_note_context_switch();
1543
+ 7238524.269573 | 0) 0.085 us | _raw_spin_lock_irq();
1544
+ 7238524.269574 | 0) | deactivate_task() {
1545
+ 7238524.269574 | 0) | dequeue_task() {
1546
+ 7238524.269574 | 0) 0.185 us | update_rq_clock();
1547
+ 7238524.269575 | 0) | dequeue_task_fair() {
1548
+ 7238524.269575 | 0) | dequeue_entity() {
1549
+ 7238524.269575 | 0) | update_curr() {
1550
+ 7238524.269576 | 0) 0.206 us | cpuacct_charge();
1551
+ 7238524.269577 | 0) 0.937 us | }
1552
+ 7238524.269577 | 0) 0.084 us | __update_entity_load_avg_contrib();
1553
+ 7238524.269577 | 0) 0.077 us | update_cfs_rq_blocked_load();
1554
+ 7238524.269578 | 0) 0.075 us | clear_buddies();
1555
+ 7238524.269579 | 0) 0.096 us | account_entity_dequeue();
1556
+ 7238524.269579 | 0) | update_cfs_shares() {
1557
+ 7238524.269580 | 0) 0.095 us | update_curr();
1558
+ 7238524.269580 | 0) 0.104 us | account_entity_dequeue();
1559
+ 7238524.269581 | 0) 0.076 us | account_entity_enqueue();
1560
+ 7238524.269581 | 0) 1.898 us | }
1561
+ 7238524.269582 | 0) 6.120 us | }
1562
+ 7238524.269582 | 0) | dequeue_entity() {
1563
+ 7238524.269582 | 0) 0.093 us | update_curr();
1564
+ 7238524.269583 | 0) 0.116 us | __update_entity_load_avg_contrib();
1565
+ 7238524.269583 | 0) 0.085 us | update_cfs_rq_blocked_load();
1566
+ 7238524.269584 | 0) 0.067 us | clear_buddies();
1567
+ 7238524.269585 | 0) 0.082 us | account_entity_dequeue();
1568
+ 7238524.269585 | 0) 0.097 us | update_cfs_shares();
1569
+ 7238524.269586 | 0) 3.833 us | }
1570
+ 7238524.269586 | 0) 0.070 us | hrtick_update();
1571
+ 7238524.269587 | 0) 11.677 us | }
1572
+ 7238524.269587 | 0) 13.001 us | }
1573
+ 7238524.269587 | 0) 13.516 us | }
1574
+ 7238524.269588 | 0) | pick_next_task_fair() {
1575
+ 7238524.269588 | 0) 0.072 us | check_cfs_rq_runtime();
1576
+ 7238524.269588 | 0) | pick_next_entity() {
1577
+ 7238524.269589 | 0) 0.080 us | clear_buddies();
1578
+ 7238524.269589 | 0) 0.675 us | }
1579
+ 7238524.269590 | 0) | put_prev_entity() {
1580
+ 7238524.269590 | 0) 0.071 us | check_cfs_rq_runtime();
1581
+ 7238524.269591 | 0) 0.543 us | }
1582
+ 7238524.269591 | 0) | put_prev_entity() {
1583
+ 7238524.269591 | 0) 0.066 us | check_cfs_rq_runtime();
1584
+ 7238524.269592 | 0) 0.658 us | }
1585
+ 7238524.269592 | 0) | set_next_entity() {
1586
+ 7238524.269593 | 0) 0.082 us | update_stats_wait_end();
1587
+ 7238524.269593 | 0) 0.844 us | }
1588
+ 7238524.269594 | 0) 5.970 us | }
1589
+ 7238524.269594 | 0) 0.076 us | paravirt_start_context_switch();
1590
+ 7238524.269595 | 0) 0.074 us | xen_read_cr0();
1591
+ 7238524.269596 | 0) | xen_write_cr0() {
1592
+ 7238524.269597 | 0) 0.081 us | paravirt_get_lazy_mode();
1593
+ 7238524.269597 | 0) 0.086 us | __xen_mc_entry();
1594
+ 7238524.269598 | 0) 0.070 us | paravirt_get_lazy_mode();
1595
+ 7238524.269598 | 0) 1.739 us | }
1596
+ 7238524.269598 | 0) | xen_load_sp0() {
1597
+ 7238524.269599 | 0) 0.078 us | paravirt_get_lazy_mode();
1598
+ 7238524.269599 | 0) 0.078 us | __xen_mc_entry();
1599
+ 7238524.269600 | 0) 0.069 us | paravirt_get_lazy_mode();
1600
+ 7238524.269600 | 0) 1.568 us | }
1601
+ 7238524.269601 | 0) | xen_load_tls() {
1602
+ 7238524.269601 | 0) 0.068 us | paravirt_get_lazy_mode();
1603
+ 7238524.269601 | 0) 0.068 us | paravirt_get_lazy_mode();
1604
+ 7238524.269602 | 0) 0.078 us | load_TLS_descriptor();
1605
+ 7238524.269602 | 0) 0.071 us | load_TLS_descriptor();
1606
+ 7238524.269603 | 0) 0.073 us | load_TLS_descriptor();
1607
+ 7238524.269603 | 0) 0.063 us | paravirt_get_lazy_mode();
1608
+ 7238524.269604 | 0) 3.025 us | }
1609
+ 7238524.269604 | 0) | xen_end_context_switch() {
1610
+ 7238524.269604 | 0) 0.646 us | xen_mc_flush();
1611
+ 7238524.269605 | 0) 0.087 us | paravirt_end_context_switch();
1612
+ 7238524.269606 | 0) 1.604 us | }
1613
+ ^C
1614
+ Ending tracing...
1615
+
1616
+ If you read through the durations carefully, you can see that the shell begins
1617
+ by completing a 19 second read (time between commands), then has a series of
1618
+ 100 to 200 ms reads (inter-keystroke latency).
1619
+
1620
+ The function times printed are inclusive of their children.
1621
+
1622
+
1623
+ The -C option will print on-CPU times only, excluding sleeping or blocking
1624
+ events from the function duration times. Eg:
1625
+
1626
+ # ./funcgraph -Ctp 25285 vfs_read
1627
+ Tracing "vfs_read" for PID 25285... Ctrl-C to end.
1628
+ 7338520.591816 | 0) | finish_task_switch() {
1629
+ 7338520.591820 | 0) | xen_evtchn_do_upcall() {
1630
+ 7338520.591821 | 0) | irq_enter() {
1631
+ 7338520.591821 | 0) 0.134 us | rcu_irq_enter();
1632
+ 7338520.591822 | 0) 0.823 us | }
1633
+ 7338520.591822 | 0) 0.055 us | exit_idle();
1634
+ 7338520.591822 | 0) | __xen_evtchn_do_upcall() {
1635
+ 7338520.591823 | 0) | evtchn_2l_handle_events() {
1636
+ 7338520.591823 | 0) 0.051 us | irq_from_virq();
1637
+ 7338520.591823 | 0) | evtchn_from_irq() {
1638
+ 7338520.591823 | 0) | irq_get_irq_data() {
1639
+ 7338520.591824 | 0) 0.064 us | irq_to_desc();
1640
+ 7338520.591824 | 0) 0.572 us | }
1641
+ 7338520.591824 | 0) 0.973 us | }
1642
+ 7338520.591825 | 0) | get_evtchn_to_irq() {
1643
+ 7338520.591825 | 0) 0.049 us | evtchn_2l_max_channels();
1644
+ 7338520.591825 | 0) 0.386 us | }
1645
+ 7338520.591825 | 0) | generic_handle_irq() {
1646
+ 7338520.591825 | 0) 0.061 us | irq_to_desc();
1647
+ 7338520.591826 | 0) | handle_percpu_irq() {
1648
+ 7338520.591826 | 0) | ack_dynirq() {
1649
+ 7338520.591826 | 0) | evtchn_from_irq() {
1650
+ 7338520.591826 | 0) | irq_get_irq_data() {
1651
+ 7338520.591827 | 0) 0.050 us | irq_to_desc();
1652
+ 7338520.591827 | 0) 0.441 us | }
1653
+ 7338520.591827 | 0) 0.748 us | }
1654
+ 7338520.591827 | 0) 0.048 us | irq_move_irq();
1655
+ 7338520.591828 | 0) 0.053 us | evtchn_2l_clear_pending();
1656
+ 7338520.591828 | 0) 1.810 us | }
1657
+ 7338520.591828 | 0) | handle_irq_event_percpu() {
1658
+ 7338520.591828 | 0) | xen_irq_work_interrupt() {
1659
+ 7338520.591829 | 0) | irq_enter() {
1660
+ 7338520.591829 | 0) 0.069 us | rcu_irq_enter();
1661
+ 7338520.591829 | 0) 0.386 us | }
1662
+ 7338520.591830 | 0) | __wake_up() {
1663
+ 7338520.591830 | 0) 0.060 us | _raw_spin_lock_irqsave();
1664
+ 7338520.591830 | 0) | __wake_up_common() {
1665
+ 7338520.591830 | 0) | autoremove_wake_function() {
1666
+ 7338520.591831 | 0) | default_wake_function() {
1667
+ 7338520.591831 | 0) | try_to_wake_up() {
1668
+ 7338520.591831 | 0) 0.223 us | _raw_spin_lock_irqsave();
1669
+ 7338520.591832 | 0) 0.243 us | task_waking_fair();
1670
+ 7338520.591832 | 0) | select_task_rq_fair() {
1671
+ 7338520.591833 | 0) 0.063 us | source_load();
1672
+ 7338520.591833 | 0) 0.059 us | target_load();
1673
+ 7338520.591834 | 0) 0.060 us | idle_cpu();
1674
+ 7338520.591834 | 0) 0.059 us | cpus_share_cache();
1675
+ 7338520.591834 | 0) 0.085 us | idle_cpu();
1676
+ 7338520.591835 | 0) 2.176 us | }
1677
+ 7338520.591835 | 0) 0.050 us | _raw_spin_lock();
1678
+ 7338520.591835 | 0) | ttwu_do_activate.constprop.124() {
1679
+ 7338520.591835 | 0) | activate_task() {
1680
+ 7338520.591836 | 0) | enqueue_task() {
1681
+ 7338520.591836 | 0) 0.197 us | update_rq_clock();
1682
+ 7338520.591836 | 0) | enqueue_task_fair() {
1683
+ 7338520.591836 | 0) | enqueue_entity() {
1684
+ 7338520.591837 | 0) 0.118 us | update_curr();
1685
+ 7338520.591837 | 0) 0.060 us | __compute_runnable_contrib.part.51();
1686
+ 7338520.591838 | 0) 0.052 us | __update_entity_load_avg_contrib();
1687
+ 7338520.591838 | 0) 0.132 us | update_cfs_rq_blocked_load();
1688
+ 7338520.591838 | 0) 0.068 us | account_entity_enqueue();
1689
+ 7338520.591839 | 0) 0.327 us | update_cfs_shares();
1690
+ 7338520.591839 | 0) 0.055 us | place_entity();
1691
+ 7338520.591840 | 0) 0.086 us | __enqueue_entity();
1692
+ 7338520.591840 | 0) 0.069 us | update_cfs_rq_blocked_load();
1693
+ 7338520.591840 | 0) 3.870 us | }
1694
+ 7338520.591841 | 0) | enqueue_entity() {
1695
+ 7338520.591841 | 0) 0.050 us | update_curr();
1696
+ 7338520.591841 | 0) 0.048 us | __compute_runnable_contrib.part.51();
1697
+ 7338520.591842 | 0) 0.079 us | __update_entity_load_avg_contrib();
1698
+ 7338520.591842 | 0) 0.068 us | update_cfs_rq_blocked_load();
1699
+ 7338520.591842 | 0) 0.072 us | account_entity_enqueue();
1700
+ 7338520.591843 | 0) 0.068 us | update_cfs_shares();
1701
+ 7338520.591844 | 0) 0.123 us | place_entity();
1702
+ 7338520.591844 | 0) 0.051 us | __enqueue_entity();
1703
+ 7338520.591845 | 0) 3.919 us | }
1704
+ 7338520.591845 | 0) 0.059 us | hrtick_update();
1705
+ 7338520.591845 | 0) 8.895 us | }
1706
+ 7338520.591846 | 0) 9.770 us | }
1707
+ 7338520.591846 | 0) 10.197 us | }
1708
+ 7338520.591846 | 0) | ttwu_do_wakeup() {
1709
+ 7338520.591846 | 0) | check_preempt_curr() {
1710
+ 7338520.591846 | 0) | resched_task() {
1711
+ 7338520.591847 | 0) | xen_smp_send_reschedule() {
1712
+ 7338520.591847 | 0) | xen_send_IPI_one() {
1713
+ 7338520.591847 | 0) | notify_remote_via_irq() {
1714
+ 7338520.591847 | 0) | evtchn_from_irq() {
1715
+ 7338520.591848 | 0) | irq_get_irq_data() {
1716
+ 7338520.591848 | 0) 0.051 us | irq_to_desc();
1717
+ 7338520.591848 | 0) 0.503 us | }
1718
+ 7338520.591848 | 0) 1.031 us | }
1719
+ 7338520.591849 | 0) 2.112 us | }
1720
+ 7338520.591849 | 0) 2.484 us | }
1721
+ 7338520.591850 | 0) 2.851 us | }
1722
+ 7338520.591850 | 0) 3.311 us | }
1723
+ 7338520.591850 | 0) 3.828 us | }
1724
+ 7338520.591851 | 0) 4.788 us | }
1725
+ 7338520.591851 | 0) 15.731 us | }
1726
+ 7338520.591851 | 0) 0.074 us | _raw_spin_unlock();
1727
+ 7338520.591852 | 0) 0.156 us | ttwu_stat();
1728
+ 7338520.591852 | 0) 0.080 us | _raw_spin_unlock_irqrestore();
1729
+ 7338520.591853 | 0) 21.807 us | }
1730
+ 7338520.591853 | 0) 22.286 us | }
1731
+ 7338520.591853 | 0) 22.738 us | }
1732
+ 7338520.591854 | 0) 23.387 us | }
1733
+ 7338520.591854 | 0) 0.105 us | _raw_spin_unlock_irqrestore();
1734
+ 7338520.591854 | 0) 24.698 us | }
1735
+ 7338520.591855 | 0) | irq_exit() {
1736
+ 7338520.591855 | 0) 0.086 us | idle_cpu();
1737
+ 7338520.591856 | 0) 0.105 us | rcu_irq_exit();
1738
+ 7338520.591856 | 0) 1.272 us | }
1739
+ 7338520.591856 | 0) 27.818 us | }
1740
+ 7338520.591857 | 0) 0.140 us | add_interrupt_randomness();
1741
+ 7338520.591857 | 0) 0.084 us | note_interrupt();
1742
+ 7338520.591858 | 0) 29.866 us | }
1743
+ 7338520.591858 | 0) 32.390 us | }
1744
+ 7338520.591859 | 0) 33.204 us | }
1745
+ 7338520.591859 | 0) 36.137 us | }
1746
+ 7338520.591859 | 0) 36.574 us | }
1747
+ 7338520.591859 | 0) | irq_exit() {
1748
+ 7338520.591860 | 0) 0.073 us | idle_cpu();
1749
+ 7338520.591860 | 0) 0.076 us | rcu_irq_exit();
1750
+ 7338520.591861 | 0) 1.091 us | }
1751
+ 7338520.591861 | 0) 40.156 us | }
1752
+ 7338520.591862 | 0) 41.874 us | }
1753
+ 7338520.591862 | 0) 75.633 us | } /* __schedule */
1754
+ 7338520.591862 | 0) 76.182 us | } /* schedule */
1755
+ 7338520.591863 | 0) 76.965 us | } /* schedule_timeout */
1756
+ 7338520.591863 | 0) 0.070 us | down_read();
1757
+ 7338520.591864 | 0) | copy_from_read_buf() {
1758
+ 7338520.591865 | 0) | tty_audit_add_data() {
1759
+ 7338520.591865 | 0) 0.232 us | _raw_spin_lock_irqsave();
1760
+ 7338520.591866 | 0) 0.079 us | _raw_spin_unlock_irqrestore();
1761
+ 7338520.591867 | 0) 0.122 us | _raw_spin_lock_irqsave();
1762
+ 7338520.591867 | 0) 0.066 us | _raw_spin_unlock_irqrestore();
1763
+ 7338520.591868 | 0) 2.642 us | }
1764
+ 7338520.591868 | 0) 3.886 us | }
1765
+ 7338520.591868 | 0) 0.149 us | copy_from_read_buf();
1766
+ 7338520.591869 | 0) 0.072 us | n_tty_set_room();
1767
+ 7338520.591870 | 0) 0.071 us | n_tty_write_wakeup();
1768
+ 7338520.591870 | 0) | __wake_up() {
1769
+ 7338520.591871 | 0) 0.071 us | _raw_spin_lock_irqsave();
1770
+ 7338520.591872 | 0) | __wake_up_common() {
1771
+ 7338520.591872 | 0) 0.097 us | pollwake();
1772
+ 7338520.591873 | 0) 0.739 us | }
1773
+ 7338520.591873 | 0) 0.066 us | _raw_spin_unlock_irqrestore();
1774
+ 7338520.591874 | 0) 3.043 us | }
1775
+ 7338520.591874 | 0) 0.075 us | n_tty_set_room();
1776
+ 7338520.591875 | 0) 0.106 us | up_read();
1777
+ 7338520.591875 | 0) | remove_wait_queue() {
1778
+ 7338520.591875 | 0) 0.078 us | _raw_spin_lock_irqsave();
1779
+ 7338520.591876 | 0) 0.075 us | _raw_spin_unlock_irqrestore();
1780
+ 7338520.591877 | 0) 1.165 us | }
1781
+ 7338520.591877 | 0) 0.137 us | mutex_unlock();
1782
+ 7338520.591877 | 0) 98.321 us | } /* n_tty_read */
1783
+ 7338520.591878 | 0) | tty_ldisc_deref() {
1784
+ 7338520.591878 | 0) 0.072 us | ldsem_up_read();
1785
+ 7338520.591879 | 0) 0.561 us | }
1786
+ 7338520.591879 | 0) 0.090 us | get_seconds();
1787
+ 7338520.591880 | 0) 102.599 us | } /* tty_read */
1788
+ 7338520.591880 | 0) 0.362 us | __fsnotify_parent();
1789
+ 7338520.591881 | 0) 0.171 us | fsnotify();
1790
+ 7338520.591882 | 0) 109.640 us | } /* vfs_read */
1791
+ 7338520.591951 | 0) | vfs_read() {
1792
+ 7338520.591951 | 0) | rw_verify_area() {
1793
+ 7338520.591952 | 0) | security_file_permission() {
1794
+ 7338520.591952 | 0) | apparmor_file_permission() {
1795
+ 7338520.591952 | 0) 0.174 us | common_file_perm();
1796
+ 7338520.591953 | 0) 0.762 us | }
1797
+ 7338520.591953 | 0) 0.126 us | __fsnotify_parent();
1798
+ 7338520.591954 | 0) 0.088 us | fsnotify();
1799
+ 7338520.591954 | 0) 2.609 us | }
1800
+ 7338520.591955 | 0) 3.351 us | }
1801
+ 7338520.591955 | 0) | tty_read() {
1802
+ 7338520.591956 | 0) 0.081 us | tty_paranoia_check();
1803
+ 7338520.591956 | 0) | tty_ldisc_ref_wait() {
1804
+ 7338520.591956 | 0) 0.090 us | ldsem_down_read();
1805
+ 7338520.591957 | 0) 0.633 us | }
1806
+ 7338520.591957 | 0) | n_tty_read() {
1807
+ 7338520.591958 | 0) 0.073 us | _raw_spin_lock_irq();
1808
+ 7338520.591958 | 0) 0.089 us | mutex_lock_interruptible();
1809
+ 7338520.591959 | 0) 0.080 us | down_read();
1810
+ 7338520.591960 | 0) | add_wait_queue() {
1811
+ 7338520.591960 | 0) 0.084 us | _raw_spin_lock_irqsave();
1812
+ 7338520.591960 | 0) 0.087 us | _raw_spin_unlock_irqrestore();
1813
+ 7338520.591961 | 0) 1.215 us | }
1814
+ 7338520.591961 | 0) 0.078 us | tty_hung_up_p();
1815
+ 7338520.591962 | 0) 0.084 us | n_tty_set_room();
1816
+ 7338520.591962 | 0) 0.072 us | up_read();
1817
+ 7338520.591963 | 0) | schedule_timeout() {
1818
+ 7338520.591963 | 0) | schedule() {
1819
+ 7338520.591964 | 0) | __schedule() {
1820
+ 7338520.591964 | 0) 0.084 us | rcu_note_context_switch();
1821
+ 7338520.591965 | 0) 0.086 us | _raw_spin_lock_irq();
1822
+ 7338520.591965 | 0) | deactivate_task() {
1823
+ 7338520.591966 | 0) | dequeue_task() {
1824
+ 7338520.591966 | 0) 0.171 us | update_rq_clock();
1825
+ 7338520.591966 | 0) | dequeue_task_fair() {
1826
+ 7338520.591967 | 0) | dequeue_entity() {
1827
+ 7338520.591967 | 0) | update_curr() {
1828
+ 7338520.591967 | 0) 0.248 us | cpuacct_charge();
1829
+ 7338520.591968 | 0) 0.974 us | }
1830
+ 7338520.591969 | 0) 0.074 us | update_cfs_rq_blocked_load();
1831
+ 7338520.591969 | 0) 0.081 us | clear_buddies();
1832
+ 7338520.591970 | 0) 0.094 us | account_entity_dequeue();
1833
+ 7338520.591971 | 0) | update_cfs_shares() {
1834
+ 7338520.591971 | 0) 0.096 us | update_curr();
1835
+ 7338520.591971 | 0) 0.093 us | account_entity_dequeue();
1836
+ 7338520.591972 | 0) 0.079 us | account_entity_enqueue();
1837
+ 7338520.591972 | 0) 1.743 us | }
1838
+ 7338520.591972 | 0) 5.515 us | }
1839
+ 7338520.591973 | 0) | dequeue_entity() {
1840
+ 7338520.591973 | 0) 0.088 us | update_curr();
1841
+ 7338520.591974 | 0) 0.106 us | update_cfs_rq_blocked_load();
1842
+ 7338520.591975 | 0) 0.078 us | clear_buddies();
1843
+ 7338520.591975 | 0) 0.088 us | account_entity_dequeue();
1844
+ 7338520.591976 | 0) 0.091 us | update_cfs_shares();
1845
+ 7338520.591977 | 0) 3.639 us | }
1846
+ 7338520.591977 | 0) 0.078 us | hrtick_update();
1847
+ 7338520.591978 | 0) 10.851 us | }
1848
+ 7338520.591978 | 0) 11.992 us | }
1849
+ 7338520.591978 | 0) 12.496 us | }
1850
+ 7338520.591978 | 0) | pick_next_task_fair() {
1851
+ 7338520.591979 | 0) 0.079 us | check_cfs_rq_runtime();
1852
+ 7338520.591979 | 0) | pick_next_entity() {
1853
+ 7338520.591979 | 0) 0.080 us | clear_buddies();
1854
+ 7338520.591980 | 0) 0.594 us | }
1855
+ 7338520.591980 | 0) | put_prev_entity() {
1856
+ 7338520.591980 | 0) 0.078 us | check_cfs_rq_runtime();
1857
+ 7338520.591981 | 0) 0.641 us | }
1858
+ 7338520.591981 | 0) | put_prev_entity() {
1859
+ 7338520.591982 | 0) 0.076 us | check_cfs_rq_runtime();
1860
+ 7338520.591982 | 0) 0.610 us | }
1861
+ 7338520.591982 | 0) | set_next_entity() {
1862
+ 7338520.591983 | 0) 0.097 us | update_stats_wait_end();
1863
+ 7338520.591983 | 0) 0.744 us | }
1864
+ 7338520.591984 | 0) 5.115 us | }
1865
+ 7338520.591984 | 0) 0.076 us | paravirt_start_context_switch();
1866
+ 7338520.591985 | 0) 0.086 us | xen_read_cr0();
1867
+ 7338520.591986 | 0) | xen_write_cr0() {
1868
+ 7338520.591986 | 0) 0.078 us | paravirt_get_lazy_mode();
1869
+ 7338520.591987 | 0) 0.086 us | __xen_mc_entry();
1870
+ 7338520.591987 | 0) 0.078 us | paravirt_get_lazy_mode();
1871
+ 7338520.591988 | 0) 1.698 us | }
1872
+ 7338520.591988 | 0) | xen_load_sp0() {
1873
+ 7338520.591988 | 0) 0.074 us | paravirt_get_lazy_mode();
1874
+ 7338520.591989 | 0) 0.084 us | __xen_mc_entry();
1875
+ 7338520.591989 | 0) 0.084 us | paravirt_get_lazy_mode();
1876
+ 7338520.591990 | 0) 1.724 us | }
1877
+ 7338520.591990 | 0) | xen_load_tls() {
1878
+ 7338520.591991 | 0) 0.080 us | paravirt_get_lazy_mode();
1879
+ 7338520.591991 | 0) 0.088 us | paravirt_get_lazy_mode();
1880
+ 7338520.591992 | 0) 0.140 us | load_TLS_descriptor();
1881
+ 7338520.591992 | 0) 0.079 us | load_TLS_descriptor();
1882
+ 7338520.591993 | 0) 0.087 us | load_TLS_descriptor();
1883
+ 7338520.591994 | 0) 0.078 us | paravirt_get_lazy_mode();
1884
+ 7338520.591994 | 0) 3.666 us | }
1885
+ 7338520.591995 | 0) | xen_end_context_switch() {
1886
+ 7338520.591995 | 0) 0.644 us | xen_mc_flush();
1887
+ 7338520.591996 | 0) 0.080 us | paravirt_end_context_switch();
1888
+ 7338520.591997 | 0) 1.813 us | }
1889
+ 7338520.855105 | 0) | finish_task_switch() {
1890
+ 7338520.855110 | 0) | xen_evtchn_do_upcall() {
1891
+ 7338520.855110 | 0) | irq_enter() {
1892
+ 7338520.855110 | 0) 0.137 us | rcu_irq_enter();
1893
+ 7338520.855111 | 0) 0.673 us | }
1894
+ 7338520.855111 | 0) 0.063 us | exit_idle();
1895
+ 7338520.855111 | 0) | __xen_evtchn_do_upcall() {
1896
+ 7338520.855112 | 0) | evtchn_2l_handle_events() {
1897
+ 7338520.855112 | 0) 0.050 us | irq_from_virq();
1898
+ 7338520.855112 | 0) | evtchn_from_irq() {
1899
+ 7338520.855112 | 0) | irq_get_irq_data() {
1900
+ 7338520.855113 | 0) 0.050 us | irq_to_desc();
1901
+ 7338520.855113 | 0) 0.568 us | }
1902
+ 7338520.855113 | 0) 0.895 us | }
1903
+ 7338520.855114 | 0) | get_evtchn_to_irq() {
1904
+ 7338520.855114 | 0) 0.048 us | evtchn_2l_max_channels();
1905
+ 7338520.855114 | 0) 0.386 us | }
1906
+ 7338520.855114 | 0) | generic_handle_irq() {
1907
+ 7338520.855114 | 0) 0.051 us | irq_to_desc();
1908
+ 7338520.855115 | 0) | handle_percpu_irq() {
1909
+ 7338520.855115 | 0) | ack_dynirq() {
1910
+ 7338520.855115 | 0) | evtchn_from_irq() {
1911
+ 7338520.855115 | 0) | irq_get_irq_data() {
1912
+ 7338520.855116 | 0) 0.058 us | irq_to_desc();
1913
+ 7338520.855117 | 0) 1.264 us | }
1914
+ 7338520.855117 | 0) 1.644 us | }
1915
+ 7338520.855117 | 0) 0.048 us | irq_move_irq();
1916
+ 7338520.855118 | 0) 0.050 us | evtchn_2l_clear_pending();
1917
+ 7338520.855118 | 0) 2.876 us | }
1918
+ 7338520.855118 | 0) | handle_irq_event_percpu() {
1919
+ 7338520.855119 | 0) | xen_irq_work_interrupt() {
1920
+ 7338520.855119 | 0) | irq_enter() {
1921
+ 7338520.855119 | 0) 0.055 us | rcu_irq_enter();
1922
+ 7338520.855119 | 0) 0.460 us | }
1923
+ 7338520.855120 | 0) | __wake_up() {
1924
+ 7338520.855120 | 0) 0.057 us | _raw_spin_lock_irqsave();
1925
+ 7338520.855120 | 0) | __wake_up_common() {
1926
+ 7338520.855121 | 0) | autoremove_wake_function() {
1927
+ 7338520.855121 | 0) | default_wake_function() {
1928
+ 7338520.855121 | 0) | try_to_wake_up() {
1929
+ 7338520.855121 | 0) 0.203 us | _raw_spin_lock_irqsave();
1930
+ 7338520.855122 | 0) 0.179 us | task_waking_fair();
1931
+ 7338520.855123 | 0) | select_task_rq_fair() {
1932
+ 7338520.855123 | 0) 0.048 us | source_load();
1933
+ 7338520.855123 | 0) 0.059 us | target_load();
1934
+ 7338520.855124 | 0) 0.059 us | idle_cpu();
1935
+ 7338520.855124 | 0) 0.058 us | cpus_share_cache();
1936
+ 7338520.855124 | 0) 0.058 us | idle_cpu();
1937
+ 7338520.855125 | 0) 1.940 us | }
1938
+ 7338520.855125 | 0) 0.057 us | _raw_spin_lock();
1939
+ 7338520.855125 | 0) | ttwu_do_activate.constprop.124() {
1940
+ 7338520.855125 | 0) | activate_task() {
1941
+ 7338520.855126 | 0) | enqueue_task() {
1942
+ 7338520.855126 | 0) 0.171 us | update_rq_clock();
1943
+ 7338520.855126 | 0) | enqueue_task_fair() {
1944
+ 7338520.855126 | 0) | enqueue_entity() {
1945
+ 7338520.855127 | 0) 0.063 us | update_curr();
1946
+ 7338520.855127 | 0) 0.078 us | __compute_runnable_contrib.part.51();
1947
+ 7338520.855127 | 0) 0.066 us | __update_entity_load_avg_contrib();
1948
+ 7338520.855128 | 0) 0.061 us | update_cfs_rq_blocked_load();
1949
+ 7338520.855128 | 0) 0.072 us | account_entity_enqueue();
1950
+ 7338520.855128 | 0) 0.116 us | update_cfs_shares();
1951
+ 7338520.855129 | 0) 0.062 us | place_entity();
1952
+ 7338520.855129 | 0) 0.087 us | __enqueue_entity();
1953
+ 7338520.855129 | 0) 2.950 us | }
1954
+ 7338520.855130 | 0) | enqueue_entity() {
1955
+ 7338520.855130 | 0) 0.065 us | update_curr();
1956
+ 7338520.855130 | 0) 0.065 us | update_cfs_rq_blocked_load();
1957
+ 7338520.855130 | 0) 0.067 us | account_entity_enqueue();
1958
+ 7338520.855131 | 0) 0.084 us | update_cfs_shares();
1959
+ 7338520.855131 | 0) 0.112 us | place_entity();
1960
+ 7338520.855131 | 0) 0.051 us | __enqueue_entity();
1961
+ 7338520.855132 | 0) 2.074 us | }
1962
+ 7338520.855132 | 0) 0.055 us | hrtick_update();
1963
+ 7338520.855132 | 0) 5.983 us | }
1964
+ 7338520.855133 | 0) 6.790 us | }
1965
+ 7338520.855133 | 0) 7.138 us | }
1966
+ 7338520.855133 | 0) | ttwu_do_wakeup() {
1967
+ 7338520.855133 | 0) | check_preempt_curr() {
1968
+ 7338520.855133 | 0) | resched_task() {
1969
+ 7338520.855133 | 0) | xen_smp_send_reschedule() {
1970
+ 7338520.855134 | 0) | xen_send_IPI_one() {
1971
+ 7338520.855134 | 0) | notify_remote_via_irq() {
1972
+ 7338520.855134 | 0) | evtchn_from_irq() {
1973
+ 7338520.855134 | 0) | irq_get_irq_data() {
1974
+ 7338520.855134 | 0) 0.057 us | irq_to_desc();
1975
+ 7338520.855135 | 0) 0.502 us | }
1976
+ 7338520.855135 | 0) 0.865 us | }
1977
+ 7338520.855136 | 0) 1.975 us | } /* notify_remote_via_irq */
1978
+ 7338520.855136 | 0) 2.350 us | }
1979
+ 7338520.855136 | 0) 2.723 us | }
1980
+ 7338520.855136 | 0) 3.175 us | }
1981
+ 7338520.855137 | 0) 3.620 us | }
1982
+ 7338520.855138 | 0) 4.642 us | }
1983
+ 7338520.855138 | 0) 12.409 us | }
1984
+ 7338520.855138 | 0) 0.059 us | _raw_spin_unlock();
1985
+ 7338520.855139 | 0) 0.108 us | ttwu_stat();
1986
+ 7338520.855140 | 0) 0.073 us | _raw_spin_unlock_irqrestore();
1987
+ 7338520.855140 | 0) 18.857 us | }
1988
+ 7338520.855141 | 0) 19.415 us | }
1989
+ 7338520.855141 | 0) 19.993 us | }
1990
+ 7338520.855141 | 0) 20.587 us | }
1991
+ 7338520.855141 | 0) 0.070 us | _raw_spin_unlock_irqrestore();
1992
+ 7338520.855142 | 0) 21.858 us | }
1993
+ 7338520.855142 | 0) | irq_exit() {
1994
+ 7338520.855143 | 0) 0.084 us | idle_cpu();
1995
+ 7338520.855143 | 0) 0.082 us | rcu_irq_exit();
1996
+ 7338520.855144 | 0) 1.235 us | }
1997
+ 7338520.855144 | 0) 25.109 us | }
1998
+ 7338520.855144 | 0) 0.126 us | add_interrupt_randomness();
1999
+ 7338520.855145 | 0) 0.091 us | note_interrupt();
2000
+ 7338520.855145 | 0) 26.935 us | }
2001
+ 7338520.855146 | 0) 30.693 us | }
2002
+ 7338520.855146 | 0) 31.575 us | }
2003
+ 7338520.855146 | 0) 34.424 us | }
2004
+ 7338520.855147 | 0) 34.841 us | }
2005
+ 7338520.855147 | 0) | irq_exit() {
2006
+ 7338520.855147 | 0) 0.083 us | idle_cpu();
2007
+ 7338520.855148 | 0) 0.069 us | rcu_irq_exit();
2008
+ 7338520.855148 | 0) 1.056 us | }
2009
+ 7338520.855148 | 0) 38.284 us | }
2010
+ 7338520.855149 | 0) 39.892 us | }
2011
+ 7338520.855150 | 0) 72.181 us | }
2012
+ 7338520.855150 | 0) 72.925 us | }
2013
+ 7338520.855150 | 0) 73.638 us | }
2014
+ 7338520.855151 | 0) 0.078 us | down_read();
2015
+ 7338520.855152 | 0) | copy_from_read_buf() {
2016
+ 7338520.855153 | 0) | tty_audit_add_data() {
2017
+ 7338520.855153 | 0) 0.272 us | _raw_spin_lock_irqsave();
2018
+ 7338520.855154 | 0) 0.063 us | _raw_spin_unlock_irqrestore();
2019
+ 7338520.855155 | 0) 0.086 us | _raw_spin_lock_irqsave();
2020
+ 7338520.855155 | 0) 0.067 us | _raw_spin_unlock_irqrestore();
2021
+ 7338520.855156 | 0) 2.808 us | }
2022
+ 7338520.855156 | 0) 4.330 us | }
2023
+ 7338520.855156 | 0) 0.083 us | copy_from_read_buf();
2024
+ 7338520.855157 | 0) 0.062 us | n_tty_set_room();
2025
+ 7338520.855158 | 0) 0.079 us | n_tty_write_wakeup();
2026
+ 7338520.855158 | 0) | __wake_up() {
2027
+ 7338520.855158 | 0) 0.068 us | _raw_spin_lock_irqsave();
2028
+ 7338520.855159 | 0) | __wake_up_common() {
2029
+ 7338520.855159 | 0) 0.092 us | pollwake();
2030
+ 7338520.855160 | 0) 0.643 us | }
2031
+ 7338520.855160 | 0) 0.074 us | _raw_spin_unlock_irqrestore();
2032
+ 7338520.855160 | 0) 2.040 us | }
2033
+ 7338520.855161 | 0) 0.074 us | n_tty_set_room();
2034
+ 7338520.855162 | 0) 0.073 us | up_read();
2035
+ 7338520.855162 | 0) | remove_wait_queue() {
2036
+ 7338520.855162 | 0) 0.084 us | _raw_spin_lock_irqsave();
2037
+ 7338520.855163 | 0) 0.078 us | _raw_spin_unlock_irqrestore();
2038
+ 7338520.855163 | 0) 1.166 us | }
2039
+ 7338520.855164 | 0) 0.140 us | mutex_unlock();
2040
+ 7338520.855164 | 0) 93.360 us | }
2041
+ 7338520.855165 | 0) | tty_ldisc_deref() {
2042
+ 7338520.855165 | 0) 0.070 us | ldsem_up_read();
2043
+ 7338520.855166 | 0) 0.746 us | }
2044
+ 7338520.855166 | 0) 0.071 us | get_seconds();
2045
+ 7338520.855167 | 0) 97.713 us | }
2046
+ 7338520.855167 | 0) 0.283 us | __fsnotify_parent();
2047
+ 7338520.855168 | 0) 0.172 us | fsnotify();
2048
+ 7338520.855168 | 0) 103.847 us | }
2049
+ 7338520.855238 | 0) | vfs_read() {
2050
+ 7338520.855239 | 0) | rw_verify_area() {
2051
+ 7338520.855240 | 0) | security_file_permission() {
2052
+ 7338520.855240 | 0) | apparmor_file_permission() {
2053
+ 7338520.855240 | 0) 0.160 us | common_file_perm();
2054
+ 7338520.855241 | 0) 0.770 us | }
2055
+ 7338520.855241 | 0) 0.078 us | __fsnotify_parent();
2056
+ 7338520.855242 | 0) 0.087 us | fsnotify();
2057
+ 7338520.855243 | 0) 2.595 us | }
2058
+ 7338520.855243 | 0) 4.148 us | }
2059
+ 7338520.855243 | 0) | tty_read() {
2060
+ 7338520.855244 | 0) 0.078 us | tty_paranoia_check();
2061
+ 7338520.855244 | 0) | tty_ldisc_ref_wait() {
2062
+ 7338520.855244 | 0) 0.084 us | ldsem_down_read();
2063
+ 7338520.855245 | 0) 0.643 us | }
2064
+ 7338520.855245 | 0) | n_tty_read() {
2065
+ 7338520.855246 | 0) 0.079 us | _raw_spin_lock_irq();
2066
+ 7338520.855247 | 0) 0.171 us | mutex_lock_interruptible();
2067
+ 7338520.855247 | 0) 0.064 us | down_read();
2068
+ 7338520.855248 | 0) | add_wait_queue() {
2069
+ 7338520.855248 | 0) 0.078 us | _raw_spin_lock_irqsave();
2070
+ 7338520.855249 | 0) 0.082 us | _raw_spin_unlock_irqrestore();
2071
+ 7338520.855249 | 0) 1.076 us | }
2072
+ 7338520.855250 | 0) 0.075 us | tty_hung_up_p();
2073
+ 7338520.855250 | 0) 0.079 us | n_tty_set_room();
2074
+ 7338520.855251 | 0) 0.075 us | up_read();
2075
+ 7338520.855251 | 0) | schedule_timeout() {
2076
+ 7338520.855252 | 0) | schedule() {
2077
+ 7338520.855252 | 0) | __schedule() {
2078
+ 7338520.855252 | 0) 0.084 us | rcu_note_context_switch();
2079
+ 7338520.855253 | 0) 0.079 us | _raw_spin_lock_irq();
2080
+ 7338520.855254 | 0) | deactivate_task() {
2081
+ 7338520.855254 | 0) | dequeue_task() {
2082
+ 7338520.855254 | 0) 0.219 us | update_rq_clock();
2083
+ 7338520.855255 | 0) | dequeue_task_fair() {
2084
+ 7338520.855255 | 0) | dequeue_entity() {
2085
+ 7338520.855255 | 0) | update_curr() {
2086
+ 7338520.855256 | 0) 0.186 us | cpuacct_charge();
2087
+ 7338520.855257 | 0) 0.924 us | }
2088
+ 7338520.855257 | 0) 0.078 us | update_cfs_rq_blocked_load();
2089
+ 7338520.855258 | 0) 0.078 us | clear_buddies();
2090
+ 7338520.855258 | 0) 0.083 us | account_entity_dequeue();
2091
+ 7338520.855259 | 0) | update_cfs_shares() {
2092
+ 7338520.855259 | 0) 0.105 us | update_curr();
2093
+ 7338520.855260 | 0) 0.093 us | account_entity_dequeue();
2094
+ 7338520.855260 | 0) 0.098 us | account_entity_enqueue();
2095
+ 7338520.855261 | 0) 1.825 us | }
2096
+ 7338520.855261 | 0) 5.574 us | }
2097
+ 7338520.855261 | 0) | dequeue_entity() {
2098
+ 7338520.855261 | 0) 0.086 us | update_curr();
2099
+ 7338520.855262 | 0) 0.127 us | __update_entity_load_avg_contrib();
2100
+ 7338520.855263 | 0) 0.070 us | update_cfs_rq_blocked_load();
2101
+ 7338520.855263 | 0) 0.066 us | clear_buddies();
2102
+ 7338520.855264 | 0) 0.082 us | account_entity_dequeue();
2103
+ 7338520.855264 | 0) 0.104 us | update_cfs_shares();
2104
+ 7338520.855265 | 0) 3.439 us | }
2105
+ 7338520.855265 | 0) 0.078 us | hrtick_update();
2106
+ 7338520.855266 | 0) 10.741 us | }
2107
+ 7338520.855266 | 0) 11.990 us | }
2108
+ 7338520.855266 | 0) 12.580 us | }
2109
+ 7338520.855267 | 0) | pick_next_task_fair() {
2110
+ 7338520.855267 | 0) 0.074 us | check_cfs_rq_runtime();
2111
+ 7338520.855268 | 0) | pick_next_entity() {
2112
+ 7338520.855268 | 0) 0.078 us | clear_buddies();
2113
+ 7338520.855269 | 0) 0.696 us | }
2114
+ 7338520.855269 | 0) | put_prev_entity() {
2115
+ 7338520.855269 | 0) 0.084 us | check_cfs_rq_runtime();
2116
+ 7338520.855270 | 0) 0.628 us | }
2117
+ 7338520.855270 | 0) | put_prev_entity() {
2118
+ 7338520.855270 | 0) 0.074 us | check_cfs_rq_runtime();
2119
+ 7338520.855271 | 0) 0.575 us | }
2120
+ 7338520.855271 | 0) | set_next_entity() {
2121
+ 7338520.855272 | 0) 0.104 us | update_stats_wait_end();
2122
+ 7338520.855273 | 0) 0.834 us | }
2123
+ 7338520.855273 | 0) 5.872 us | }
2124
+ 7338520.855274 | 0) 0.079 us | paravirt_start_context_switch();
2125
+ 7338520.855275 | 0) 0.080 us | xen_read_cr0();
2126
+ 7338520.855276 | 0) | xen_write_cr0() {
2127
+ 7338520.855276 | 0) 0.091 us | paravirt_get_lazy_mode();
2128
+ 7338520.855277 | 0) 0.087 us | __xen_mc_entry();
2129
+ 7338520.855277 | 0) 0.076 us | paravirt_get_lazy_mode();
2130
+ 7338520.855278 | 0) 1.986 us | }
2131
+ 7338520.855278 | 0) | xen_load_sp0() {
2132
+ 7338520.855278 | 0) 0.066 us | paravirt_get_lazy_mode();
2133
+ 7338520.855279 | 0) 0.083 us | __xen_mc_entry();
2134
+ 7338520.855280 | 0) 0.082 us | paravirt_get_lazy_mode();
2135
+ 7338520.855280 | 0) 1.925 us | }
2136
+ 7338520.855281 | 0) | xen_load_tls() {
2137
+ 7338520.855281 | 0) 0.082 us | paravirt_get_lazy_mode();
2138
+ 7338520.855281 | 0) 0.080 us | paravirt_get_lazy_mode();
2139
+ 7338520.855282 | 0) 0.137 us | load_TLS_descriptor();
2140
+ 7338520.855283 | 0) 0.090 us | load_TLS_descriptor();
2141
+ 7338520.855283 | 0) 0.081 us | load_TLS_descriptor();
2142
+ 7338520.855284 | 0) 0.081 us | paravirt_get_lazy_mode();
2143
+ 7338520.855284 | 0) 3.397 us | }
2144
+ 7338520.855284 | 0) | xen_end_context_switch() {
2145
+ 7338520.855285 | 0) 0.618 us | xen_mc_flush();
2146
+ 7338520.855286 | 0) 0.086 us | paravirt_end_context_switch();
2147
+ 7338520.855286 | 0) 1.708 us | }
2148
+ ^C
2149
+ Ending tracing...
2150
+
2151
+ Understanding whether the time is on-CPU or blocked off-CPU directs the
2152
+ performance investigation.
2153
+
2154
+
2155
+ Use -h to print the USAGE message:
2156
+
2157
+ # ./funcgraph -h
2158
+ USAGE: funcgraph [-aCDhHPtT] [-m maxdepth] [-p PID] [-L TID] [-d secs] funcstring
2159
+ -a # all info (same as -HPt)
2160
+ -C # measure on-CPU time only
2161
+ -d seconds # trace duration, and use buffers
2162
+ -D # do not show function duration
2163
+ -h # this usage message
2164
+ -H # include column headers
2165
+ -m maxdepth # max stack depth to show
2166
+ -p PID # trace when this pid is on-CPU
2167
+ -L TID # trace when this thread is on-CPU
2168
+ -P # show process names & PIDs
2169
+ -t # show timestamps
2170
+ -T # comment function tails
2171
+ eg,
2172
+ funcgraph do_nanosleep # trace do_nanosleep() and children
2173
+ funcgraph -m 3 do_sys_open # trace do_sys_open() to 3 levels only
2174
+ funcgraph -a do_sys_open # include timestamps and process name
2175
+ funcgraph -p 198 do_sys_open # trace vfs_read() for PID 198 only
2176
+ funcgraph -d 1 do_sys_open >out # trace 1 sec, then write to file
2177
+
2178
+ See the man page and example file for more info.