mirror of
https://github.com/brendangregg/perf-tools.git
synced 2025-11-30 23:16:03 +07:00
2179 lines
152 KiB
Plaintext
2179 lines
152 KiB
Plaintext
Demonstrations of funcgraph, the Linux ftrace version.
|
|
|
|
|
|
I'll start by showing do_nanosleep(), since it's usually a low frequency
|
|
function that can be easily triggered (run "vmstat 1"):
|
|
|
|
# ./funcgraph do_nanosleep
|
|
Tracing "do_nanosleep"... Ctrl-C to end.
|
|
0) | do_nanosleep() {
|
|
0) | hrtimer_start_range_ns() {
|
|
0) | __hrtimer_start_range_ns() {
|
|
0) | lock_hrtimer_base.isra.24() {
|
|
0) 0.198 us | _raw_spin_lock_irqsave();
|
|
0) 0.908 us | }
|
|
0) 0.061 us | idle_cpu();
|
|
0) 0.117 us | ktime_get();
|
|
0) 0.371 us | enqueue_hrtimer();
|
|
0) 0.075 us | _raw_spin_unlock_irqrestore();
|
|
0) 3.447 us | }
|
|
0) 3.998 us | }
|
|
0) | schedule() {
|
|
0) | __schedule() {
|
|
0) 0.050 us | rcu_note_context_switch();
|
|
0) 0.055 us | _raw_spin_lock_irq();
|
|
0) | deactivate_task() {
|
|
0) | dequeue_task() {
|
|
0) 0.142 us | update_rq_clock();
|
|
0) | dequeue_task_fair() {
|
|
0) | dequeue_entity() {
|
|
0) | update_curr() {
|
|
0) 0.086 us | cpuacct_charge();
|
|
0) 0.757 us | }
|
|
0) 0.052 us | clear_buddies();
|
|
0) 0.103 us | update_cfs_load();
|
|
0) | update_cfs_shares() {
|
|
0) | reweight_entity() {
|
|
0) 0.077 us | update_curr();
|
|
0) 0.438 us | }
|
|
0) 0.794 us | }
|
|
0) 3.067 us | }
|
|
0) 0.064 us | set_next_buddy();
|
|
0) 0.066 us | update_cfs_load();
|
|
0) 0.085 us | update_cfs_shares();
|
|
0) | hrtick_update() {
|
|
0) 0.063 us | hrtick_start_fair();
|
|
0) 0.367 us | }
|
|
0) 5.188 us | }
|
|
0) 5.923 us | }
|
|
0) 6.228 us | }
|
|
0) | put_prev_task_fair() {
|
|
0) 0.078 us | put_prev_entity();
|
|
0) | put_prev_entity() {
|
|
0) 0.070 us | update_curr();
|
|
0) 0.074 us | __enqueue_entity();
|
|
0) 0.737 us | }
|
|
0) 1.367 us | }
|
|
0) | pick_next_task_fair() {
|
|
0) | pick_next_entity() {
|
|
0) 0.052 us | wakeup_preempt_entity.isra.95();
|
|
0) 0.070 us | clear_buddies();
|
|
0) 0.676 us | }
|
|
0) | set_next_entity() {
|
|
0) 0.052 us | update_stats_wait_end();
|
|
0) 0.435 us | }
|
|
0) | pick_next_entity() {
|
|
0) 0.065 us | clear_buddies();
|
|
0) 0.376 us | }
|
|
0) | set_next_entity() {
|
|
0) 0.067 us | update_stats_wait_end();
|
|
0) 0.374 us | }
|
|
0) 0.051 us | hrtick_start_fair();
|
|
0) 3.879 us | }
|
|
0) 0.057 us | paravirt_start_context_switch();
|
|
0) | xen_load_sp0() {
|
|
0) 0.050 us | paravirt_get_lazy_mode();
|
|
0) 0.057 us | __xen_mc_entry();
|
|
0) 0.056 us | paravirt_get_lazy_mode();
|
|
0) 1.441 us | }
|
|
0) | xen_load_tls() {
|
|
0) 0.049 us | paravirt_get_lazy_mode();
|
|
0) 0.051 us | paravirt_get_lazy_mode();
|
|
0) | load_TLS_descriptor() {
|
|
0) | arbitrary_virt_to_machine() {
|
|
0) 0.081 us | __virt_addr_valid();
|
|
0) 0.052 us | __phys_addr();
|
|
0) 0.084 us | get_phys_to_machine();
|
|
0) 1.115 us | }
|
|
0) 0.053 us | __xen_mc_entry();
|
|
0) 1.744 us | }
|
|
0) | load_TLS_descriptor() {
|
|
0) | arbitrary_virt_to_machine() {
|
|
0) 0.053 us | __virt_addr_valid();
|
|
0) 0.056 us | __phys_addr();
|
|
0) 0.057 us | get_phys_to_machine();
|
|
0) 0.990 us | }
|
|
0) 0.053 us | __xen_mc_entry();
|
|
0) 1.583 us | } /* load_TLS_descriptor */
|
|
0) | load_TLS_descriptor() {
|
|
0) | arbitrary_virt_to_machine() {
|
|
0) 0.057 us | __virt_addr_valid();
|
|
0) 0.051 us | __phys_addr();
|
|
0) 0.053 us | get_phys_to_machine();
|
|
0) 0.978 us | }
|
|
0) 0.052 us | __xen_mc_entry();
|
|
0) 1.586 us | }
|
|
0) 0.052 us | paravirt_get_lazy_mode();
|
|
0) 6.630 us | }
|
|
0) | xen_end_context_switch() {
|
|
0) 0.666 us | xen_mc_flush();
|
|
0) 0.050 us | paravirt_end_context_switch();
|
|
0) 1.286 us | }
|
|
0) 0.172 us | xen_write_msr_safe();
|
|
------------------------------------------
|
|
0) platfor-3210 => vmstat-2854
|
|
------------------------------------------
|
|
|
|
0) | do_nanosleep() {
|
|
0) | hrtimer_start_range_ns() {
|
|
0) | __hrtimer_start_range_ns() {
|
|
0) | lock_hrtimer_base.isra.24() {
|
|
0) 0.217 us | _raw_spin_lock_irqsave();
|
|
0) 0.831 us | }
|
|
0) 0.066 us | idle_cpu();
|
|
0) 0.123 us | ktime_get();
|
|
0) 1.172 us | enqueue_hrtimer();
|
|
0) 0.089 us | _raw_spin_unlock_irqrestore();
|
|
0) 4.050 us | }
|
|
0) 4.523 us | }
|
|
[...]
|
|
|
|
The default output shows the function call graph, including all child kernel
|
|
functions, along with the function duration times. These times are printed on
|
|
either the return line for the function ("}"), or for leaf functions, on the
|
|
same line.
|
|
|
|
The format of this output is documented in the function graph section of the
|
|
kernel source file Documentation/trace/ftrace.txt.
|
|
|
|
This particular example shows the workings of do_nanosleep, in the first dozen
|
|
lines, and then schedule() is called to sleep this thread and run another. The
|
|
inner workings of schedule() is included in the output.
|
|
|
|
This output is great for determining the behavior of a certain kernel function,
|
|
and to identify functions that can be studied in more details using other, lower
|
|
overhead, tools (eg, funccount(8), functrace(8), kprobe(8)). The overheads
|
|
of funcgraph are moderate, since all kernel functions are traced in case
|
|
they are executed, then included in the output if they are.
|
|
|
|
Now, if you want to start understanding the general behavior of the kernel,
|
|
without a certain kernel function in mind, you may be better to begin with
|
|
CPU stack profiling using perf and generating a flame graph. Such an approach
|
|
has low overhead, as you are in control of the frequency of event collection
|
|
(eg, gathering CPU stacks at 99 Hertz). For instructions, see:
|
|
http://www.brendangregg.com/perf.html#FlameGraphs
|
|
|
|
|
|
|
|
On newer Linux kernels, you can use the -m option to limit the function
|
|
depth. Eg, 3 levels only:
|
|
|
|
# ./funcgraph -m 3 do_nanosleep
|
|
Tracing "do_nanosleep"... Ctrl-C to end.
|
|
1) | do_nanosleep() {
|
|
1) | hrtimer_start_range_ns() {
|
|
1) 1.115 us | __hrtimer_start_range_ns();
|
|
1) 1.919 us | }
|
|
1) | schedule() {
|
|
1) | __schedule() {
|
|
1) 1000131 us | }
|
|
1) 11.006 us | xen_evtchn_do_upcall();
|
|
1) 1000149 us | }
|
|
1) | hrtimer_cancel() {
|
|
1) 0.212 us | hrtimer_try_to_cancel();
|
|
1) 0.699 us | }
|
|
1) 1000154 us | }
|
|
|
|
Neat.
|
|
|
|
|
|
Now do_sys_open() to 3 levels:
|
|
|
|
0) | do_sys_open() {
|
|
0) | getname() {
|
|
0) 0.296 us | getname_flags();
|
|
0) 0.768 us | }
|
|
0) | get_unused_fd_flags() {
|
|
0) 0.397 us | __alloc_fd();
|
|
0) 0.827 us | }
|
|
0) | do_filp_open() {
|
|
0) 4.166 us | path_openat();
|
|
0) 4.617 us | }
|
|
0) | __fsnotify_parent() {
|
|
0) 0.083 us | dget_parent();
|
|
0) 0.063 us | dput();
|
|
0) 0.883 us | }
|
|
0) 0.058 us | fsnotify();
|
|
0) | fd_install() {
|
|
0) 0.133 us | __fd_install();
|
|
0) 0.525 us | }
|
|
0) | putname() {
|
|
0) 0.198 us | final_putname();
|
|
0) 0.512 us | }
|
|
0) 10.777 us | }
|
|
[...]
|
|
|
|
I can then pick the highest latency child function, then run funcgraph again
|
|
using it as the target.
|
|
|
|
|
|
Without timestamps (-D to elide duration):
|
|
|
|
# ./funcgraph -Dm 3 do_sys_open
|
|
Tracing "do_sys_open"... Ctrl-C to end.
|
|
1) do_sys_open() {
|
|
1) getname() {
|
|
1) getname_flags();
|
|
1) }
|
|
1) get_unused_fd_flags() {
|
|
1) __alloc_fd();
|
|
1) }
|
|
1) do_filp_open() {
|
|
1) path_openat();
|
|
1) }
|
|
1) __fsnotify_parent();
|
|
1) fsnotify();
|
|
1) fd_install() {
|
|
1) __fd_install();
|
|
1) }
|
|
1) putname() {
|
|
1) final_putname();
|
|
1) }
|
|
1) }
|
|
|
|
Beautiful.
|
|
|
|
I could elide the CPU column as well, but I want to leave it: if it changes
|
|
half-way through some output, you know the CPU buffer has switched, and the
|
|
output may be shuffled.
|
|
|
|
|
|
For this example, I trace vfs_read() calls by process ID 5363: which is a bash
|
|
shell. I also include headers (-H) and absolute timestamps (-t). While
|
|
tracing, in that bash shell, I typed the word "hello":
|
|
|
|
# ./funcgraph -Htp 5363 vfs_read
|
|
Tracing "vfs_read" for PID 5363... Ctrl-C to end.
|
|
# tracer: function_graph
|
|
#
|
|
# TIME CPU DURATION FUNCTION CALLS
|
|
# | | | | | | | |
|
|
7238523.638008 | 0) | finish_task_switch() {
|
|
7238523.638012 | 0) | xen_evtchn_do_upcall() {
|
|
7238523.638012 | 0) | irq_enter() {
|
|
7238523.638013 | 0) 0.153 us | rcu_irq_enter();
|
|
7238523.638014 | 0) 1.144 us | }
|
|
7238523.638014 | 0) 0.056 us | exit_idle();
|
|
7238523.638014 | 0) | __xen_evtchn_do_upcall() {
|
|
7238523.638015 | 0) | evtchn_2l_handle_events() {
|
|
7238523.638015 | 0) 0.057 us | irq_from_virq();
|
|
7238523.638015 | 0) | evtchn_from_irq() {
|
|
7238523.638015 | 0) | irq_get_irq_data() {
|
|
7238523.638016 | 0) 0.058 us | irq_to_desc();
|
|
7238523.638016 | 0) 0.565 us | }
|
|
7238523.638016 | 0) 0.966 us | }
|
|
7238523.638016 | 0) | get_evtchn_to_irq() {
|
|
7238523.638017 | 0) 0.050 us | evtchn_2l_max_channels();
|
|
7238523.638017 | 0) 0.386 us | }
|
|
7238523.638017 | 0) | generic_handle_irq() {
|
|
7238523.638017 | 0) 0.058 us | irq_to_desc();
|
|
7238523.638018 | 0) | handle_percpu_irq() {
|
|
7238523.638018 | 0) | ack_dynirq() {
|
|
7238523.638018 | 0) | evtchn_from_irq() {
|
|
7238523.638018 | 0) | irq_get_irq_data() {
|
|
7238523.638019 | 0) 0.049 us | irq_to_desc();
|
|
7238523.638019 | 0) 0.441 us | }
|
|
7238523.638019 | 0) 0.772 us | }
|
|
7238523.638019 | 0) 0.049 us | irq_move_irq();
|
|
7238523.638020 | 0) 0.060 us | evtchn_2l_clear_pending();
|
|
7238523.638020 | 0) 1.810 us | }
|
|
7238523.638020 | 0) | handle_irq_event_percpu() {
|
|
7238523.638020 | 0) | xen_irq_work_interrupt() {
|
|
7238523.638021 | 0) | irq_enter() {
|
|
7238523.638021 | 0) 0.056 us | rcu_irq_enter();
|
|
7238523.638021 | 0) 0.384 us | }
|
|
7238523.638021 | 0) | __wake_up() {
|
|
7238523.638022 | 0) 0.059 us | _raw_spin_lock_irqsave();
|
|
7238523.638022 | 0) | __wake_up_common() {
|
|
7238523.638022 | 0) | autoremove_wake_function() {
|
|
7238523.638023 | 0) | default_wake_function() {
|
|
7238523.638023 | 0) | try_to_wake_up() {
|
|
7238523.638023 | 0) 0.220 us | _raw_spin_lock_irqsave();
|
|
7238523.638024 | 0) 0.270 us | task_waking_fair();
|
|
7238523.638024 | 0) | select_task_rq_fair() {
|
|
7238523.638025 | 0) 0.055 us | source_load();
|
|
7238523.638025 | 0) 0.056 us | target_load();
|
|
7238523.638025 | 0) 0.060 us | idle_cpu();
|
|
7238523.638026 | 0) 0.054 us | cpus_share_cache();
|
|
7238523.638026 | 0) 0.083 us | idle_cpu();
|
|
7238523.638026 | 0) 2.060 us | }
|
|
7238523.638027 | 0) 0.051 us | _raw_spin_lock();
|
|
7238523.638027 | 0) | ttwu_do_activate.constprop.124() {
|
|
7238523.638027 | 0) | activate_task() {
|
|
7238523.638027 | 0) | enqueue_task() {
|
|
7238523.638028 | 0) 0.120 us | update_rq_clock();
|
|
7238523.638028 | 0) | enqueue_task_fair() {
|
|
7238523.638028 | 0) | enqueue_entity() {
|
|
7238523.638028 | 0) 0.147 us | update_curr();
|
|
7238523.638029 | 0) 0.055 us | __compute_runnable_contrib.part.51();
|
|
7238523.638029 | 0) 0.066 us | __update_entity_load_avg_contrib();
|
|
7238523.638029 | 0) 0.141 us | update_cfs_rq_blocked_load();
|
|
7238523.638030 | 0) 0.068 us | account_entity_enqueue();
|
|
7238523.638030 | 0) 0.351 us | update_cfs_shares();
|
|
7238523.638031 | 0) 0.053 us | place_entity();
|
|
7238523.638031 | 0) 0.082 us | __enqueue_entity();
|
|
7238523.638032 | 0) 0.050 us | update_cfs_rq_blocked_load();
|
|
7238523.638032 | 0) 3.922 us | }
|
|
7238523.638032 | 0) | enqueue_entity() {
|
|
7238523.638033 | 0) 0.058 us | update_curr();
|
|
7238523.638033 | 0) 0.056 us | __compute_runnable_contrib.part.51();
|
|
7238523.638033 | 0) 0.078 us | __update_entity_load_avg_contrib();
|
|
7238523.638034 | 0) 0.055 us | update_cfs_rq_blocked_load();
|
|
7238523.638034 | 0) 0.064 us | account_entity_enqueue();
|
|
7238523.638034 | 0) 0.059 us | update_cfs_shares();
|
|
7238523.638035 | 0) 0.050 us | place_entity();
|
|
7238523.638036 | 0) 0.057 us | __enqueue_entity();
|
|
7238523.638036 | 0) 3.829 us | }
|
|
7238523.638037 | 0) 0.057 us | hrtick_update();
|
|
7238523.638037 | 0) 8.876 us | }
|
|
7238523.638037 | 0) 9.698 us | }
|
|
7238523.638037 | 0) 10.113 us | }
|
|
7238523.638038 | 0) | ttwu_do_wakeup() {
|
|
7238523.638038 | 0) | check_preempt_curr() {
|
|
7238523.638038 | 0) | resched_task() {
|
|
7238523.638038 | 0) | xen_smp_send_reschedule() {
|
|
7238523.638038 | 0) | xen_send_IPI_one() {
|
|
7238523.638039 | 0) | notify_remote_via_irq() {
|
|
7238523.638039 | 0) | evtchn_from_irq() {
|
|
7238523.638039 | 0) | irq_get_irq_data() {
|
|
7238523.638039 | 0) 0.051 us | irq_to_desc();
|
|
7238523.638039 | 0) 0.518 us | }
|
|
7238523.638040 | 0) 0.955 us | }
|
|
7238523.638041 | 0) 2.001 us | }
|
|
7238523.638041 | 0) 2.391 us | }
|
|
7238523.638041 | 0) 2.745 us | }
|
|
7238523.638041 | 0) 3.183 us | }
|
|
7238523.638042 | 0) 3.663 us | }
|
|
7238523.638042 | 0) 4.621 us | }
|
|
7238523.638043 | 0) 15.443 us | }
|
|
7238523.638043 | 0) 0.067 us | _raw_spin_unlock();
|
|
7238523.638043 | 0) 0.167 us | ttwu_stat();
|
|
7238523.638044 | 0) 0.087 us | _raw_spin_unlock_irqrestore();
|
|
7238523.638044 | 0) 21.447 us | }
|
|
7238523.638045 | 0) 21.940 us | }
|
|
7238523.638045 | 0) 22.406 us | }
|
|
7238523.638045 | 0) 23.071 us | }
|
|
7238523.638045 | 0) 0.073 us | _raw_spin_unlock_irqrestore();
|
|
7238523.638046 | 0) 24.382 us | }
|
|
7238523.638046 | 0) | irq_exit() {
|
|
7238523.638047 | 0) 0.085 us | idle_cpu();
|
|
7238523.638047 | 0) 0.093 us | rcu_irq_exit();
|
|
7238523.638048 | 0) 1.242 us | }
|
|
7238523.638048 | 0) 27.410 us | }
|
|
7238523.638049 | 0) 0.139 us | add_interrupt_randomness();
|
|
7238523.638049 | 0) 0.089 us | note_interrupt();
|
|
7238523.638050 | 0) 29.582 us | }
|
|
7238523.638050 | 0) 32.112 us | }
|
|
7238523.638050 | 0) 32.951 us | }
|
|
7238523.638051 | 0) 35.765 us | }
|
|
7238523.638051 | 0) 36.170 us | }
|
|
7238523.638051 | 0) | irq_exit() {
|
|
7238523.638051 | 0) 0.082 us | idle_cpu();
|
|
7238523.638052 | 0) 0.071 us | rcu_irq_exit();
|
|
7238523.638053 | 0) 1.328 us | }
|
|
7238523.638053 | 0) 40.563 us | }
|
|
7238523.638054 | 0) | __mmdrop() {
|
|
7238523.638054 | 0) | pgd_free() {
|
|
7238523.638055 | 0) 0.151 us | _raw_spin_lock();
|
|
7238523.638055 | 0) 0.069 us | _raw_spin_unlock();
|
|
7238523.638056 | 0) | xen_pgd_free() {
|
|
7238523.638056 | 0) 0.067 us | xen_get_user_pgd();
|
|
7238523.638057 | 0) | free_pages() {
|
|
7238523.638057 | 0) | __free_pages() {
|
|
7238523.638057 | 0) | free_hot_cold_page() {
|
|
7238523.638058 | 0) 0.080 us | free_pages_prepare();
|
|
7238523.638058 | 0) 0.363 us | get_pfnblock_flags_mask();
|
|
7238523.638059 | 0) 1.626 us | }
|
|
7238523.638059 | 0) 2.317 us | }
|
|
7238523.638060 | 0) 2.847 us | }
|
|
7238523.638060 | 0) 3.908 us | }
|
|
7238523.638060 | 0) | free_pages() {
|
|
7238523.638060 | 0) | __free_pages() {
|
|
7238523.638061 | 0) | free_hot_cold_page() {
|
|
7238523.638061 | 0) 0.083 us | free_pages_prepare();
|
|
7238523.638061 | 0) 0.139 us | get_pfnblock_flags_mask();
|
|
7238523.638062 | 0) 1.062 us | }
|
|
7238523.638062 | 0) 1.534 us | }
|
|
7238523.638062 | 0) 2.038 us | }
|
|
7238523.638063 | 0) 8.268 us | }
|
|
7238523.638064 | 0) 0.160 us | destroy_context();
|
|
7238523.638065 | 0) 0.384 us | kmem_cache_free();
|
|
7238523.638066 | 0) 11.433 us | }
|
|
7238523.638066 | 0) 54.448 us | }
|
|
7238523.638066 | 0) 19354026 us | } /* __schedule */
|
|
7238523.638067 | 0) 19354026 us | } /* schedule */
|
|
7238523.638067 | 0) 19354027 us | } /* schedule_timeout */
|
|
7238523.638067 | 0) 0.121 us | down_read();
|
|
7238523.638068 | 0) | copy_from_read_buf() {
|
|
7238523.638069 | 0) | tty_audit_add_data() {
|
|
7238523.638070 | 0) 0.220 us | _raw_spin_lock_irqsave();
|
|
7238523.638071 | 0) 0.097 us | _raw_spin_unlock_irqrestore();
|
|
7238523.638071 | 0) 0.078 us | _raw_spin_lock_irqsave();
|
|
7238523.638072 | 0) 0.077 us | _raw_spin_unlock_irqrestore();
|
|
7238523.638072 | 0) 2.795 us | }
|
|
7238523.638073 | 0) 4.183 us | }
|
|
7238523.638073 | 0) 0.084 us | copy_from_read_buf();
|
|
7238523.638074 | 0) 0.078 us | n_tty_set_room();
|
|
7238523.638074 | 0) 0.082 us | n_tty_write_wakeup();
|
|
7238523.638075 | 0) | __wake_up() {
|
|
7238523.638075 | 0) 0.084 us | _raw_spin_lock_irqsave();
|
|
7238523.638076 | 0) | __wake_up_common() {
|
|
7238523.638076 | 0) 0.095 us | pollwake();
|
|
7238523.638077 | 0) 0.819 us | }
|
|
7238523.638077 | 0) 0.074 us | _raw_spin_unlock_irqrestore();
|
|
7238523.638078 | 0) 2.463 us | }
|
|
7238523.638078 | 0) 0.071 us | n_tty_set_room();
|
|
7238523.638078 | 0) 0.082 us | up_read();
|
|
7238523.638079 | 0) | remove_wait_queue() {
|
|
7238523.638079 | 0) 0.082 us | _raw_spin_lock_irqsave();
|
|
7238523.638080 | 0) 0.086 us | _raw_spin_unlock_irqrestore();
|
|
7238523.638080 | 0) 1.239 us | }
|
|
7238523.638081 | 0) 0.142 us | mutex_unlock();
|
|
7238523.638081 | 0) 19354047 us | } /* n_tty_read */
|
|
7238523.638082 | 0) | tty_ldisc_deref() {
|
|
7238523.638082 | 0) 0.064 us | ldsem_up_read();
|
|
7238523.638082 | 0) 0.554 us | }
|
|
7238523.638083 | 0) 0.074 us | get_seconds();
|
|
7238523.638083 | 0) 19354052 us | } /* tty_read */
|
|
7238523.638084 | 0) 0.352 us | __fsnotify_parent();
|
|
7238523.638085 | 0) 0.178 us | fsnotify();
|
|
7238523.638085 | 0) 19354058 us | } /* vfs_read */
|
|
7238523.638156 | 0) | vfs_read() {
|
|
7238523.638157 | 0) | rw_verify_area() {
|
|
7238523.638157 | 0) | security_file_permission() {
|
|
7238523.638158 | 0) | apparmor_file_permission() {
|
|
7238523.638158 | 0) 0.183 us | common_file_perm();
|
|
7238523.638159 | 0) 0.778 us | }
|
|
7238523.638159 | 0) 0.081 us | __fsnotify_parent();
|
|
7238523.638160 | 0) 0.104 us | fsnotify();
|
|
7238523.638160 | 0) 2.662 us | }
|
|
7238523.638161 | 0) 3.337 us | }
|
|
7238523.638161 | 0) | tty_read() {
|
|
7238523.638161 | 0) 0.067 us | tty_paranoia_check();
|
|
7238523.638162 | 0) | tty_ldisc_ref_wait() {
|
|
7238523.638162 | 0) 0.080 us | } /* ldsem_down_read */
|
|
7238523.638163 | 0) 0.637 us | }
|
|
7238523.638163 | 0) | n_tty_read() {
|
|
7238523.638164 | 0) 0.078 us | _raw_spin_lock_irq();
|
|
7238523.638164 | 0) 0.090 us | mutex_lock_interruptible();
|
|
7238523.638165 | 0) 0.078 us | down_read();
|
|
7238523.638165 | 0) | add_wait_queue() {
|
|
7238523.638166 | 0) 0.070 us | _raw_spin_lock_irqsave();
|
|
7238523.638166 | 0) 0.084 us | _raw_spin_unlock_irqrestore();
|
|
7238523.638167 | 0) 1.111 us | }
|
|
7238523.638167 | 0) 0.083 us | tty_hung_up_p();
|
|
7238523.638168 | 0) 0.080 us | n_tty_set_room();
|
|
7238523.638169 | 0) 0.068 us | up_read();
|
|
7238523.638169 | 0) | schedule_timeout() {
|
|
7238523.638170 | 0) | schedule() {
|
|
7238523.638170 | 0) | __schedule() {
|
|
7238523.638171 | 0) 0.078 us | rcu_note_context_switch();
|
|
7238523.638171 | 0) 0.081 us | _raw_spin_lock_irq();
|
|
7238523.638172 | 0) | deactivate_task() {
|
|
7238523.638172 | 0) | dequeue_task() {
|
|
7238523.638172 | 0) 0.181 us | update_rq_clock();
|
|
7238523.638173 | 0) | dequeue_task_fair() {
|
|
7238523.638174 | 0) | dequeue_entity() {
|
|
7238523.638174 | 0) | update_curr() {
|
|
7238523.638174 | 0) 0.257 us | cpuacct_charge();
|
|
7238523.638175 | 0) 0.982 us | }
|
|
7238523.638175 | 0) 0.079 us | update_cfs_rq_blocked_load();
|
|
7238523.638176 | 0) 0.080 us | clear_buddies();
|
|
7238523.638177 | 0) 0.096 us | account_entity_dequeue();
|
|
7238523.638177 | 0) | update_cfs_shares() {
|
|
7238523.638178 | 0) 0.113 us | update_curr();
|
|
7238523.638178 | 0) 0.087 us | account_entity_dequeue();
|
|
7238523.638179 | 0) 0.073 us | account_entity_enqueue();
|
|
7238523.638179 | 0) 1.948 us | }
|
|
7238523.638180 | 0) 5.913 us | }
|
|
7238523.638180 | 0) | dequeue_entity() {
|
|
7238523.638180 | 0) 0.086 us | update_curr();
|
|
7238523.638181 | 0) 0.079 us | update_cfs_rq_blocked_load();
|
|
7238523.638182 | 0) 0.076 us | clear_buddies();
|
|
7238523.638182 | 0) 0.076 us | account_entity_dequeue();
|
|
7238523.638183 | 0) 0.104 us | update_cfs_shares();
|
|
7238523.638183 | 0) 3.171 us | }
|
|
7238523.638184 | 0) 0.076 us | hrtick_update();
|
|
7238523.638184 | 0) 10.785 us | }
|
|
7238523.638184 | 0) 12.057 us | }
|
|
7238523.638185 | 0) 12.704 us | }
|
|
7238523.638185 | 0) | pick_next_task_fair() {
|
|
7238523.638185 | 0) 0.074 us | check_cfs_rq_runtime();
|
|
7238523.638186 | 0) | pick_next_entity() {
|
|
7238523.638186 | 0) 0.067 us | clear_buddies();
|
|
7238523.638187 | 0) 0.544 us | }
|
|
7238523.638187 | 0) | put_prev_entity() {
|
|
7238523.638187 | 0) 0.079 us | check_cfs_rq_runtime();
|
|
7238523.638188 | 0) 0.612 us | }
|
|
7238523.638188 | 0) | put_prev_entity() {
|
|
7238523.638188 | 0) 0.076 us | check_cfs_rq_runtime();
|
|
7238523.638189 | 0) 0.618 us | }
|
|
7238523.638189 | 0) | set_next_entity() {
|
|
7238523.638190 | 0) 0.078 us | update_stats_wait_end();
|
|
7238523.638190 | 0) 0.712 us | }
|
|
7238523.638190 | 0) 5.023 us | }
|
|
7238523.638191 | 0) 0.086 us | paravirt_start_context_switch();
|
|
7238523.638192 | 0) 0.070 us | xen_read_cr0();
|
|
7238523.638193 | 0) | xen_write_cr0() {
|
|
7238523.638193 | 0) 0.085 us | paravirt_get_lazy_mode();
|
|
7238523.638194 | 0) 0.085 us | __xen_mc_entry();
|
|
7238523.638194 | 0) 0.077 us | paravirt_get_lazy_mode();
|
|
7238523.638195 | 0) 1.822 us | }
|
|
7238523.638195 | 0) | xen_load_sp0() {
|
|
7238523.638195 | 0) 0.074 us | paravirt_get_lazy_mode();
|
|
7238523.638196 | 0) 0.085 us | __xen_mc_entry();
|
|
7238523.638196 | 0) 0.078 us | paravirt_get_lazy_mode();
|
|
7238523.638197 | 0) 1.754 us | }
|
|
7238523.638197 | 0) | xen_load_tls() {
|
|
7238523.638198 | 0) 0.069 us | paravirt_get_lazy_mode();
|
|
7238523.638198 | 0) 0.082 us | paravirt_get_lazy_mode();
|
|
7238523.638199 | 0) 0.127 us | load_TLS_descriptor();
|
|
7238523.638199 | 0) 0.080 us | load_TLS_descriptor();
|
|
7238523.638200 | 0) 0.094 us | load_TLS_descriptor();
|
|
7238523.638201 | 0) 0.081 us | paravirt_get_lazy_mode();
|
|
7238523.638202 | 0) 4.155 us | }
|
|
7238523.638202 | 0) | xen_end_context_switch() {
|
|
7238523.638202 | 0) 0.699 us | xen_mc_flush();
|
|
7238523.638204 | 0) 0.089 us | paravirt_end_context_switch();
|
|
7238523.638204 | 0) 1.915 us | }
|
|
7238523.797630 | 0) | finish_task_switch() {
|
|
7238523.797634 | 0) | xen_evtchn_do_upcall() {
|
|
7238523.797634 | 0) | irq_enter() {
|
|
7238523.797634 | 0) 0.134 us | rcu_irq_enter();
|
|
7238523.797635 | 0) 0.688 us | }
|
|
7238523.797635 | 0) 0.055 us | exit_idle();
|
|
7238523.797635 | 0) | __xen_evtchn_do_upcall() {
|
|
7238523.797636 | 0) | evtchn_2l_handle_events() {
|
|
7238523.797636 | 0) 0.048 us | irq_from_virq();
|
|
7238523.797636 | 0) | evtchn_from_irq() {
|
|
7238523.797636 | 0) | irq_get_irq_data() {
|
|
7238523.797637 | 0) 0.061 us | irq_to_desc();
|
|
7238523.797637 | 0) 0.564 us | }
|
|
7238523.797637 | 0) 0.954 us | }
|
|
7238523.797638 | 0) | get_evtchn_to_irq() {
|
|
7238523.797638 | 0) 0.057 us | evtchn_2l_max_channels();
|
|
7238523.797638 | 0) 0.409 us | }
|
|
7238523.797638 | 0) | generic_handle_irq() {
|
|
7238523.797638 | 0) 0.052 us | irq_to_desc();
|
|
7238523.797639 | 0) | handle_percpu_irq() {
|
|
7238523.797639 | 0) | ack_dynirq() {
|
|
7238523.797639 | 0) | evtchn_from_irq() {
|
|
7238523.797639 | 0) | irq_get_irq_data() {
|
|
7238523.797640 | 0) 0.057 us | irq_to_desc();
|
|
7238523.797640 | 0) 0.440 us | }
|
|
7238523.797640 | 0) 0.746 us | }
|
|
7238523.797640 | 0) 0.056 us | irq_move_irq();
|
|
7238523.797641 | 0) 0.058 us | evtchn_2l_clear_pending();
|
|
7238523.797641 | 0) 1.729 us | }
|
|
7238523.797641 | 0) | handle_irq_event_percpu() {
|
|
7238523.797641 | 0) | xen_irq_work_interrupt() {
|
|
7238523.797642 | 0) | irq_enter() {
|
|
7238523.797642 | 0) 0.053 us | rcu_irq_enter();
|
|
7238523.797642 | 0) 0.396 us | }
|
|
7238523.797642 | 0) | __wake_up() {
|
|
7238523.797643 | 0) 0.053 us | _raw_spin_lock_irqsave();
|
|
7238523.797643 | 0) | __wake_up_common() {
|
|
7238523.797643 | 0) | autoremove_wake_function() {
|
|
7238523.797644 | 0) | default_wake_function() {
|
|
7238523.797644 | 0) | try_to_wake_up() {
|
|
7238523.797644 | 0) 0.228 us | _raw_spin_lock_irqsave();
|
|
7238523.797645 | 0) 0.194 us | task_waking_fair();
|
|
7238523.797645 | 0) | select_task_rq_fair() {
|
|
7238523.797645 | 0) 0.051 us | source_load();
|
|
7238523.797646 | 0) 0.050 us | target_load();
|
|
7238523.797646 | 0) 0.067 us | idle_cpu();
|
|
7238523.797647 | 0) 0.050 us | cpus_share_cache();
|
|
7238523.797647 | 0) 0.068 us | idle_cpu();
|
|
7238523.797647 | 0) 1.983 us | }
|
|
7238523.797648 | 0) 0.051 us | _raw_spin_lock();
|
|
7238523.797648 | 0) | ttwu_do_activate.constprop.124() {
|
|
7238523.797648 | 0) | activate_task() {
|
|
7238523.797648 | 0) | enqueue_task() {
|
|
7238523.797648 | 0) 0.135 us | update_rq_clock();
|
|
7238523.797649 | 0) | enqueue_task_fair() {
|
|
7238523.797649 | 0) | enqueue_entity() {
|
|
7238523.797649 | 0) 0.059 us | update_curr();
|
|
7238523.797650 | 0) 0.073 us | __compute_runnable_contrib.part.51();
|
|
7238523.797650 | 0) 0.066 us | __update_entity_load_avg_contrib();
|
|
7238523.797650 | 0) 0.059 us | update_cfs_rq_blocked_load();
|
|
7238523.797651 | 0) 0.064 us | account_entity_enqueue();
|
|
7238523.797651 | 0) 0.137 us | update_cfs_shares();
|
|
7238523.797651 | 0) 0.054 us | place_entity();
|
|
7238523.797652 | 0) 0.074 us | __enqueue_entity();
|
|
7238523.797652 | 0) 3.085 us | }
|
|
7238523.797652 | 0) | enqueue_entity() {
|
|
7238523.797653 | 0) 0.058 us | update_curr();
|
|
7238523.797654 | 0) 0.049 us | update_cfs_rq_blocked_load();
|
|
7238523.797654 | 0) 0.057 us | account_entity_enqueue();
|
|
7238523.797655 | 0) 0.066 us | update_cfs_shares();
|
|
7238523.797655 | 0) 0.049 us | place_entity();
|
|
7238523.797655 | 0) 0.051 us | __enqueue_entity();
|
|
7238523.797656 | 0) 3.432 us | }
|
|
7238523.797656 | 0) 0.049 us | hrtick_update();
|
|
7238523.797657 | 0) 7.552 us | }
|
|
7238523.797657 | 0) 8.414 us | }
|
|
7238523.797657 | 0) 8.753 us | }
|
|
7238523.797657 | 0) | ttwu_do_wakeup() {
|
|
7238523.797657 | 0) | check_preempt_curr() {
|
|
7238523.797657 | 0) | resched_task() {
|
|
7238523.797658 | 0) | xen_smp_send_reschedule() {
|
|
7238523.797658 | 0) | xen_send_IPI_one() {
|
|
7238523.797658 | 0) | notify_remote_via_irq() {
|
|
7238523.797658 | 0) | evtchn_from_irq() {
|
|
7238523.797658 | 0) | irq_get_irq_data() {
|
|
7238523.797659 | 0) 0.069 us | irq_to_desc();
|
|
7238523.797659 | 0) 0.504 us | }
|
|
7238523.797659 | 0) 0.869 us | }
|
|
7238523.797660 | 0) 1.940 us | } /* notify_remote_via_irq */
|
|
7238523.797660 | 0) 2.319 us | }
|
|
7238523.797660 | 0) 2.712 us | }
|
|
7238523.797661 | 0) 3.147 us | }
|
|
7238523.797661 | 0) 3.625 us | }
|
|
7238523.797662 | 0) 4.525 us | }
|
|
7238523.797662 | 0) 13.961 us | }
|
|
7238523.797662 | 0) 0.069 us | _raw_spin_unlock();
|
|
7238523.797663 | 0) 0.168 us | ttwu_stat();
|
|
7238523.797663 | 0) 0.076 us | _raw_spin_unlock_irqrestore();
|
|
7238523.797664 | 0) 19.821 us | }
|
|
7238523.797664 | 0) 20.301 us | }
|
|
7238523.797664 | 0) 20.796 us | }
|
|
7238523.797664 | 0) 21.367 us | }
|
|
7238523.797665 | 0) 0.071 us | _raw_spin_unlock_irqrestore();
|
|
7238523.797665 | 0) 22.621 us | }
|
|
7238523.797666 | 0) | irq_exit() {
|
|
7238523.797666 | 0) 0.085 us | idle_cpu();
|
|
7238523.797666 | 0) 0.106 us | rcu_irq_exit();
|
|
7238523.797667 | 0) 1.220 us | }
|
|
7238523.797667 | 0) 25.712 us | }
|
|
7238523.797668 | 0) 0.138 us | add_interrupt_randomness();
|
|
7238523.797668 | 0) 0.092 us | note_interrupt();
|
|
7238523.797669 | 0) 27.713 us | }
|
|
7238523.797669 | 0) 30.163 us | }
|
|
7238523.797669 | 0) 31.017 us | }
|
|
7238523.797670 | 0) 33.953 us | }
|
|
7238523.797670 | 0) 34.384 us | }
|
|
7238523.797670 | 0) | irq_exit() {
|
|
7238523.797671 | 0) 0.079 us | idle_cpu();
|
|
7238523.797671 | 0) 0.072 us | rcu_irq_exit();
|
|
7238523.797672 | 0) 1.023 us | }
|
|
7238523.797672 | 0) 37.789 us | }
|
|
7238523.797672 | 0) 39.298 us | }
|
|
7238523.797673 | 0) 159502.1 us | }
|
|
7238523.797673 | 0) 159502.8 us | }
|
|
7238523.797673 | 0) 159503.5 us | }
|
|
7238523.797674 | 0) 0.112 us | down_read();
|
|
7238523.797675 | 0) | copy_from_read_buf() {
|
|
7238523.797676 | 0) | tty_audit_add_data() {
|
|
7238523.797676 | 0) 0.226 us | _raw_spin_lock_irqsave();
|
|
7238523.797677 | 0) 0.075 us | _raw_spin_unlock_irqrestore();
|
|
7238523.797677 | 0) 0.101 us | _raw_spin_lock_irqsave();
|
|
7238523.797678 | 0) 0.068 us | _raw_spin_unlock_irqrestore();
|
|
7238523.797679 | 0) 2.656 us | }
|
|
7238523.797679 | 0) 3.762 us | }
|
|
7238523.797679 | 0) 0.145 us | copy_from_read_buf();
|
|
7238523.797680 | 0) 0.068 us | n_tty_set_room();
|
|
7238523.797680 | 0) 0.058 us | n_tty_write_wakeup();
|
|
7238523.797681 | 0) | __wake_up() {
|
|
7238523.797682 | 0) 0.060 us | _raw_spin_lock_irqsave();
|
|
7238523.797682 | 0) | __wake_up_common() {
|
|
7238523.797683 | 0) 0.083 us | pollwake();
|
|
7238523.797683 | 0) 0.739 us | }
|
|
7238523.797683 | 0) 0.069 us | _raw_spin_unlock_irqrestore();
|
|
7238523.797684 | 0) 2.745 us | }
|
|
7238523.797684 | 0) 0.061 us | n_tty_set_room();
|
|
7238523.797685 | 0) 0.074 us | up_read();
|
|
7238523.797685 | 0) | remove_wait_queue() {
|
|
7238523.797685 | 0) 0.075 us | _raw_spin_lock_irqsave();
|
|
7238523.797686 | 0) 0.070 us | _raw_spin_unlock_irqrestore();
|
|
7238523.797686 | 0) 1.110 us | }
|
|
7238523.797687 | 0) 0.146 us | mutex_unlock();
|
|
7238523.797687 | 0) 159524.0 us | }
|
|
7238523.797688 | 0) | tty_ldisc_deref() {
|
|
7238523.797688 | 0) 0.070 us | ldsem_up_read();
|
|
7238523.797689 | 0) 0.739 us | }
|
|
7238523.797689 | 0) 0.066 us | get_seconds();
|
|
7238523.797690 | 0) 159528.3 us | }
|
|
7238523.797690 | 0) 0.298 us | __fsnotify_parent();
|
|
7238523.797691 | 0) 0.179 us | fsnotify();
|
|
7238523.797692 | 0) 159534.6 us | }
|
|
7238523.797762 | 0) | vfs_read() {
|
|
7238523.797763 | 0) | rw_verify_area() {
|
|
7238523.797763 | 0) | security_file_permission() {
|
|
7238523.797764 | 0) | apparmor_file_permission() {
|
|
7238523.797764 | 0) 0.165 us | common_file_perm();
|
|
7238523.797765 | 0) 0.732 us | }
|
|
7238523.797765 | 0) 0.081 us | __fsnotify_parent();
|
|
7238523.797766 | 0) 0.094 us | fsnotify();
|
|
7238523.797766 | 0) 2.711 us | }
|
|
7238523.797767 | 0) 3.386 us | }
|
|
7238523.797767 | 0) | tty_read() {
|
|
7238523.797767 | 0) 0.077 us | tty_paranoia_check();
|
|
7238523.797768 | 0) | tty_ldisc_ref_wait() {
|
|
7238523.797768 | 0) 0.083 us | ldsem_down_read();
|
|
7238523.797769 | 0) 0.686 us | }
|
|
7238523.797769 | 0) | n_tty_read() {
|
|
7238523.797770 | 0) 0.071 us | _raw_spin_lock_irq();
|
|
7238523.797770 | 0) 0.111 us | mutex_lock_interruptible();
|
|
7238523.797771 | 0) 0.072 us | down_read();
|
|
7238523.797771 | 0) | add_wait_queue() {
|
|
7238523.797772 | 0) 0.083 us | _raw_spin_lock_irqsave();
|
|
7238523.797772 | 0) 0.085 us | _raw_spin_unlock_irqrestore();
|
|
7238523.797773 | 0) 1.124 us | }
|
|
7238523.797773 | 0) 0.066 us | tty_hung_up_p();
|
|
7238523.797774 | 0) 0.090 us | n_tty_set_room();
|
|
7238523.797774 | 0) 0.064 us | up_read();
|
|
7238523.797775 | 0) | schedule_timeout() {
|
|
7238523.797775 | 0) | schedule() {
|
|
7238523.797775 | 0) | __schedule() {
|
|
7238523.797776 | 0) 0.083 us | rcu_note_context_switch();
|
|
7238523.797776 | 0) 0.078 us | _raw_spin_lock_irq();
|
|
7238523.797777 | 0) | deactivate_task() {
|
|
7238523.797777 | 0) | dequeue_task() {
|
|
7238523.797777 | 0) 0.191 us | update_rq_clock();
|
|
7238523.797778 | 0) | dequeue_task_fair() {
|
|
7238523.797778 | 0) | dequeue_entity() {
|
|
7238523.797779 | 0) | update_curr() {
|
|
7238523.797779 | 0) 0.179 us | cpuacct_charge();
|
|
7238523.797780 | 0) 0.902 us | }
|
|
7238523.797780 | 0) 0.070 us | __update_entity_load_avg_contrib();
|
|
7238523.797781 | 0) 0.152 us | update_cfs_rq_blocked_load();
|
|
7238523.797781 | 0) 0.073 us | clear_buddies();
|
|
7238523.797782 | 0) 0.074 us | account_entity_dequeue();
|
|
7238523.797783 | 0) | update_cfs_shares() {
|
|
7238523.797783 | 0) 0.111 us | update_curr();
|
|
7238523.797783 | 0) 0.082 us | account_entity_dequeue();
|
|
7238523.797784 | 0) 0.081 us | account_entity_enqueue();
|
|
7238523.797785 | 0) 2.330 us | }
|
|
7238523.797785 | 0) 6.633 us | } /* dequeue_entity */
|
|
7238523.797786 | 0) | dequeue_entity() {
|
|
7238523.797786 | 0) 0.078 us | update_curr();
|
|
7238523.797787 | 0) 0.086 us | update_cfs_rq_blocked_load();
|
|
7238523.797787 | 0) 0.076 us | clear_buddies();
|
|
7238523.797788 | 0) 0.079 us | account_entity_dequeue();
|
|
7238523.797789 | 0) 0.074 us | update_cfs_shares();
|
|
7238523.797789 | 0) 3.287 us | }
|
|
7238523.797789 | 0) 0.074 us | hrtick_update();
|
|
7238523.797790 | 0) 11.606 us | }
|
|
7238523.797790 | 0) 12.879 us | }
|
|
7238523.797790 | 0) 13.406 us | }
|
|
7238523.797791 | 0) | pick_next_task_fair() {
|
|
7238523.797791 | 0) 0.073 us | check_cfs_rq_runtime();
|
|
7238523.797792 | 0) | pick_next_entity() {
|
|
7238523.797792 | 0) 0.076 us | clear_buddies();
|
|
7238523.797793 | 0) 0.663 us | }
|
|
7238523.797793 | 0) | put_prev_entity() {
|
|
7238523.797793 | 0) 0.076 us | check_cfs_rq_runtime();
|
|
7238523.797794 | 0) 0.598 us | }
|
|
7238523.797794 | 0) | put_prev_entity() {
|
|
7238523.797794 | 0) 0.078 us | check_cfs_rq_runtime();
|
|
7238523.797795 | 0) 0.618 us | }
|
|
7238523.797795 | 0) | set_next_entity() {
|
|
7238523.797795 | 0) 0.096 us | update_stats_wait_end();
|
|
7238523.797796 | 0) 0.738 us | }
|
|
7238523.797796 | 0) 5.222 us | }
|
|
7238523.797797 | 0) 0.078 us | paravirt_start_context_switch();
|
|
7238523.797798 | 0) 0.071 us | xen_read_cr0();
|
|
7238523.797799 | 0) | xen_write_cr0() {
|
|
7238523.797799 | 0) 0.078 us | paravirt_get_lazy_mode();
|
|
7238523.797800 | 0) 0.084 us | __xen_mc_entry();
|
|
7238523.797800 | 0) 0.076 us | paravirt_get_lazy_mode();
|
|
7238523.797801 | 0) 1.798 us | }
|
|
7238523.797801 | 0) | xen_load_sp0() {
|
|
7238523.797801 | 0) 0.080 us | paravirt_get_lazy_mode();
|
|
7238523.797802 | 0) 0.076 us | __xen_mc_entry();
|
|
7238523.797802 | 0) 0.073 us | paravirt_get_lazy_mode();
|
|
7238523.797803 | 0) 1.623 us | }
|
|
7238523.797803 | 0) | xen_load_tls() {
|
|
7238523.797803 | 0) 0.082 us | paravirt_get_lazy_mode();
|
|
7238523.797804 | 0) 0.084 us | paravirt_get_lazy_mode();
|
|
7238523.797804 | 0) 0.136 us | load_TLS_descriptor();
|
|
7238523.797805 | 0) 0.072 us | load_TLS_descriptor();
|
|
7238523.797806 | 0) 0.080 us | load_TLS_descriptor();
|
|
7238523.797806 | 0) 0.088 us | paravirt_get_lazy_mode();
|
|
7238523.797807 | 0) 3.360 us | }
|
|
7238523.797807 | 0) | xen_end_context_switch() {
|
|
7238523.797807 | 0) 0.601 us | xen_mc_flush();
|
|
7238523.797808 | 0) 0.098 us | paravirt_end_context_switch();
|
|
7238523.797809 | 0) 1.902 us | }
|
|
7238524.005649 | 0) | finish_task_switch() {
|
|
7238524.005653 | 0) | xen_evtchn_do_upcall() {
|
|
7238524.005653 | 0) | irq_enter() {
|
|
7238524.005653 | 0) 0.138 us | rcu_irq_enter();
|
|
7238524.005654 | 0) 0.753 us | }
|
|
7238524.005654 | 0) 0.056 us | exit_idle();
|
|
7238524.005655 | 0) | __xen_evtchn_do_upcall() {
|
|
7238524.005655 | 0) | evtchn_2l_handle_events() {
|
|
7238524.005655 | 0) 0.057 us | irq_from_virq();
|
|
7238524.005656 | 0) | evtchn_from_irq() {
|
|
7238524.005656 | 0) | irq_get_irq_data() {
|
|
7238524.005656 | 0) 0.050 us | irq_to_desc();
|
|
7238524.005656 | 0) 0.499 us | }
|
|
7238524.005657 | 0) 0.958 us | }
|
|
7238524.005657 | 0) | get_evtchn_to_irq() {
|
|
7238524.005657 | 0) 0.057 us | evtchn_2l_max_channels();
|
|
7238524.005658 | 0) 0.400 us | }
|
|
7238524.005659 | 0) | generic_handle_irq() {
|
|
7238524.005659 | 0) 0.052 us | irq_to_desc();
|
|
7238524.005659 | 0) | handle_percpu_irq() {
|
|
7238524.005659 | 0) | ack_dynirq() {
|
|
7238524.005659 | 0) | evtchn_from_irq() {
|
|
7238524.005660 | 0) | irq_get_irq_data() {
|
|
7238524.005660 | 0) 0.056 us | irq_to_desc();
|
|
7238524.005660 | 0) 0.439 us | }
|
|
7238524.005660 | 0) 0.739 us | }
|
|
7238524.005661 | 0) 0.051 us | irq_move_irq();
|
|
7238524.005661 | 0) 0.051 us | evtchn_2l_clear_pending();
|
|
7238524.005661 | 0) 1.963 us | }
|
|
7238524.005662 | 0) | handle_irq_event_percpu() {
|
|
7238524.005662 | 0) | xen_irq_work_interrupt() {
|
|
7238524.005662 | 0) | irq_enter() {
|
|
7238524.005662 | 0) 0.053 us | rcu_irq_enter();
|
|
7238524.005663 | 0) 0.392 us | }
|
|
7238524.005663 | 0) | __wake_up() {
|
|
7238524.005663 | 0) 0.058 us | _raw_spin_lock_irqsave();
|
|
7238524.005664 | 0) | __wake_up_common() {
|
|
7238524.005664 | 0) | autoremove_wake_function() {
|
|
7238524.005664 | 0) | default_wake_function() {
|
|
7238524.005665 | 0) | try_to_wake_up() {
|
|
7238524.005665 | 0) 0.226 us | _raw_spin_lock_irqsave();
|
|
7238524.005665 | 0) 0.392 us | task_waking_fair();
|
|
7238524.005666 | 0) | select_task_rq_fair() {
|
|
7238524.005666 | 0) 0.067 us | source_load();
|
|
7238524.005667 | 0) 0.057 us | target_load();
|
|
7238524.005667 | 0) 0.065 us | idle_cpu();
|
|
7238524.005668 | 0) 0.050 us | cpus_share_cache();
|
|
7238524.005668 | 0) 0.080 us | idle_cpu();
|
|
7238524.005668 | 0) 2.053 us | }
|
|
7238524.005669 | 0) 0.051 us | _raw_spin_lock();
|
|
7238524.005669 | 0) | ttwu_do_activate.constprop.124() {
|
|
7238524.005669 | 0) | activate_task() {
|
|
7238524.005669 | 0) | enqueue_task() {
|
|
7238524.005669 | 0) 0.165 us | update_rq_clock();
|
|
7238524.005670 | 0) | enqueue_task_fair() {
|
|
7238524.005670 | 0) | enqueue_entity() {
|
|
7238524.005670 | 0) 0.065 us | update_curr();
|
|
7238524.005671 | 0) 0.078 us | __compute_runnable_contrib.part.51();
|
|
7238524.005671 | 0) 0.070 us | __update_entity_load_avg_contrib();
|
|
7238524.005671 | 0) 0.051 us | update_cfs_rq_blocked_load();
|
|
7238524.005672 | 0) 0.069 us | account_entity_enqueue();
|
|
7238524.005672 | 0) 0.132 us | update_cfs_shares();
|
|
7238524.005673 | 0) 0.054 us | place_entity();
|
|
7238524.005673 | 0) 0.081 us | __enqueue_entity();
|
|
7238524.005673 | 0) 3.111 us | }
|
|
7238524.005673 | 0) | enqueue_entity() {
|
|
7238524.005674 | 0) 0.059 us | update_curr();
|
|
7238524.005674 | 0) 0.057 us | update_cfs_rq_blocked_load();
|
|
7238524.005674 | 0) 0.067 us | account_entity_enqueue();
|
|
7238524.005675 | 0) 0.082 us | update_cfs_shares();
|
|
7238524.005675 | 0) 0.120 us | place_entity();
|
|
7238524.005675 | 0) 0.051 us | __enqueue_entity();
|
|
7238524.005676 | 0) 2.075 us | }
|
|
7238524.005676 | 0) 0.049 us | hrtick_update();
|
|
7238524.005676 | 0) 6.167 us | }
|
|
7238524.005676 | 0) 6.979 us | }
|
|
7238524.005676 | 0) 7.317 us | }
|
|
7238524.005677 | 0) | ttwu_do_wakeup() {
|
|
7238524.005677 | 0) | check_preempt_curr() {
|
|
7238524.005677 | 0) | resched_task() {
|
|
7238524.005677 | 0) | xen_smp_send_reschedule() {
|
|
7238524.005677 | 0) | xen_send_IPI_one() {
|
|
7238524.005678 | 0) | notify_remote_via_irq() {
|
|
7238524.005678 | 0) | evtchn_from_irq() {
|
|
7238524.005678 | 0) | irq_get_irq_data() {
|
|
7238524.005678 | 0) 0.051 us | irq_to_desc();
|
|
7238524.005679 | 0) 0.545 us | }
|
|
7238524.005679 | 0) 0.910 us | }
|
|
7238524.005680 | 0) 1.962 us | } /* notify_remote_via_irq */
|
|
7238524.005680 | 0) 2.332 us | }
|
|
7238524.005680 | 0) 2.684 us | }
|
|
7238524.005681 | 0) 3.606 us | }
|
|
7238524.005681 | 0) 4.064 us | }
|
|
7238524.005682 | 0) 5.129 us | }
|
|
7238524.005682 | 0) 13.194 us | }
|
|
7238524.005683 | 0) 0.066 us | _raw_spin_unlock();
|
|
7238524.005683 | 0) 0.165 us | ttwu_stat();
|
|
7238524.005684 | 0) 0.070 us | _raw_spin_unlock_irqrestore();
|
|
7238524.005684 | 0) 19.634 us | }
|
|
7238524.005685 | 0) 20.080 us | }
|
|
7238524.005685 | 0) 20.608 us | }
|
|
7238524.005685 | 0) 21.348 us | }
|
|
7238524.005685 | 0) 0.084 us | _raw_spin_unlock_irqrestore();
|
|
7238524.005686 | 0) 22.728 us | }
|
|
7238524.005686 | 0) | irq_exit() {
|
|
7238524.005687 | 0) 0.077 us | idle_cpu();
|
|
7238524.005687 | 0) 0.093 us | rcu_irq_exit();
|
|
7238524.005688 | 0) 1.101 us | }
|
|
7238524.005688 | 0) 25.644 us | }
|
|
7238524.005688 | 0) 0.138 us | add_interrupt_randomness();
|
|
7238524.005689 | 0) 0.083 us | note_interrupt();
|
|
7238524.005689 | 0) 27.672 us | }
|
|
7238524.005690 | 0) 30.410 us | }
|
|
7238524.005690 | 0) 31.458 us | }
|
|
7238524.005690 | 0) 35.276 us | }
|
|
7238524.005691 | 0) 35.797 us | }
|
|
7238524.005691 | 0) | irq_exit() {
|
|
7238524.005691 | 0) 0.066 us | idle_cpu();
|
|
7238524.005692 | 0) 0.080 us | rcu_irq_exit();
|
|
7238524.005692 | 0) 1.110 us | }
|
|
7238524.005693 | 0) 39.440 us | }
|
|
7238524.005693 | 0) 41.142 us | }
|
|
7238524.005694 | 0) 207918.1 us | }
|
|
7238524.005694 | 0) 207918.7 us | }
|
|
7238524.005694 | 0) 207919.4 us | }
|
|
7238524.005695 | 0) 0.068 us | down_read();
|
|
7238524.005696 | 0) | copy_from_read_buf() {
|
|
7238524.005697 | 0) | tty_audit_add_data() {
|
|
7238524.005697 | 0) 0.233 us | _raw_spin_lock_irqsave();
|
|
7238524.005698 | 0) 0.076 us | _raw_spin_unlock_irqrestore();
|
|
7238524.005699 | 0) 0.076 us | _raw_spin_lock_irqsave();
|
|
7238524.005699 | 0) 0.078 us | _raw_spin_unlock_irqrestore();
|
|
7238524.005700 | 0) 2.696 us | }
|
|
7238524.005700 | 0) 4.335 us | }
|
|
7238524.005701 | 0) 0.086 us | copy_from_read_buf();
|
|
7238524.005701 | 0) 0.074 us | n_tty_set_room();
|
|
7238524.005702 | 0) 0.085 us | n_tty_write_wakeup();
|
|
7238524.005702 | 0) | __wake_up() {
|
|
7238524.005703 | 0) 0.061 us | _raw_spin_lock_irqsave();
|
|
7238524.005703 | 0) | __wake_up_common() {
|
|
7238524.005703 | 0) 0.080 us | pollwake();
|
|
7238524.005704 | 0) 0.687 us | }
|
|
7238524.005704 | 0) 0.063 us | _raw_spin_unlock_irqrestore();
|
|
7238524.005705 | 0) 2.040 us | }
|
|
7238524.005705 | 0) 0.071 us | n_tty_set_room();
|
|
7238524.005706 | 0) 0.074 us | up_read();
|
|
7238524.005706 | 0) | remove_wait_queue() {
|
|
7238524.005706 | 0) 0.074 us | _raw_spin_lock_irqsave();
|
|
7238524.005707 | 0) 0.069 us | _raw_spin_unlock_irqrestore();
|
|
7238524.005707 | 0) 1.076 us | }
|
|
7238524.005708 | 0) 0.139 us | mutex_unlock();
|
|
7238524.005708 | 0) 207939.0 us | }
|
|
7238524.005709 | 0) | tty_ldisc_deref() {
|
|
7238524.005709 | 0) 0.077 us | ldsem_up_read();
|
|
7238524.005710 | 0) 0.702 us | }
|
|
7238524.005710 | 0) 0.068 us | get_seconds();
|
|
7238524.005711 | 0) 207943.4 us | }
|
|
7238524.005712 | 0) 0.301 us | __fsnotify_parent();
|
|
7238524.005713 | 0) 0.157 us | fsnotify();
|
|
7238524.005713 | 0) 207950.3 us | }
|
|
7238524.005783 | 0) | vfs_read() {
|
|
7238524.005784 | 0) | rw_verify_area() {
|
|
7238524.005784 | 0) | security_file_permission() {
|
|
7238524.005785 | 0) | apparmor_file_permission() {
|
|
7238524.005785 | 0) 0.164 us | common_file_perm();
|
|
7238524.005786 | 0) 0.790 us | }
|
|
7238524.005786 | 0) 0.080 us | __fsnotify_parent();
|
|
7238524.005787 | 0) 0.094 us | fsnotify();
|
|
7238524.005787 | 0) 2.683 us | }
|
|
7238524.005788 | 0) 3.313 us | }
|
|
7238524.005788 | 0) | tty_read() {
|
|
7238524.005788 | 0) 0.087 us | tty_paranoia_check();
|
|
7238524.005789 | 0) | tty_ldisc_ref_wait() {
|
|
7238524.005789 | 0) 0.080 us | ldsem_down_read();
|
|
7238524.005790 | 0) 0.683 us | }
|
|
7238524.005790 | 0) | n_tty_read() {
|
|
7238524.005791 | 0) 0.080 us | _raw_spin_lock_irq();
|
|
7238524.005791 | 0) 0.104 us | mutex_lock_interruptible();
|
|
7238524.005792 | 0) 0.070 us | down_read();
|
|
7238524.005792 | 0) | add_wait_queue() {
|
|
7238524.005793 | 0) 0.079 us | _raw_spin_lock_irqsave();
|
|
7238524.005793 | 0) 0.087 us | _raw_spin_unlock_irqrestore();
|
|
7238524.005794 | 0) 1.147 us | }
|
|
7238524.005794 | 0) 0.078 us | tty_hung_up_p();
|
|
7238524.005795 | 0) 0.071 us | n_tty_set_room();
|
|
7238524.005795 | 0) 0.077 us | up_read();
|
|
7238524.005796 | 0) | schedule_timeout() {
|
|
7238524.005796 | 0) | schedule() {
|
|
7238524.005796 | 0) | __schedule() {
|
|
7238524.005797 | 0) 0.087 us | rcu_note_context_switch();
|
|
7238524.005797 | 0) 0.075 us | _raw_spin_lock_irq();
|
|
7238524.005798 | 0) | deactivate_task() {
|
|
7238524.005798 | 0) | dequeue_task() {
|
|
7238524.005798 | 0) 0.177 us | update_rq_clock();
|
|
7238524.005799 | 0) | dequeue_task_fair() {
|
|
7238524.005799 | 0) | dequeue_entity() {
|
|
7238524.005800 | 0) | update_curr() {
|
|
7238524.005800 | 0) 0.334 us | cpuacct_charge();
|
|
7238524.005801 | 0) 1.199 us | }
|
|
7238524.005802 | 0) 0.081 us | __update_entity_load_avg_contrib();
|
|
7238524.005802 | 0) 0.064 us | update_cfs_rq_blocked_load();
|
|
7238524.005803 | 0) 0.076 us | clear_buddies();
|
|
7238524.005803 | 0) 0.079 us | account_entity_dequeue();
|
|
7238524.005804 | 0) | update_cfs_shares() {
|
|
7238524.005804 | 0) 0.108 us | update_curr();
|
|
7238524.005805 | 0) 0.083 us | account_entity_dequeue();
|
|
7238524.005805 | 0) 0.084 us | account_entity_enqueue();
|
|
7238524.005806 | 0) 1.869 us | }
|
|
7238524.005806 | 0) 6.530 us | } /* dequeue_entity */
|
|
7238524.005807 | 0) | dequeue_entity() {
|
|
7238524.005807 | 0) 0.104 us | update_curr();
|
|
7238524.005808 | 0) 0.115 us | __update_entity_load_avg_contrib();
|
|
7238524.005808 | 0) 0.069 us | update_cfs_rq_blocked_load();
|
|
7238524.005809 | 0) 0.066 us | clear_buddies();
|
|
7238524.005809 | 0) 0.086 us | account_entity_dequeue();
|
|
7238524.005810 | 0) 0.102 us | update_cfs_shares();
|
|
7238524.005811 | 0) 3.907 us | }
|
|
7238524.005811 | 0) 0.071 us | hrtick_update();
|
|
7238524.005812 | 0) 12.301 us | }
|
|
7238524.005812 | 0) 13.546 us | }
|
|
7238524.005812 | 0) 14.105 us | }
|
|
7238524.005812 | 0) | pick_next_task_fair() {
|
|
7238524.005813 | 0) 0.078 us | check_cfs_rq_runtime();
|
|
7238524.005813 | 0) | pick_next_entity() {
|
|
7238524.005814 | 0) 0.071 us | clear_buddies();
|
|
7238524.005815 | 0) 0.585 us | }
|
|
7238524.005815 | 0) | put_prev_entity() {
|
|
7238524.005815 | 0) 0.073 us | check_cfs_rq_runtime();
|
|
7238524.005816 | 0) 0.717 us | }
|
|
7238524.005816 | 0) | put_prev_entity() {
|
|
7238524.005817 | 0) 0.080 us | check_cfs_rq_runtime();
|
|
7238524.005817 | 0) 0.687 us | }
|
|
7238524.005817 | 0) | set_next_entity() {
|
|
7238524.005818 | 0) 0.091 us | update_stats_wait_end();
|
|
7238524.005818 | 0) 0.786 us | }
|
|
7238524.005819 | 0) 6.135 us | }
|
|
7238524.005820 | 0) 0.091 us | paravirt_start_context_switch();
|
|
7238524.005821 | 0) 0.089 us | xen_read_cr0();
|
|
7238524.005821 | 0) | xen_write_cr0() {
|
|
7238524.005821 | 0) 0.078 us | paravirt_get_lazy_mode();
|
|
7238524.005822 | 0) 0.083 us | __xen_mc_entry();
|
|
7238524.005823 | 0) 0.074 us | paravirt_get_lazy_mode();
|
|
7238524.005823 | 0) 1.657 us | }
|
|
7238524.005823 | 0) | xen_load_sp0() {
|
|
7238524.005824 | 0) 0.074 us | paravirt_get_lazy_mode();
|
|
7238524.005824 | 0) 0.083 us | __xen_mc_entry();
|
|
7238524.005825 | 0) 0.087 us | paravirt_get_lazy_mode();
|
|
7238524.005825 | 0) 1.764 us | }
|
|
7238524.005826 | 0) | xen_load_tls() {
|
|
7238524.005826 | 0) 0.077 us | paravirt_get_lazy_mode();
|
|
7238524.005826 | 0) 0.084 us | paravirt_get_lazy_mode();
|
|
7238524.005827 | 0) 0.150 us | load_TLS_descriptor();
|
|
7238524.005828 | 0) 0.082 us | load_TLS_descriptor();
|
|
7238524.005828 | 0) 0.084 us | load_TLS_descriptor();
|
|
7238524.005829 | 0) 0.076 us | paravirt_get_lazy_mode();
|
|
7238524.005829 | 0) 3.388 us | }
|
|
7238524.005829 | 0) | xen_end_context_switch() {
|
|
7238524.005830 | 0) 0.731 us | xen_mc_flush();
|
|
7238524.005831 | 0) 0.093 us | paravirt_end_context_switch();
|
|
7238524.005831 | 0) 1.836 us | }
|
|
7238524.141853 | 0) | finish_task_switch() {
|
|
7238524.141857 | 0) | xen_evtchn_do_upcall() {
|
|
7238524.141858 | 0) | irq_enter() {
|
|
7238524.141858 | 0) 0.133 us | rcu_irq_enter();
|
|
7238524.141859 | 0) 0.766 us | }
|
|
7238524.141859 | 0) 0.056 us | exit_idle();
|
|
7238524.141859 | 0) | __xen_evtchn_do_upcall() {
|
|
7238524.141859 | 0) | evtchn_2l_handle_events() {
|
|
7238524.141860 | 0) 0.049 us | irq_from_virq();
|
|
7238524.141860 | 0) | evtchn_from_irq() {
|
|
7238524.141860 | 0) | irq_get_irq_data() {
|
|
7238524.141860 | 0) 0.058 us | irq_to_desc();
|
|
7238524.141861 | 0) 0.498 us | }
|
|
7238524.141861 | 0) 0.897 us | }
|
|
7238524.141861 | 0) | get_evtchn_to_irq() {
|
|
7238524.141861 | 0) 0.049 us | evtchn_2l_max_channels();
|
|
7238524.141862 | 0) 0.392 us | }
|
|
7238524.141862 | 0) | generic_handle_irq() {
|
|
7238524.141862 | 0) 0.061 us | irq_to_desc();
|
|
7238524.141862 | 0) | handle_percpu_irq() {
|
|
7238524.141863 | 0) | ack_dynirq() {
|
|
7238524.141863 | 0) | evtchn_from_irq() {
|
|
7238524.141863 | 0) | irq_get_irq_data() {
|
|
7238524.141863 | 0) 0.051 us | irq_to_desc();
|
|
7238524.141863 | 0) 0.439 us | }
|
|
7238524.141864 | 0) 0.745 us | }
|
|
7238524.141864 | 0) 0.049 us | irq_move_irq();
|
|
7238524.141864 | 0) 0.060 us | evtchn_2l_clear_pending();
|
|
7238524.141864 | 0) 1.714 us | }
|
|
7238524.141865 | 0) | handle_irq_event_percpu() {
|
|
7238524.141865 | 0) | xen_irq_work_interrupt() {
|
|
7238524.141865 | 0) | irq_enter() {
|
|
7238524.141865 | 0) 0.053 us | rcu_irq_enter();
|
|
7238524.141866 | 0) 0.371 us | }
|
|
7238524.141866 | 0) | __wake_up() {
|
|
7238524.141866 | 0) 0.051 us | _raw_spin_lock_irqsave();
|
|
7238524.141867 | 0) | __wake_up_common() {
|
|
7238524.141867 | 0) | autoremove_wake_function() {
|
|
7238524.141867 | 0) | default_wake_function() {
|
|
7238524.141867 | 0) | try_to_wake_up() {
|
|
7238524.141868 | 0) 0.213 us | _raw_spin_lock_irqsave();
|
|
7238524.141869 | 0) 0.196 us | task_waking_fair();
|
|
7238524.141870 | 0) | select_task_rq_fair() {
|
|
7238524.141870 | 0) 0.051 us | source_load();
|
|
7238524.141870 | 0) 0.049 us | target_load();
|
|
7238524.141871 | 0) 0.065 us | idle_cpu();
|
|
7238524.141871 | 0) 0.051 us | cpus_share_cache();
|
|
7238524.141872 | 0) 0.078 us | idle_cpu();
|
|
7238524.141872 | 0) 2.427 us | }
|
|
7238524.141873 | 0) 0.050 us | _raw_spin_lock();
|
|
7238524.141873 | 0) | ttwu_do_activate.constprop.124() {
|
|
7238524.141873 | 0) | activate_task() {
|
|
7238524.141873 | 0) | enqueue_task() {
|
|
7238524.141873 | 0) 0.170 us | update_rq_clock();
|
|
7238524.141874 | 0) | enqueue_task_fair() {
|
|
7238524.141874 | 0) | enqueue_entity() {
|
|
7238524.141874 | 0) 0.058 us | update_curr();
|
|
7238524.141875 | 0) 0.076 us | __compute_runnable_contrib.part.51();
|
|
7238524.141875 | 0) 0.059 us | __update_entity_load_avg_contrib();
|
|
7238524.141875 | 0) 0.060 us | update_cfs_rq_blocked_load();
|
|
7238524.141876 | 0) 0.064 us | account_entity_enqueue();
|
|
7238524.141876 | 0) 0.123 us | update_cfs_shares();
|
|
7238524.141876 | 0) 0.055 us | place_entity();
|
|
7238524.141877 | 0) 0.078 us | __enqueue_entity();
|
|
7238524.141877 | 0) 3.039 us | }
|
|
7238524.141877 | 0) | enqueue_entity() {
|
|
7238524.141877 | 0) 0.065 us | update_curr();
|
|
7238524.141878 | 0) 0.050 us | update_cfs_rq_blocked_load();
|
|
7238524.141878 | 0) 0.049 us | account_entity_enqueue();
|
|
7238524.141878 | 0) 0.081 us | update_cfs_shares();
|
|
7238524.141879 | 0) 0.049 us | place_entity();
|
|
7238524.141879 | 0) 0.051 us | __enqueue_entity();
|
|
7238524.141879 | 0) 2.021 us | }
|
|
7238524.141880 | 0) 0.049 us | hrtick_update();
|
|
7238524.141880 | 0) 6.040 us | }
|
|
7238524.141880 | 0) 6.874 us | }
|
|
7238524.141880 | 0) 7.212 us | }
|
|
7238524.141880 | 0) | ttwu_do_wakeup() {
|
|
7238524.141881 | 0) | check_preempt_curr() {
|
|
7238524.141881 | 0) | resched_task() {
|
|
7238524.141881 | 0) | xen_smp_send_reschedule() {
|
|
7238524.141881 | 0) | xen_send_IPI_one() {
|
|
7238524.141881 | 0) | notify_remote_via_irq() {
|
|
7238524.141881 | 0) | evtchn_from_irq() {
|
|
7238524.141882 | 0) | irq_get_irq_data() {
|
|
7238524.141882 | 0) 0.049 us | irq_to_desc();
|
|
7238524.141882 | 0) 0.497 us | }
|
|
7238524.141882 | 0) 0.860 us | }
|
|
7238524.141883 | 0) 1.882 us | } /* notify_remote_via_irq */
|
|
7238524.141884 | 0) 2.257 us | }
|
|
7238524.141884 | 0) 2.619 us | }
|
|
7238524.141884 | 0) 3.079 us | }
|
|
7238524.141884 | 0) 3.526 us | }
|
|
7238524.141885 | 0) 4.485 us | }
|
|
7238524.141885 | 0) 12.333 us | }
|
|
7238524.141885 | 0) 0.062 us | _raw_spin_unlock();
|
|
7238524.141886 | 0) 0.169 us | ttwu_stat();
|
|
7238524.141887 | 0) 0.076 us | _raw_spin_unlock_irqrestore();
|
|
7238524.141887 | 0) 19.434 us | }
|
|
7238524.141887 | 0) 19.909 us | }
|
|
7238524.141888 | 0) 20.377 us | }
|
|
7238524.141888 | 0) 21.020 us | }
|
|
7238524.141888 | 0) 0.075 us | _raw_spin_unlock_irqrestore();
|
|
7238524.141888 | 0) 22.268 us | }
|
|
7238524.141889 | 0) | irq_exit() {
|
|
7238524.141889 | 0) 0.087 us | idle_cpu();
|
|
7238524.141889 | 0) 0.101 us | rcu_irq_exit();
|
|
7238524.141890 | 0) 1.127 us | }
|
|
7238524.141890 | 0) 25.163 us | }
|
|
7238524.141891 | 0) 0.133 us | add_interrupt_randomness();
|
|
7238524.141892 | 0) 0.083 us | note_interrupt();
|
|
7238524.141892 | 0) 27.453 us | }
|
|
7238524.141893 | 0) 30.024 us | }
|
|
7238524.141893 | 0) 30.898 us | }
|
|
7238524.141893 | 0) 33.683 us | }
|
|
7238524.141893 | 0) 34.097 us | }
|
|
7238524.141894 | 0) | irq_exit() {
|
|
7238524.141894 | 0) 0.065 us | idle_cpu();
|
|
7238524.141895 | 0) 0.076 us | rcu_irq_exit();
|
|
7238524.141895 | 0) 1.135 us | }
|
|
7238524.141895 | 0) 37.746 us | }
|
|
7238524.141896 | 0) 39.634 us | }
|
|
7238524.141897 | 0) 136100.0 us | }
|
|
7238524.141897 | 0) 136100.6 us | }
|
|
7238524.141897 | 0) 136101.4 us | }
|
|
7238524.141898 | 0) 0.093 us | down_read();
|
|
7238524.141899 | 0) | copy_from_read_buf() {
|
|
7238524.141900 | 0) | tty_audit_add_data() {
|
|
7238524.141900 | 0) 0.238 us | _raw_spin_lock_irqsave();
|
|
7238524.141901 | 0) 0.069 us | _raw_spin_unlock_irqrestore();
|
|
7238524.141901 | 0) 0.090 us | _raw_spin_lock_irqsave();
|
|
7238524.141902 | 0) 0.077 us | _raw_spin_unlock_irqrestore();
|
|
7238524.141902 | 0) 2.513 us | }
|
|
7238524.141903 | 0) 3.632 us | }
|
|
7238524.141903 | 0) 0.085 us | copy_from_read_buf();
|
|
7238524.141904 | 0) 0.066 us | n_tty_set_room();
|
|
7238524.141905 | 0) 0.067 us | n_tty_write_wakeup();
|
|
7238524.141905 | 0) | __wake_up() {
|
|
7238524.141906 | 0) 0.070 us | _raw_spin_lock_irqsave();
|
|
7238524.141906 | 0) | __wake_up_common() {
|
|
7238524.141906 | 0) 0.086 us | pollwake();
|
|
7238524.141907 | 0) 0.620 us | }
|
|
7238524.141907 | 0) 0.064 us | _raw_spin_unlock_irqrestore();
|
|
7238524.141907 | 0) 1.980 us | }
|
|
7238524.141908 | 0) 0.059 us | n_tty_set_room();
|
|
7238524.141909 | 0) 0.071 us | up_read();
|
|
7238524.141909 | 0) | remove_wait_queue() {
|
|
7238524.141909 | 0) 0.079 us | _raw_spin_lock_irqsave();
|
|
7238524.141910 | 0) 0.082 us | _raw_spin_unlock_irqrestore();
|
|
7238524.141910 | 0) 1.164 us | }
|
|
7238524.141910 | 0) 0.142 us | mutex_unlock();
|
|
7238524.141911 | 0) 136120.9 us | }
|
|
7238524.141911 | 0) | tty_ldisc_deref() {
|
|
7238524.141912 | 0) 0.062 us | ldsem_up_read();
|
|
7238524.141912 | 0) 0.593 us | }
|
|
7238524.141912 | 0) 0.079 us | get_seconds();
|
|
7238524.141913 | 0) 136125.1 us | }
|
|
7238524.141914 | 0) 0.280 us | __fsnotify_parent();
|
|
7238524.141915 | 0) 0.187 us | fsnotify();
|
|
7238524.141915 | 0) 136131.2 us | }
|
|
7238524.141988 | 0) | vfs_read() {
|
|
7238524.141989 | 0) | rw_verify_area() {
|
|
7238524.141989 | 0) | security_file_permission() {
|
|
7238524.141989 | 0) | apparmor_file_permission() {
|
|
7238524.141990 | 0) 0.149 us | common_file_perm();
|
|
7238524.141990 | 0) 0.774 us | }
|
|
7238524.141991 | 0) 0.079 us | __fsnotify_parent();
|
|
7238524.141991 | 0) 0.095 us | fsnotify();
|
|
7238524.141992 | 0) 2.558 us | }
|
|
7238524.141992 | 0) 3.300 us | }
|
|
7238524.141993 | 0) | tty_read() {
|
|
7238524.141993 | 0) 0.076 us | tty_paranoia_check();
|
|
7238524.141994 | 0) | tty_ldisc_ref_wait() {
|
|
7238524.141994 | 0) 0.081 us | ldsem_down_read();
|
|
7238524.141995 | 0) 0.689 us | }
|
|
7238524.141995 | 0) | n_tty_read() {
|
|
7238524.141995 | 0) 0.073 us | _raw_spin_lock_irq();
|
|
7238524.141996 | 0) 0.110 us | mutex_lock_interruptible();
|
|
7238524.141997 | 0) 0.069 us | down_read();
|
|
7238524.141998 | 0) | add_wait_queue() {
|
|
7238524.141998 | 0) 0.079 us | _raw_spin_lock_irqsave();
|
|
7238524.141999 | 0) 0.078 us | _raw_spin_unlock_irqrestore();
|
|
7238524.141999 | 0) 1.201 us | }
|
|
7238524.142000 | 0) 0.067 us | tty_hung_up_p();
|
|
7238524.142000 | 0) 0.078 us | n_tty_set_room();
|
|
7238524.142001 | 0) 0.079 us | up_read();
|
|
7238524.142001 | 0) | schedule_timeout() {
|
|
7238524.142002 | 0) | schedule() {
|
|
7238524.142002 | 0) | __schedule() {
|
|
7238524.142002 | 0) 0.076 us | rcu_note_context_switch();
|
|
7238524.142003 | 0) 0.080 us | _raw_spin_lock_irq();
|
|
7238524.142004 | 0) | deactivate_task() {
|
|
7238524.142004 | 0) | dequeue_task() {
|
|
7238524.142004 | 0) 0.178 us | update_rq_clock();
|
|
7238524.142005 | 0) | dequeue_task_fair() {
|
|
7238524.142005 | 0) | dequeue_entity() {
|
|
7238524.142005 | 0) | update_curr() {
|
|
7238524.142006 | 0) 0.263 us | cpuacct_charge();
|
|
7238524.142007 | 0) 0.965 us | }
|
|
7238524.142007 | 0) 0.075 us | update_cfs_rq_blocked_load();
|
|
7238524.142008 | 0) 0.065 us | clear_buddies();
|
|
7238524.142008 | 0) 0.084 us | account_entity_dequeue();
|
|
7238524.142009 | 0) | update_cfs_shares() {
|
|
7238524.142009 | 0) 0.115 us | update_curr();
|
|
7238524.142010 | 0) 0.084 us | account_entity_dequeue();
|
|
7238524.142010 | 0) 0.068 us | account_entity_enqueue();
|
|
7238524.142011 | 0) 1.754 us | }
|
|
7238524.142011 | 0) 5.580 us | }
|
|
7238524.142012 | 0) | dequeue_entity() {
|
|
7238524.142012 | 0) 0.089 us | update_curr();
|
|
7238524.142012 | 0) 0.101 us | update_cfs_rq_blocked_load();
|
|
7238524.142013 | 0) 0.076 us | clear_buddies();
|
|
7238524.142013 | 0) 0.078 us | account_entity_dequeue();
|
|
7238524.142014 | 0) 0.076 us | update_cfs_shares();
|
|
7238524.142015 | 0) 3.071 us | }
|
|
7238524.142015 | 0) 0.078 us | hrtick_update();
|
|
7238524.142016 | 0) 10.525 us | }
|
|
7238524.142016 | 0) 11.803 us | }
|
|
7238524.142016 | 0) 12.447 us | }
|
|
7238524.142017 | 0) | pick_next_task_fair() {
|
|
7238524.142017 | 0) 0.069 us | check_cfs_rq_runtime();
|
|
7238524.142017 | 0) | pick_next_entity() {
|
|
7238524.142018 | 0) 0.061 us | clear_buddies();
|
|
7238524.142018 | 0) 0.601 us | }
|
|
7238524.142019 | 0) | put_prev_entity() {
|
|
7238524.142019 | 0) 0.069 us | check_cfs_rq_runtime();
|
|
7238524.142019 | 0) 0.605 us | }
|
|
7238524.142020 | 0) | put_prev_entity() {
|
|
7238524.142020 | 0) 0.076 us | check_cfs_rq_runtime();
|
|
7238524.142020 | 0) 0.609 us | }
|
|
7238524.142021 | 0) | set_next_entity() {
|
|
7238524.142021 | 0) 0.088 us | update_stats_wait_end();
|
|
7238524.142022 | 0) 0.768 us | }
|
|
7238524.142022 | 0) 5.183 us | }
|
|
7238524.142023 | 0) 0.080 us | paravirt_start_context_switch();
|
|
7238524.142024 | 0) 0.076 us | xen_read_cr0();
|
|
7238524.142024 | 0) | xen_write_cr0() {
|
|
7238524.142025 | 0) 0.088 us | paravirt_get_lazy_mode();
|
|
7238524.142025 | 0) 0.096 us | __xen_mc_entry();
|
|
7238524.142026 | 0) 0.083 us | paravirt_get_lazy_mode();
|
|
7238524.142026 | 0) 1.802 us | }
|
|
7238524.142026 | 0) | xen_load_sp0() {
|
|
7238524.142027 | 0) 0.074 us | paravirt_get_lazy_mode();
|
|
7238524.142027 | 0) 0.098 us | __xen_mc_entry();
|
|
7238524.142028 | 0) 0.073 us | paravirt_get_lazy_mode();
|
|
7238524.142029 | 0) 2.289 us | }
|
|
7238524.142029 | 0) | xen_load_tls() {
|
|
7238524.142029 | 0) 0.073 us | paravirt_get_lazy_mode();
|
|
7238524.142030 | 0) 0.079 us | paravirt_get_lazy_mode();
|
|
7238524.142031 | 0) 0.135 us | load_TLS_descriptor();
|
|
7238524.142031 | 0) 0.082 us | load_TLS_descriptor();
|
|
7238524.142032 | 0) 0.091 us | load_TLS_descriptor();
|
|
7238524.142032 | 0) 0.081 us | paravirt_get_lazy_mode();
|
|
7238524.142033 | 0) 3.306 us | }
|
|
7238524.142033 | 0) | xen_end_context_switch() {
|
|
7238524.142033 | 0) 0.697 us | xen_mc_flush();
|
|
7238524.142034 | 0) 0.083 us | paravirt_end_context_switch();
|
|
7238524.142035 | 0) 1.876 us | }
|
|
7238524.269404 | 0) | finish_task_switch() {
|
|
7238524.269408 | 0) | xen_evtchn_do_upcall() {
|
|
7238524.269408 | 0) | irq_enter() {
|
|
7238524.269408 | 0) 0.132 us | rcu_irq_enter();
|
|
7238524.269409 | 0) 0.948 us | }
|
|
7238524.269409 | 0) 0.063 us | exit_idle();
|
|
7238524.269410 | 0) | __xen_evtchn_do_upcall() {
|
|
7238524.269410 | 0) | evtchn_2l_handle_events() {
|
|
7238524.269410 | 0) 0.057 us | irq_from_virq();
|
|
7238524.269411 | 0) | evtchn_from_irq() {
|
|
7238524.269411 | 0) | irq_get_irq_data() {
|
|
7238524.269411 | 0) 0.058 us | irq_to_desc();
|
|
7238524.269412 | 0) 0.579 us | }
|
|
7238524.269412 | 0) 0.898 us | }
|
|
7238524.269412 | 0) | get_evtchn_to_irq() {
|
|
7238524.269412 | 0) 0.049 us | evtchn_2l_max_channels();
|
|
7238524.269412 | 0) 0.390 us | }
|
|
7238524.269413 | 0) | generic_handle_irq() {
|
|
7238524.269413 | 0) 0.051 us | irq_to_desc();
|
|
7238524.269413 | 0) | handle_percpu_irq() {
|
|
7238524.269413 | 0) | ack_dynirq() {
|
|
7238524.269413 | 0) | evtchn_from_irq() {
|
|
7238524.269414 | 0) | irq_get_irq_data() {
|
|
7238524.269414 | 0) 0.057 us | irq_to_desc();
|
|
7238524.269414 | 0) 0.446 us | }
|
|
7238524.269414 | 0) 0.754 us | }
|
|
7238524.269414 | 0) 0.057 us | irq_move_irq();
|
|
7238524.269415 | 0) 0.057 us | evtchn_2l_clear_pending();
|
|
7238524.269415 | 0) 1.718 us | }
|
|
7238524.269415 | 0) | handle_irq_event_percpu() {
|
|
7238524.269416 | 0) | xen_irq_work_interrupt() {
|
|
7238524.269416 | 0) | irq_enter() {
|
|
7238524.269416 | 0) 0.059 us | rcu_irq_enter();
|
|
7238524.269416 | 0) 0.380 us | }
|
|
7238524.269417 | 0) | __wake_up() {
|
|
7238524.269417 | 0) 0.051 us | _raw_spin_lock_irqsave();
|
|
7238524.269417 | 0) | __wake_up_common() {
|
|
7238524.269417 | 0) | autoremove_wake_function() {
|
|
7238524.269418 | 0) | default_wake_function() {
|
|
7238524.269418 | 0) | try_to_wake_up() {
|
|
7238524.269418 | 0) 0.230 us | _raw_spin_lock_irqsave();
|
|
7238524.269419 | 0) 0.197 us | task_waking_fair();
|
|
7238524.269419 | 0) | select_task_rq_fair() {
|
|
7238524.269419 | 0) 0.050 us | source_load();
|
|
7238524.269420 | 0) 0.057 us | target_load();
|
|
7238524.269420 | 0) 0.065 us | idle_cpu();
|
|
7238524.269421 | 0) 0.055 us | cpus_share_cache();
|
|
7238524.269421 | 0) 0.076 us | idle_cpu();
|
|
7238524.269421 | 0) 2.041 us | }
|
|
7238524.269422 | 0) 0.050 us | _raw_spin_lock();
|
|
7238524.269422 | 0) | ttwu_do_activate.constprop.124() {
|
|
7238524.269422 | 0) | activate_task() {
|
|
7238524.269422 | 0) | enqueue_task() {
|
|
7238524.269422 | 0) 0.175 us | update_rq_clock();
|
|
7238524.269423 | 0) | enqueue_task_fair() {
|
|
7238524.269423 | 0) | enqueue_entity() {
|
|
7238524.269423 | 0) 0.065 us | update_curr();
|
|
7238524.269424 | 0) 0.070 us | __compute_runnable_contrib.part.51();
|
|
7238524.269424 | 0) 0.052 us | __update_entity_load_avg_contrib();
|
|
7238524.269424 | 0) 0.050 us | update_cfs_rq_blocked_load();
|
|
7238524.269425 | 0) 0.059 us | account_entity_enqueue();
|
|
7238524.269426 | 0) 0.134 us | update_cfs_shares();
|
|
7238524.269426 | 0) 0.055 us | place_entity();
|
|
7238524.269427 | 0) 0.083 us | __enqueue_entity();
|
|
7238524.269427 | 0) 4.026 us | }
|
|
7238524.269427 | 0) | enqueue_entity() {
|
|
7238524.269428 | 0) 0.065 us | update_curr();
|
|
7238524.269428 | 0) 0.051 us | update_cfs_rq_blocked_load();
|
|
7238524.269428 | 0) 0.058 us | account_entity_enqueue();
|
|
7238524.269429 | 0) 0.082 us | update_cfs_shares();
|
|
7238524.269429 | 0) 0.105 us | place_entity();
|
|
7238524.269429 | 0) 0.049 us | __enqueue_entity();
|
|
7238524.269430 | 0) 2.247 us | }
|
|
7238524.269430 | 0) 0.050 us | hrtick_update();
|
|
7238524.269430 | 0) 7.310 us | }
|
|
7238524.269430 | 0) 8.101 us | }
|
|
7238524.269431 | 0) 8.449 us | }
|
|
7238524.269431 | 0) | ttwu_do_wakeup() {
|
|
7238524.269431 | 0) | check_preempt_curr() {
|
|
7238524.269431 | 0) | resched_task() {
|
|
7238524.269431 | 0) | xen_smp_send_reschedule() {
|
|
7238524.269432 | 0) | xen_send_IPI_one() {
|
|
7238524.269432 | 0) | notify_remote_via_irq() {
|
|
7238524.269432 | 0) | evtchn_from_irq() {
|
|
7238524.269432 | 0) | irq_get_irq_data() {
|
|
7238524.269432 | 0) 0.051 us | irq_to_desc();
|
|
7238524.269433 | 0) 0.493 us | }
|
|
7238524.269433 | 0) 0.857 us | }
|
|
7238524.269434 | 0) 1.909 us | } /* notify_remote_via_irq */
|
|
7238524.269434 | 0) 2.288 us | }
|
|
7238524.269434 | 0) 2.655 us | }
|
|
7238524.269434 | 0) 3.127 us | }
|
|
7238524.269435 | 0) 3.590 us | }
|
|
7238524.269435 | 0) 4.506 us | }
|
|
7238524.269436 | 0) 13.594 us | }
|
|
7238524.269436 | 0) 0.070 us | _raw_spin_unlock();
|
|
7238524.269436 | 0) 0.163 us | ttwu_stat();
|
|
7238524.269437 | 0) 0.080 us | _raw_spin_unlock_irqrestore();
|
|
7238524.269438 | 0) 19.508 us | }
|
|
7238524.269438 | 0) 19.991 us | }
|
|
7238524.269438 | 0) 20.486 us | }
|
|
7238524.269438 | 0) 21.024 us | }
|
|
7238524.269438 | 0) 0.076 us | _raw_spin_unlock_irqrestore();
|
|
7238524.269439 | 0) 22.247 us | }
|
|
7238524.269439 | 0) | irq_exit() {
|
|
7238524.269439 | 0) 0.101 us | idle_cpu();
|
|
7238524.269440 | 0) 0.099 us | rcu_irq_exit();
|
|
7238524.269441 | 0) 1.207 us | }
|
|
7238524.269441 | 0) 25.035 us | }
|
|
7238524.269441 | 0) 0.131 us | add_interrupt_randomness();
|
|
7238524.269442 | 0) 0.076 us | note_interrupt();
|
|
7238524.269442 | 0) 26.909 us | }
|
|
7238524.269443 | 0) 29.377 us | }
|
|
7238524.269443 | 0) 30.139 us | }
|
|
7238524.269443 | 0) 32.759 us | }
|
|
7238524.269443 | 0) 33.204 us | }
|
|
7238524.269444 | 0) | irq_exit() {
|
|
7238524.269444 | 0) | __do_softirq() {
|
|
7238524.269444 | 0) 0.068 us | msecs_to_jiffies();
|
|
7238524.269445 | 0) | rcu_process_callbacks() {
|
|
7238524.269445 | 0) 0.070 us | note_gp_changes();
|
|
7238524.269445 | 0) 0.064 us | _raw_spin_lock_irqsave();
|
|
7238524.269446 | 0) 0.135 us | rcu_accelerate_cbs();
|
|
7238524.269447 | 0) | rcu_report_qs_rnp() {
|
|
7238524.269447 | 0) 0.061 us | _raw_spin_unlock_irqrestore();
|
|
7238524.269448 | 0) 0.779 us | }
|
|
7238524.269448 | 0) 0.081 us | cpu_needs_another_gp();
|
|
7238524.269449 | 0) | file_free_rcu() {
|
|
7238524.269449 | 0) 0.291 us | kmem_cache_free();
|
|
7238524.269450 | 0) 1.139 us | }
|
|
7238524.269451 | 0) | put_cred_rcu() {
|
|
7238524.269451 | 0) | security_cred_free() {
|
|
7238524.269452 | 0) | apparmor_cred_free() {
|
|
7238524.269453 | 0) | aa_free_task_context() {
|
|
7238524.269453 | 0) | kzfree() {
|
|
7238524.269454 | 0) 0.380 us | ksize();
|
|
7238524.269455 | 0) 0.147 us | kfree();
|
|
7238524.269455 | 0) 1.602 us | }
|
|
7238524.269455 | 0) 2.631 us | }
|
|
7238524.269456 | 0) 3.611 us | } /* apparmor_cred_free */
|
|
7238524.269456 | 0) 4.927 us | }
|
|
7238524.269457 | 0) 0.071 us | key_put();
|
|
7238524.269457 | 0) 0.071 us | key_put();
|
|
7238524.269458 | 0) 0.065 us | key_put();
|
|
7238524.269458 | 0) 0.066 us | key_put();
|
|
7238524.269459 | 0) 0.390 us | free_uid();
|
|
7238524.269460 | 0) 0.178 us | kmem_cache_free();
|
|
7238524.269460 | 0) 9.429 us | }
|
|
7238524.269461 | 0) 0.099 us | note_gp_changes();
|
|
7238524.269461 | 0) 0.080 us | cpu_needs_another_gp();
|
|
7238524.269462 | 0) 16.796 us | }
|
|
7238524.269462 | 0) 0.068 us | rcu_bh_qs();
|
|
7238524.269462 | 0) 0.066 us | __local_bh_enable();
|
|
7238524.269463 | 0) 18.770 us | }
|
|
7238524.269463 | 0) 0.073 us | idle_cpu();
|
|
7238524.269464 | 0) 0.088 us | rcu_irq_exit();
|
|
7238524.269464 | 0) 20.487 us | }
|
|
7238524.269465 | 0) 56.365 us | }
|
|
7238524.269465 | 0) 58.028 us | }
|
|
7238524.269466 | 0) 127463.5 us | }
|
|
7238524.269466 | 0) 127464.2 us | }
|
|
7238524.269467 | 0) 127465.0 us | }
|
|
7238524.269467 | 0) 0.095 us | down_read();
|
|
7238524.269468 | 0) | copy_from_read_buf() {
|
|
7238524.269469 | 0) | tty_audit_add_data() {
|
|
7238524.269469 | 0) 0.228 us | _raw_spin_lock_irqsave();
|
|
7238524.269470 | 0) 0.070 us | _raw_spin_unlock_irqrestore();
|
|
7238524.269471 | 0) 0.074 us | _raw_spin_lock_irqsave();
|
|
7238524.269471 | 0) 0.079 us | _raw_spin_unlock_irqrestore();
|
|
7238524.269472 | 0) 2.616 us | }
|
|
7238524.269472 | 0) 3.878 us | }
|
|
7238524.269473 | 0) 0.104 us | copy_from_read_buf();
|
|
7238524.269473 | 0) 0.074 us | n_tty_set_room();
|
|
7238524.269474 | 0) 0.067 us | n_tty_write_wakeup();
|
|
7238524.269474 | 0) | __wake_up() {
|
|
7238524.269475 | 0) 0.077 us | _raw_spin_lock_irqsave();
|
|
7238524.269475 | 0) | __wake_up_common() {
|
|
7238524.269476 | 0) 0.095 us | pollwake();
|
|
7238524.269476 | 0) 0.694 us | }
|
|
7238524.269476 | 0) 0.064 us | _raw_spin_unlock_irqrestore();
|
|
7238524.269477 | 0) 2.128 us | }
|
|
7238524.269477 | 0) 0.062 us | n_tty_set_room();
|
|
7238524.269477 | 0) 0.066 us | up_read();
|
|
7238524.269478 | 0) | remove_wait_queue() {
|
|
7238524.269478 | 0) 0.080 us | _raw_spin_lock_irqsave();
|
|
7238524.269479 | 0) 0.081 us | _raw_spin_unlock_irqrestore();
|
|
7238524.269480 | 0) 1.225 us | }
|
|
7238524.269480 | 0) 0.152 us | mutex_unlock();
|
|
7238524.269480 | 0) 127485.3 us | }
|
|
7238524.269481 | 0) | tty_ldisc_deref() {
|
|
7238524.269481 | 0) 0.081 us | ldsem_up_read();
|
|
7238524.269482 | 0) 0.655 us | }
|
|
7238524.269482 | 0) 0.089 us | get_seconds();
|
|
7238524.269483 | 0) 127490.1 us | }
|
|
7238524.269484 | 0) 0.287 us | __fsnotify_parent();
|
|
7238524.269484 | 0) 0.183 us | fsnotify();
|
|
7238524.269485 | 0) 127496.2 us | }
|
|
7238524.269559 | 0) | vfs_read() {
|
|
7238524.269559 | 0) | rw_verify_area() {
|
|
7238524.269560 | 0) | security_file_permission() {
|
|
7238524.269560 | 0) | apparmor_file_permission() {
|
|
7238524.269561 | 0) 0.164 us | common_file_perm();
|
|
7238524.269561 | 0) 0.831 us | }
|
|
7238524.269562 | 0) 0.078 us | __fsnotify_parent();
|
|
7238524.269562 | 0) 0.080 us | fsnotify();
|
|
7238524.269563 | 0) 2.765 us | }
|
|
7238524.269563 | 0) 3.490 us | }
|
|
7238524.269564 | 0) | tty_read() {
|
|
7238524.269564 | 0) 0.066 us | tty_paranoia_check();
|
|
7238524.269564 | 0) | tty_ldisc_ref_wait() {
|
|
7238524.269565 | 0) 0.085 us | ldsem_down_read();
|
|
7238524.269565 | 0) 0.656 us | }
|
|
7238524.269566 | 0) | n_tty_read() {
|
|
7238524.269566 | 0) 0.078 us | _raw_spin_lock_irq();
|
|
7238524.269567 | 0) 0.118 us | mutex_lock_interruptible();
|
|
7238524.269567 | 0) 0.078 us | down_read();
|
|
7238524.269568 | 0) | add_wait_queue() {
|
|
7238524.269568 | 0) 0.089 us | _raw_spin_lock_irqsave();
|
|
7238524.269569 | 0) 0.082 us | _raw_spin_unlock_irqrestore();
|
|
7238524.269569 | 0) 1.164 us | }
|
|
7238524.269570 | 0) 0.073 us | tty_hung_up_p();
|
|
7238524.269570 | 0) 0.076 us | n_tty_set_room();
|
|
7238524.269571 | 0) 0.078 us | up_read();
|
|
7238524.269571 | 0) | schedule_timeout() {
|
|
7238524.269572 | 0) | schedule() {
|
|
7238524.269572 | 0) | __schedule() {
|
|
7238524.269572 | 0) 0.078 us | rcu_note_context_switch();
|
|
7238524.269573 | 0) 0.085 us | _raw_spin_lock_irq();
|
|
7238524.269574 | 0) | deactivate_task() {
|
|
7238524.269574 | 0) | dequeue_task() {
|
|
7238524.269574 | 0) 0.185 us | update_rq_clock();
|
|
7238524.269575 | 0) | dequeue_task_fair() {
|
|
7238524.269575 | 0) | dequeue_entity() {
|
|
7238524.269575 | 0) | update_curr() {
|
|
7238524.269576 | 0) 0.206 us | cpuacct_charge();
|
|
7238524.269577 | 0) 0.937 us | }
|
|
7238524.269577 | 0) 0.084 us | __update_entity_load_avg_contrib();
|
|
7238524.269577 | 0) 0.077 us | update_cfs_rq_blocked_load();
|
|
7238524.269578 | 0) 0.075 us | clear_buddies();
|
|
7238524.269579 | 0) 0.096 us | account_entity_dequeue();
|
|
7238524.269579 | 0) | update_cfs_shares() {
|
|
7238524.269580 | 0) 0.095 us | update_curr();
|
|
7238524.269580 | 0) 0.104 us | account_entity_dequeue();
|
|
7238524.269581 | 0) 0.076 us | account_entity_enqueue();
|
|
7238524.269581 | 0) 1.898 us | }
|
|
7238524.269582 | 0) 6.120 us | }
|
|
7238524.269582 | 0) | dequeue_entity() {
|
|
7238524.269582 | 0) 0.093 us | update_curr();
|
|
7238524.269583 | 0) 0.116 us | __update_entity_load_avg_contrib();
|
|
7238524.269583 | 0) 0.085 us | update_cfs_rq_blocked_load();
|
|
7238524.269584 | 0) 0.067 us | clear_buddies();
|
|
7238524.269585 | 0) 0.082 us | account_entity_dequeue();
|
|
7238524.269585 | 0) 0.097 us | update_cfs_shares();
|
|
7238524.269586 | 0) 3.833 us | }
|
|
7238524.269586 | 0) 0.070 us | hrtick_update();
|
|
7238524.269587 | 0) 11.677 us | }
|
|
7238524.269587 | 0) 13.001 us | }
|
|
7238524.269587 | 0) 13.516 us | }
|
|
7238524.269588 | 0) | pick_next_task_fair() {
|
|
7238524.269588 | 0) 0.072 us | check_cfs_rq_runtime();
|
|
7238524.269588 | 0) | pick_next_entity() {
|
|
7238524.269589 | 0) 0.080 us | clear_buddies();
|
|
7238524.269589 | 0) 0.675 us | }
|
|
7238524.269590 | 0) | put_prev_entity() {
|
|
7238524.269590 | 0) 0.071 us | check_cfs_rq_runtime();
|
|
7238524.269591 | 0) 0.543 us | }
|
|
7238524.269591 | 0) | put_prev_entity() {
|
|
7238524.269591 | 0) 0.066 us | check_cfs_rq_runtime();
|
|
7238524.269592 | 0) 0.658 us | }
|
|
7238524.269592 | 0) | set_next_entity() {
|
|
7238524.269593 | 0) 0.082 us | update_stats_wait_end();
|
|
7238524.269593 | 0) 0.844 us | }
|
|
7238524.269594 | 0) 5.970 us | }
|
|
7238524.269594 | 0) 0.076 us | paravirt_start_context_switch();
|
|
7238524.269595 | 0) 0.074 us | xen_read_cr0();
|
|
7238524.269596 | 0) | xen_write_cr0() {
|
|
7238524.269597 | 0) 0.081 us | paravirt_get_lazy_mode();
|
|
7238524.269597 | 0) 0.086 us | __xen_mc_entry();
|
|
7238524.269598 | 0) 0.070 us | paravirt_get_lazy_mode();
|
|
7238524.269598 | 0) 1.739 us | }
|
|
7238524.269598 | 0) | xen_load_sp0() {
|
|
7238524.269599 | 0) 0.078 us | paravirt_get_lazy_mode();
|
|
7238524.269599 | 0) 0.078 us | __xen_mc_entry();
|
|
7238524.269600 | 0) 0.069 us | paravirt_get_lazy_mode();
|
|
7238524.269600 | 0) 1.568 us | }
|
|
7238524.269601 | 0) | xen_load_tls() {
|
|
7238524.269601 | 0) 0.068 us | paravirt_get_lazy_mode();
|
|
7238524.269601 | 0) 0.068 us | paravirt_get_lazy_mode();
|
|
7238524.269602 | 0) 0.078 us | load_TLS_descriptor();
|
|
7238524.269602 | 0) 0.071 us | load_TLS_descriptor();
|
|
7238524.269603 | 0) 0.073 us | load_TLS_descriptor();
|
|
7238524.269603 | 0) 0.063 us | paravirt_get_lazy_mode();
|
|
7238524.269604 | 0) 3.025 us | }
|
|
7238524.269604 | 0) | xen_end_context_switch() {
|
|
7238524.269604 | 0) 0.646 us | xen_mc_flush();
|
|
7238524.269605 | 0) 0.087 us | paravirt_end_context_switch();
|
|
7238524.269606 | 0) 1.604 us | }
|
|
^C
|
|
Ending tracing...
|
|
|
|
If you read through the durations carefully, you can see that the shell begins
|
|
by completing a 19 second read (time between commands), then has a series of
|
|
100 to 200 ms reads (inter-keystroke latency).
|
|
|
|
The function times printed are inclusive of their children.
|
|
|
|
|
|
The -C option will print on-CPU times only, excluding sleeping or blocking
|
|
events from the function duration times. Eg:
|
|
|
|
# ./funcgraph -Ctp 25285 vfs_read
|
|
Tracing "vfs_read" for PID 25285... Ctrl-C to end.
|
|
7338520.591816 | 0) | finish_task_switch() {
|
|
7338520.591820 | 0) | xen_evtchn_do_upcall() {
|
|
7338520.591821 | 0) | irq_enter() {
|
|
7338520.591821 | 0) 0.134 us | rcu_irq_enter();
|
|
7338520.591822 | 0) 0.823 us | }
|
|
7338520.591822 | 0) 0.055 us | exit_idle();
|
|
7338520.591822 | 0) | __xen_evtchn_do_upcall() {
|
|
7338520.591823 | 0) | evtchn_2l_handle_events() {
|
|
7338520.591823 | 0) 0.051 us | irq_from_virq();
|
|
7338520.591823 | 0) | evtchn_from_irq() {
|
|
7338520.591823 | 0) | irq_get_irq_data() {
|
|
7338520.591824 | 0) 0.064 us | irq_to_desc();
|
|
7338520.591824 | 0) 0.572 us | }
|
|
7338520.591824 | 0) 0.973 us | }
|
|
7338520.591825 | 0) | get_evtchn_to_irq() {
|
|
7338520.591825 | 0) 0.049 us | evtchn_2l_max_channels();
|
|
7338520.591825 | 0) 0.386 us | }
|
|
7338520.591825 | 0) | generic_handle_irq() {
|
|
7338520.591825 | 0) 0.061 us | irq_to_desc();
|
|
7338520.591826 | 0) | handle_percpu_irq() {
|
|
7338520.591826 | 0) | ack_dynirq() {
|
|
7338520.591826 | 0) | evtchn_from_irq() {
|
|
7338520.591826 | 0) | irq_get_irq_data() {
|
|
7338520.591827 | 0) 0.050 us | irq_to_desc();
|
|
7338520.591827 | 0) 0.441 us | }
|
|
7338520.591827 | 0) 0.748 us | }
|
|
7338520.591827 | 0) 0.048 us | irq_move_irq();
|
|
7338520.591828 | 0) 0.053 us | evtchn_2l_clear_pending();
|
|
7338520.591828 | 0) 1.810 us | }
|
|
7338520.591828 | 0) | handle_irq_event_percpu() {
|
|
7338520.591828 | 0) | xen_irq_work_interrupt() {
|
|
7338520.591829 | 0) | irq_enter() {
|
|
7338520.591829 | 0) 0.069 us | rcu_irq_enter();
|
|
7338520.591829 | 0) 0.386 us | }
|
|
7338520.591830 | 0) | __wake_up() {
|
|
7338520.591830 | 0) 0.060 us | _raw_spin_lock_irqsave();
|
|
7338520.591830 | 0) | __wake_up_common() {
|
|
7338520.591830 | 0) | autoremove_wake_function() {
|
|
7338520.591831 | 0) | default_wake_function() {
|
|
7338520.591831 | 0) | try_to_wake_up() {
|
|
7338520.591831 | 0) 0.223 us | _raw_spin_lock_irqsave();
|
|
7338520.591832 | 0) 0.243 us | task_waking_fair();
|
|
7338520.591832 | 0) | select_task_rq_fair() {
|
|
7338520.591833 | 0) 0.063 us | source_load();
|
|
7338520.591833 | 0) 0.059 us | target_load();
|
|
7338520.591834 | 0) 0.060 us | idle_cpu();
|
|
7338520.591834 | 0) 0.059 us | cpus_share_cache();
|
|
7338520.591834 | 0) 0.085 us | idle_cpu();
|
|
7338520.591835 | 0) 2.176 us | }
|
|
7338520.591835 | 0) 0.050 us | _raw_spin_lock();
|
|
7338520.591835 | 0) | ttwu_do_activate.constprop.124() {
|
|
7338520.591835 | 0) | activate_task() {
|
|
7338520.591836 | 0) | enqueue_task() {
|
|
7338520.591836 | 0) 0.197 us | update_rq_clock();
|
|
7338520.591836 | 0) | enqueue_task_fair() {
|
|
7338520.591836 | 0) | enqueue_entity() {
|
|
7338520.591837 | 0) 0.118 us | update_curr();
|
|
7338520.591837 | 0) 0.060 us | __compute_runnable_contrib.part.51();
|
|
7338520.591838 | 0) 0.052 us | __update_entity_load_avg_contrib();
|
|
7338520.591838 | 0) 0.132 us | update_cfs_rq_blocked_load();
|
|
7338520.591838 | 0) 0.068 us | account_entity_enqueue();
|
|
7338520.591839 | 0) 0.327 us | update_cfs_shares();
|
|
7338520.591839 | 0) 0.055 us | place_entity();
|
|
7338520.591840 | 0) 0.086 us | __enqueue_entity();
|
|
7338520.591840 | 0) 0.069 us | update_cfs_rq_blocked_load();
|
|
7338520.591840 | 0) 3.870 us | }
|
|
7338520.591841 | 0) | enqueue_entity() {
|
|
7338520.591841 | 0) 0.050 us | update_curr();
|
|
7338520.591841 | 0) 0.048 us | __compute_runnable_contrib.part.51();
|
|
7338520.591842 | 0) 0.079 us | __update_entity_load_avg_contrib();
|
|
7338520.591842 | 0) 0.068 us | update_cfs_rq_blocked_load();
|
|
7338520.591842 | 0) 0.072 us | account_entity_enqueue();
|
|
7338520.591843 | 0) 0.068 us | update_cfs_shares();
|
|
7338520.591844 | 0) 0.123 us | place_entity();
|
|
7338520.591844 | 0) 0.051 us | __enqueue_entity();
|
|
7338520.591845 | 0) 3.919 us | }
|
|
7338520.591845 | 0) 0.059 us | hrtick_update();
|
|
7338520.591845 | 0) 8.895 us | }
|
|
7338520.591846 | 0) 9.770 us | }
|
|
7338520.591846 | 0) 10.197 us | }
|
|
7338520.591846 | 0) | ttwu_do_wakeup() {
|
|
7338520.591846 | 0) | check_preempt_curr() {
|
|
7338520.591846 | 0) | resched_task() {
|
|
7338520.591847 | 0) | xen_smp_send_reschedule() {
|
|
7338520.591847 | 0) | xen_send_IPI_one() {
|
|
7338520.591847 | 0) | notify_remote_via_irq() {
|
|
7338520.591847 | 0) | evtchn_from_irq() {
|
|
7338520.591848 | 0) | irq_get_irq_data() {
|
|
7338520.591848 | 0) 0.051 us | irq_to_desc();
|
|
7338520.591848 | 0) 0.503 us | }
|
|
7338520.591848 | 0) 1.031 us | }
|
|
7338520.591849 | 0) 2.112 us | }
|
|
7338520.591849 | 0) 2.484 us | }
|
|
7338520.591850 | 0) 2.851 us | }
|
|
7338520.591850 | 0) 3.311 us | }
|
|
7338520.591850 | 0) 3.828 us | }
|
|
7338520.591851 | 0) 4.788 us | }
|
|
7338520.591851 | 0) 15.731 us | }
|
|
7338520.591851 | 0) 0.074 us | _raw_spin_unlock();
|
|
7338520.591852 | 0) 0.156 us | ttwu_stat();
|
|
7338520.591852 | 0) 0.080 us | _raw_spin_unlock_irqrestore();
|
|
7338520.591853 | 0) 21.807 us | }
|
|
7338520.591853 | 0) 22.286 us | }
|
|
7338520.591853 | 0) 22.738 us | }
|
|
7338520.591854 | 0) 23.387 us | }
|
|
7338520.591854 | 0) 0.105 us | _raw_spin_unlock_irqrestore();
|
|
7338520.591854 | 0) 24.698 us | }
|
|
7338520.591855 | 0) | irq_exit() {
|
|
7338520.591855 | 0) 0.086 us | idle_cpu();
|
|
7338520.591856 | 0) 0.105 us | rcu_irq_exit();
|
|
7338520.591856 | 0) 1.272 us | }
|
|
7338520.591856 | 0) 27.818 us | }
|
|
7338520.591857 | 0) 0.140 us | add_interrupt_randomness();
|
|
7338520.591857 | 0) 0.084 us | note_interrupt();
|
|
7338520.591858 | 0) 29.866 us | }
|
|
7338520.591858 | 0) 32.390 us | }
|
|
7338520.591859 | 0) 33.204 us | }
|
|
7338520.591859 | 0) 36.137 us | }
|
|
7338520.591859 | 0) 36.574 us | }
|
|
7338520.591859 | 0) | irq_exit() {
|
|
7338520.591860 | 0) 0.073 us | idle_cpu();
|
|
7338520.591860 | 0) 0.076 us | rcu_irq_exit();
|
|
7338520.591861 | 0) 1.091 us | }
|
|
7338520.591861 | 0) 40.156 us | }
|
|
7338520.591862 | 0) 41.874 us | }
|
|
7338520.591862 | 0) 75.633 us | } /* __schedule */
|
|
7338520.591862 | 0) 76.182 us | } /* schedule */
|
|
7338520.591863 | 0) 76.965 us | } /* schedule_timeout */
|
|
7338520.591863 | 0) 0.070 us | down_read();
|
|
7338520.591864 | 0) | copy_from_read_buf() {
|
|
7338520.591865 | 0) | tty_audit_add_data() {
|
|
7338520.591865 | 0) 0.232 us | _raw_spin_lock_irqsave();
|
|
7338520.591866 | 0) 0.079 us | _raw_spin_unlock_irqrestore();
|
|
7338520.591867 | 0) 0.122 us | _raw_spin_lock_irqsave();
|
|
7338520.591867 | 0) 0.066 us | _raw_spin_unlock_irqrestore();
|
|
7338520.591868 | 0) 2.642 us | }
|
|
7338520.591868 | 0) 3.886 us | }
|
|
7338520.591868 | 0) 0.149 us | copy_from_read_buf();
|
|
7338520.591869 | 0) 0.072 us | n_tty_set_room();
|
|
7338520.591870 | 0) 0.071 us | n_tty_write_wakeup();
|
|
7338520.591870 | 0) | __wake_up() {
|
|
7338520.591871 | 0) 0.071 us | _raw_spin_lock_irqsave();
|
|
7338520.591872 | 0) | __wake_up_common() {
|
|
7338520.591872 | 0) 0.097 us | pollwake();
|
|
7338520.591873 | 0) 0.739 us | }
|
|
7338520.591873 | 0) 0.066 us | _raw_spin_unlock_irqrestore();
|
|
7338520.591874 | 0) 3.043 us | }
|
|
7338520.591874 | 0) 0.075 us | n_tty_set_room();
|
|
7338520.591875 | 0) 0.106 us | up_read();
|
|
7338520.591875 | 0) | remove_wait_queue() {
|
|
7338520.591875 | 0) 0.078 us | _raw_spin_lock_irqsave();
|
|
7338520.591876 | 0) 0.075 us | _raw_spin_unlock_irqrestore();
|
|
7338520.591877 | 0) 1.165 us | }
|
|
7338520.591877 | 0) 0.137 us | mutex_unlock();
|
|
7338520.591877 | 0) 98.321 us | } /* n_tty_read */
|
|
7338520.591878 | 0) | tty_ldisc_deref() {
|
|
7338520.591878 | 0) 0.072 us | ldsem_up_read();
|
|
7338520.591879 | 0) 0.561 us | }
|
|
7338520.591879 | 0) 0.090 us | get_seconds();
|
|
7338520.591880 | 0) 102.599 us | } /* tty_read */
|
|
7338520.591880 | 0) 0.362 us | __fsnotify_parent();
|
|
7338520.591881 | 0) 0.171 us | fsnotify();
|
|
7338520.591882 | 0) 109.640 us | } /* vfs_read */
|
|
7338520.591951 | 0) | vfs_read() {
|
|
7338520.591951 | 0) | rw_verify_area() {
|
|
7338520.591952 | 0) | security_file_permission() {
|
|
7338520.591952 | 0) | apparmor_file_permission() {
|
|
7338520.591952 | 0) 0.174 us | common_file_perm();
|
|
7338520.591953 | 0) 0.762 us | }
|
|
7338520.591953 | 0) 0.126 us | __fsnotify_parent();
|
|
7338520.591954 | 0) 0.088 us | fsnotify();
|
|
7338520.591954 | 0) 2.609 us | }
|
|
7338520.591955 | 0) 3.351 us | }
|
|
7338520.591955 | 0) | tty_read() {
|
|
7338520.591956 | 0) 0.081 us | tty_paranoia_check();
|
|
7338520.591956 | 0) | tty_ldisc_ref_wait() {
|
|
7338520.591956 | 0) 0.090 us | ldsem_down_read();
|
|
7338520.591957 | 0) 0.633 us | }
|
|
7338520.591957 | 0) | n_tty_read() {
|
|
7338520.591958 | 0) 0.073 us | _raw_spin_lock_irq();
|
|
7338520.591958 | 0) 0.089 us | mutex_lock_interruptible();
|
|
7338520.591959 | 0) 0.080 us | down_read();
|
|
7338520.591960 | 0) | add_wait_queue() {
|
|
7338520.591960 | 0) 0.084 us | _raw_spin_lock_irqsave();
|
|
7338520.591960 | 0) 0.087 us | _raw_spin_unlock_irqrestore();
|
|
7338520.591961 | 0) 1.215 us | }
|
|
7338520.591961 | 0) 0.078 us | tty_hung_up_p();
|
|
7338520.591962 | 0) 0.084 us | n_tty_set_room();
|
|
7338520.591962 | 0) 0.072 us | up_read();
|
|
7338520.591963 | 0) | schedule_timeout() {
|
|
7338520.591963 | 0) | schedule() {
|
|
7338520.591964 | 0) | __schedule() {
|
|
7338520.591964 | 0) 0.084 us | rcu_note_context_switch();
|
|
7338520.591965 | 0) 0.086 us | _raw_spin_lock_irq();
|
|
7338520.591965 | 0) | deactivate_task() {
|
|
7338520.591966 | 0) | dequeue_task() {
|
|
7338520.591966 | 0) 0.171 us | update_rq_clock();
|
|
7338520.591966 | 0) | dequeue_task_fair() {
|
|
7338520.591967 | 0) | dequeue_entity() {
|
|
7338520.591967 | 0) | update_curr() {
|
|
7338520.591967 | 0) 0.248 us | cpuacct_charge();
|
|
7338520.591968 | 0) 0.974 us | }
|
|
7338520.591969 | 0) 0.074 us | update_cfs_rq_blocked_load();
|
|
7338520.591969 | 0) 0.081 us | clear_buddies();
|
|
7338520.591970 | 0) 0.094 us | account_entity_dequeue();
|
|
7338520.591971 | 0) | update_cfs_shares() {
|
|
7338520.591971 | 0) 0.096 us | update_curr();
|
|
7338520.591971 | 0) 0.093 us | account_entity_dequeue();
|
|
7338520.591972 | 0) 0.079 us | account_entity_enqueue();
|
|
7338520.591972 | 0) 1.743 us | }
|
|
7338520.591972 | 0) 5.515 us | }
|
|
7338520.591973 | 0) | dequeue_entity() {
|
|
7338520.591973 | 0) 0.088 us | update_curr();
|
|
7338520.591974 | 0) 0.106 us | update_cfs_rq_blocked_load();
|
|
7338520.591975 | 0) 0.078 us | clear_buddies();
|
|
7338520.591975 | 0) 0.088 us | account_entity_dequeue();
|
|
7338520.591976 | 0) 0.091 us | update_cfs_shares();
|
|
7338520.591977 | 0) 3.639 us | }
|
|
7338520.591977 | 0) 0.078 us | hrtick_update();
|
|
7338520.591978 | 0) 10.851 us | }
|
|
7338520.591978 | 0) 11.992 us | }
|
|
7338520.591978 | 0) 12.496 us | }
|
|
7338520.591978 | 0) | pick_next_task_fair() {
|
|
7338520.591979 | 0) 0.079 us | check_cfs_rq_runtime();
|
|
7338520.591979 | 0) | pick_next_entity() {
|
|
7338520.591979 | 0) 0.080 us | clear_buddies();
|
|
7338520.591980 | 0) 0.594 us | }
|
|
7338520.591980 | 0) | put_prev_entity() {
|
|
7338520.591980 | 0) 0.078 us | check_cfs_rq_runtime();
|
|
7338520.591981 | 0) 0.641 us | }
|
|
7338520.591981 | 0) | put_prev_entity() {
|
|
7338520.591982 | 0) 0.076 us | check_cfs_rq_runtime();
|
|
7338520.591982 | 0) 0.610 us | }
|
|
7338520.591982 | 0) | set_next_entity() {
|
|
7338520.591983 | 0) 0.097 us | update_stats_wait_end();
|
|
7338520.591983 | 0) 0.744 us | }
|
|
7338520.591984 | 0) 5.115 us | }
|
|
7338520.591984 | 0) 0.076 us | paravirt_start_context_switch();
|
|
7338520.591985 | 0) 0.086 us | xen_read_cr0();
|
|
7338520.591986 | 0) | xen_write_cr0() {
|
|
7338520.591986 | 0) 0.078 us | paravirt_get_lazy_mode();
|
|
7338520.591987 | 0) 0.086 us | __xen_mc_entry();
|
|
7338520.591987 | 0) 0.078 us | paravirt_get_lazy_mode();
|
|
7338520.591988 | 0) 1.698 us | }
|
|
7338520.591988 | 0) | xen_load_sp0() {
|
|
7338520.591988 | 0) 0.074 us | paravirt_get_lazy_mode();
|
|
7338520.591989 | 0) 0.084 us | __xen_mc_entry();
|
|
7338520.591989 | 0) 0.084 us | paravirt_get_lazy_mode();
|
|
7338520.591990 | 0) 1.724 us | }
|
|
7338520.591990 | 0) | xen_load_tls() {
|
|
7338520.591991 | 0) 0.080 us | paravirt_get_lazy_mode();
|
|
7338520.591991 | 0) 0.088 us | paravirt_get_lazy_mode();
|
|
7338520.591992 | 0) 0.140 us | load_TLS_descriptor();
|
|
7338520.591992 | 0) 0.079 us | load_TLS_descriptor();
|
|
7338520.591993 | 0) 0.087 us | load_TLS_descriptor();
|
|
7338520.591994 | 0) 0.078 us | paravirt_get_lazy_mode();
|
|
7338520.591994 | 0) 3.666 us | }
|
|
7338520.591995 | 0) | xen_end_context_switch() {
|
|
7338520.591995 | 0) 0.644 us | xen_mc_flush();
|
|
7338520.591996 | 0) 0.080 us | paravirt_end_context_switch();
|
|
7338520.591997 | 0) 1.813 us | }
|
|
7338520.855105 | 0) | finish_task_switch() {
|
|
7338520.855110 | 0) | xen_evtchn_do_upcall() {
|
|
7338520.855110 | 0) | irq_enter() {
|
|
7338520.855110 | 0) 0.137 us | rcu_irq_enter();
|
|
7338520.855111 | 0) 0.673 us | }
|
|
7338520.855111 | 0) 0.063 us | exit_idle();
|
|
7338520.855111 | 0) | __xen_evtchn_do_upcall() {
|
|
7338520.855112 | 0) | evtchn_2l_handle_events() {
|
|
7338520.855112 | 0) 0.050 us | irq_from_virq();
|
|
7338520.855112 | 0) | evtchn_from_irq() {
|
|
7338520.855112 | 0) | irq_get_irq_data() {
|
|
7338520.855113 | 0) 0.050 us | irq_to_desc();
|
|
7338520.855113 | 0) 0.568 us | }
|
|
7338520.855113 | 0) 0.895 us | }
|
|
7338520.855114 | 0) | get_evtchn_to_irq() {
|
|
7338520.855114 | 0) 0.048 us | evtchn_2l_max_channels();
|
|
7338520.855114 | 0) 0.386 us | }
|
|
7338520.855114 | 0) | generic_handle_irq() {
|
|
7338520.855114 | 0) 0.051 us | irq_to_desc();
|
|
7338520.855115 | 0) | handle_percpu_irq() {
|
|
7338520.855115 | 0) | ack_dynirq() {
|
|
7338520.855115 | 0) | evtchn_from_irq() {
|
|
7338520.855115 | 0) | irq_get_irq_data() {
|
|
7338520.855116 | 0) 0.058 us | irq_to_desc();
|
|
7338520.855117 | 0) 1.264 us | }
|
|
7338520.855117 | 0) 1.644 us | }
|
|
7338520.855117 | 0) 0.048 us | irq_move_irq();
|
|
7338520.855118 | 0) 0.050 us | evtchn_2l_clear_pending();
|
|
7338520.855118 | 0) 2.876 us | }
|
|
7338520.855118 | 0) | handle_irq_event_percpu() {
|
|
7338520.855119 | 0) | xen_irq_work_interrupt() {
|
|
7338520.855119 | 0) | irq_enter() {
|
|
7338520.855119 | 0) 0.055 us | rcu_irq_enter();
|
|
7338520.855119 | 0) 0.460 us | }
|
|
7338520.855120 | 0) | __wake_up() {
|
|
7338520.855120 | 0) 0.057 us | _raw_spin_lock_irqsave();
|
|
7338520.855120 | 0) | __wake_up_common() {
|
|
7338520.855121 | 0) | autoremove_wake_function() {
|
|
7338520.855121 | 0) | default_wake_function() {
|
|
7338520.855121 | 0) | try_to_wake_up() {
|
|
7338520.855121 | 0) 0.203 us | _raw_spin_lock_irqsave();
|
|
7338520.855122 | 0) 0.179 us | task_waking_fair();
|
|
7338520.855123 | 0) | select_task_rq_fair() {
|
|
7338520.855123 | 0) 0.048 us | source_load();
|
|
7338520.855123 | 0) 0.059 us | target_load();
|
|
7338520.855124 | 0) 0.059 us | idle_cpu();
|
|
7338520.855124 | 0) 0.058 us | cpus_share_cache();
|
|
7338520.855124 | 0) 0.058 us | idle_cpu();
|
|
7338520.855125 | 0) 1.940 us | }
|
|
7338520.855125 | 0) 0.057 us | _raw_spin_lock();
|
|
7338520.855125 | 0) | ttwu_do_activate.constprop.124() {
|
|
7338520.855125 | 0) | activate_task() {
|
|
7338520.855126 | 0) | enqueue_task() {
|
|
7338520.855126 | 0) 0.171 us | update_rq_clock();
|
|
7338520.855126 | 0) | enqueue_task_fair() {
|
|
7338520.855126 | 0) | enqueue_entity() {
|
|
7338520.855127 | 0) 0.063 us | update_curr();
|
|
7338520.855127 | 0) 0.078 us | __compute_runnable_contrib.part.51();
|
|
7338520.855127 | 0) 0.066 us | __update_entity_load_avg_contrib();
|
|
7338520.855128 | 0) 0.061 us | update_cfs_rq_blocked_load();
|
|
7338520.855128 | 0) 0.072 us | account_entity_enqueue();
|
|
7338520.855128 | 0) 0.116 us | update_cfs_shares();
|
|
7338520.855129 | 0) 0.062 us | place_entity();
|
|
7338520.855129 | 0) 0.087 us | __enqueue_entity();
|
|
7338520.855129 | 0) 2.950 us | }
|
|
7338520.855130 | 0) | enqueue_entity() {
|
|
7338520.855130 | 0) 0.065 us | update_curr();
|
|
7338520.855130 | 0) 0.065 us | update_cfs_rq_blocked_load();
|
|
7338520.855130 | 0) 0.067 us | account_entity_enqueue();
|
|
7338520.855131 | 0) 0.084 us | update_cfs_shares();
|
|
7338520.855131 | 0) 0.112 us | place_entity();
|
|
7338520.855131 | 0) 0.051 us | __enqueue_entity();
|
|
7338520.855132 | 0) 2.074 us | }
|
|
7338520.855132 | 0) 0.055 us | hrtick_update();
|
|
7338520.855132 | 0) 5.983 us | }
|
|
7338520.855133 | 0) 6.790 us | }
|
|
7338520.855133 | 0) 7.138 us | }
|
|
7338520.855133 | 0) | ttwu_do_wakeup() {
|
|
7338520.855133 | 0) | check_preempt_curr() {
|
|
7338520.855133 | 0) | resched_task() {
|
|
7338520.855133 | 0) | xen_smp_send_reschedule() {
|
|
7338520.855134 | 0) | xen_send_IPI_one() {
|
|
7338520.855134 | 0) | notify_remote_via_irq() {
|
|
7338520.855134 | 0) | evtchn_from_irq() {
|
|
7338520.855134 | 0) | irq_get_irq_data() {
|
|
7338520.855134 | 0) 0.057 us | irq_to_desc();
|
|
7338520.855135 | 0) 0.502 us | }
|
|
7338520.855135 | 0) 0.865 us | }
|
|
7338520.855136 | 0) 1.975 us | } /* notify_remote_via_irq */
|
|
7338520.855136 | 0) 2.350 us | }
|
|
7338520.855136 | 0) 2.723 us | }
|
|
7338520.855136 | 0) 3.175 us | }
|
|
7338520.855137 | 0) 3.620 us | }
|
|
7338520.855138 | 0) 4.642 us | }
|
|
7338520.855138 | 0) 12.409 us | }
|
|
7338520.855138 | 0) 0.059 us | _raw_spin_unlock();
|
|
7338520.855139 | 0) 0.108 us | ttwu_stat();
|
|
7338520.855140 | 0) 0.073 us | _raw_spin_unlock_irqrestore();
|
|
7338520.855140 | 0) 18.857 us | }
|
|
7338520.855141 | 0) 19.415 us | }
|
|
7338520.855141 | 0) 19.993 us | }
|
|
7338520.855141 | 0) 20.587 us | }
|
|
7338520.855141 | 0) 0.070 us | _raw_spin_unlock_irqrestore();
|
|
7338520.855142 | 0) 21.858 us | }
|
|
7338520.855142 | 0) | irq_exit() {
|
|
7338520.855143 | 0) 0.084 us | idle_cpu();
|
|
7338520.855143 | 0) 0.082 us | rcu_irq_exit();
|
|
7338520.855144 | 0) 1.235 us | }
|
|
7338520.855144 | 0) 25.109 us | }
|
|
7338520.855144 | 0) 0.126 us | add_interrupt_randomness();
|
|
7338520.855145 | 0) 0.091 us | note_interrupt();
|
|
7338520.855145 | 0) 26.935 us | }
|
|
7338520.855146 | 0) 30.693 us | }
|
|
7338520.855146 | 0) 31.575 us | }
|
|
7338520.855146 | 0) 34.424 us | }
|
|
7338520.855147 | 0) 34.841 us | }
|
|
7338520.855147 | 0) | irq_exit() {
|
|
7338520.855147 | 0) 0.083 us | idle_cpu();
|
|
7338520.855148 | 0) 0.069 us | rcu_irq_exit();
|
|
7338520.855148 | 0) 1.056 us | }
|
|
7338520.855148 | 0) 38.284 us | }
|
|
7338520.855149 | 0) 39.892 us | }
|
|
7338520.855150 | 0) 72.181 us | }
|
|
7338520.855150 | 0) 72.925 us | }
|
|
7338520.855150 | 0) 73.638 us | }
|
|
7338520.855151 | 0) 0.078 us | down_read();
|
|
7338520.855152 | 0) | copy_from_read_buf() {
|
|
7338520.855153 | 0) | tty_audit_add_data() {
|
|
7338520.855153 | 0) 0.272 us | _raw_spin_lock_irqsave();
|
|
7338520.855154 | 0) 0.063 us | _raw_spin_unlock_irqrestore();
|
|
7338520.855155 | 0) 0.086 us | _raw_spin_lock_irqsave();
|
|
7338520.855155 | 0) 0.067 us | _raw_spin_unlock_irqrestore();
|
|
7338520.855156 | 0) 2.808 us | }
|
|
7338520.855156 | 0) 4.330 us | }
|
|
7338520.855156 | 0) 0.083 us | copy_from_read_buf();
|
|
7338520.855157 | 0) 0.062 us | n_tty_set_room();
|
|
7338520.855158 | 0) 0.079 us | n_tty_write_wakeup();
|
|
7338520.855158 | 0) | __wake_up() {
|
|
7338520.855158 | 0) 0.068 us | _raw_spin_lock_irqsave();
|
|
7338520.855159 | 0) | __wake_up_common() {
|
|
7338520.855159 | 0) 0.092 us | pollwake();
|
|
7338520.855160 | 0) 0.643 us | }
|
|
7338520.855160 | 0) 0.074 us | _raw_spin_unlock_irqrestore();
|
|
7338520.855160 | 0) 2.040 us | }
|
|
7338520.855161 | 0) 0.074 us | n_tty_set_room();
|
|
7338520.855162 | 0) 0.073 us | up_read();
|
|
7338520.855162 | 0) | remove_wait_queue() {
|
|
7338520.855162 | 0) 0.084 us | _raw_spin_lock_irqsave();
|
|
7338520.855163 | 0) 0.078 us | _raw_spin_unlock_irqrestore();
|
|
7338520.855163 | 0) 1.166 us | }
|
|
7338520.855164 | 0) 0.140 us | mutex_unlock();
|
|
7338520.855164 | 0) 93.360 us | }
|
|
7338520.855165 | 0) | tty_ldisc_deref() {
|
|
7338520.855165 | 0) 0.070 us | ldsem_up_read();
|
|
7338520.855166 | 0) 0.746 us | }
|
|
7338520.855166 | 0) 0.071 us | get_seconds();
|
|
7338520.855167 | 0) 97.713 us | }
|
|
7338520.855167 | 0) 0.283 us | __fsnotify_parent();
|
|
7338520.855168 | 0) 0.172 us | fsnotify();
|
|
7338520.855168 | 0) 103.847 us | }
|
|
7338520.855238 | 0) | vfs_read() {
|
|
7338520.855239 | 0) | rw_verify_area() {
|
|
7338520.855240 | 0) | security_file_permission() {
|
|
7338520.855240 | 0) | apparmor_file_permission() {
|
|
7338520.855240 | 0) 0.160 us | common_file_perm();
|
|
7338520.855241 | 0) 0.770 us | }
|
|
7338520.855241 | 0) 0.078 us | __fsnotify_parent();
|
|
7338520.855242 | 0) 0.087 us | fsnotify();
|
|
7338520.855243 | 0) 2.595 us | }
|
|
7338520.855243 | 0) 4.148 us | }
|
|
7338520.855243 | 0) | tty_read() {
|
|
7338520.855244 | 0) 0.078 us | tty_paranoia_check();
|
|
7338520.855244 | 0) | tty_ldisc_ref_wait() {
|
|
7338520.855244 | 0) 0.084 us | ldsem_down_read();
|
|
7338520.855245 | 0) 0.643 us | }
|
|
7338520.855245 | 0) | n_tty_read() {
|
|
7338520.855246 | 0) 0.079 us | _raw_spin_lock_irq();
|
|
7338520.855247 | 0) 0.171 us | mutex_lock_interruptible();
|
|
7338520.855247 | 0) 0.064 us | down_read();
|
|
7338520.855248 | 0) | add_wait_queue() {
|
|
7338520.855248 | 0) 0.078 us | _raw_spin_lock_irqsave();
|
|
7338520.855249 | 0) 0.082 us | _raw_spin_unlock_irqrestore();
|
|
7338520.855249 | 0) 1.076 us | }
|
|
7338520.855250 | 0) 0.075 us | tty_hung_up_p();
|
|
7338520.855250 | 0) 0.079 us | n_tty_set_room();
|
|
7338520.855251 | 0) 0.075 us | up_read();
|
|
7338520.855251 | 0) | schedule_timeout() {
|
|
7338520.855252 | 0) | schedule() {
|
|
7338520.855252 | 0) | __schedule() {
|
|
7338520.855252 | 0) 0.084 us | rcu_note_context_switch();
|
|
7338520.855253 | 0) 0.079 us | _raw_spin_lock_irq();
|
|
7338520.855254 | 0) | deactivate_task() {
|
|
7338520.855254 | 0) | dequeue_task() {
|
|
7338520.855254 | 0) 0.219 us | update_rq_clock();
|
|
7338520.855255 | 0) | dequeue_task_fair() {
|
|
7338520.855255 | 0) | dequeue_entity() {
|
|
7338520.855255 | 0) | update_curr() {
|
|
7338520.855256 | 0) 0.186 us | cpuacct_charge();
|
|
7338520.855257 | 0) 0.924 us | }
|
|
7338520.855257 | 0) 0.078 us | update_cfs_rq_blocked_load();
|
|
7338520.855258 | 0) 0.078 us | clear_buddies();
|
|
7338520.855258 | 0) 0.083 us | account_entity_dequeue();
|
|
7338520.855259 | 0) | update_cfs_shares() {
|
|
7338520.855259 | 0) 0.105 us | update_curr();
|
|
7338520.855260 | 0) 0.093 us | account_entity_dequeue();
|
|
7338520.855260 | 0) 0.098 us | account_entity_enqueue();
|
|
7338520.855261 | 0) 1.825 us | }
|
|
7338520.855261 | 0) 5.574 us | }
|
|
7338520.855261 | 0) | dequeue_entity() {
|
|
7338520.855261 | 0) 0.086 us | update_curr();
|
|
7338520.855262 | 0) 0.127 us | __update_entity_load_avg_contrib();
|
|
7338520.855263 | 0) 0.070 us | update_cfs_rq_blocked_load();
|
|
7338520.855263 | 0) 0.066 us | clear_buddies();
|
|
7338520.855264 | 0) 0.082 us | account_entity_dequeue();
|
|
7338520.855264 | 0) 0.104 us | update_cfs_shares();
|
|
7338520.855265 | 0) 3.439 us | }
|
|
7338520.855265 | 0) 0.078 us | hrtick_update();
|
|
7338520.855266 | 0) 10.741 us | }
|
|
7338520.855266 | 0) 11.990 us | }
|
|
7338520.855266 | 0) 12.580 us | }
|
|
7338520.855267 | 0) | pick_next_task_fair() {
|
|
7338520.855267 | 0) 0.074 us | check_cfs_rq_runtime();
|
|
7338520.855268 | 0) | pick_next_entity() {
|
|
7338520.855268 | 0) 0.078 us | clear_buddies();
|
|
7338520.855269 | 0) 0.696 us | }
|
|
7338520.855269 | 0) | put_prev_entity() {
|
|
7338520.855269 | 0) 0.084 us | check_cfs_rq_runtime();
|
|
7338520.855270 | 0) 0.628 us | }
|
|
7338520.855270 | 0) | put_prev_entity() {
|
|
7338520.855270 | 0) 0.074 us | check_cfs_rq_runtime();
|
|
7338520.855271 | 0) 0.575 us | }
|
|
7338520.855271 | 0) | set_next_entity() {
|
|
7338520.855272 | 0) 0.104 us | update_stats_wait_end();
|
|
7338520.855273 | 0) 0.834 us | }
|
|
7338520.855273 | 0) 5.872 us | }
|
|
7338520.855274 | 0) 0.079 us | paravirt_start_context_switch();
|
|
7338520.855275 | 0) 0.080 us | xen_read_cr0();
|
|
7338520.855276 | 0) | xen_write_cr0() {
|
|
7338520.855276 | 0) 0.091 us | paravirt_get_lazy_mode();
|
|
7338520.855277 | 0) 0.087 us | __xen_mc_entry();
|
|
7338520.855277 | 0) 0.076 us | paravirt_get_lazy_mode();
|
|
7338520.855278 | 0) 1.986 us | }
|
|
7338520.855278 | 0) | xen_load_sp0() {
|
|
7338520.855278 | 0) 0.066 us | paravirt_get_lazy_mode();
|
|
7338520.855279 | 0) 0.083 us | __xen_mc_entry();
|
|
7338520.855280 | 0) 0.082 us | paravirt_get_lazy_mode();
|
|
7338520.855280 | 0) 1.925 us | }
|
|
7338520.855281 | 0) | xen_load_tls() {
|
|
7338520.855281 | 0) 0.082 us | paravirt_get_lazy_mode();
|
|
7338520.855281 | 0) 0.080 us | paravirt_get_lazy_mode();
|
|
7338520.855282 | 0) 0.137 us | load_TLS_descriptor();
|
|
7338520.855283 | 0) 0.090 us | load_TLS_descriptor();
|
|
7338520.855283 | 0) 0.081 us | load_TLS_descriptor();
|
|
7338520.855284 | 0) 0.081 us | paravirt_get_lazy_mode();
|
|
7338520.855284 | 0) 3.397 us | }
|
|
7338520.855284 | 0) | xen_end_context_switch() {
|
|
7338520.855285 | 0) 0.618 us | xen_mc_flush();
|
|
7338520.855286 | 0) 0.086 us | paravirt_end_context_switch();
|
|
7338520.855286 | 0) 1.708 us | }
|
|
^C
|
|
Ending tracing...
|
|
|
|
Understanding whether the time is on-CPU or blocked off-CPU directs the
|
|
performance investigation.
|
|
|
|
|
|
Use -h to print the USAGE message:
|
|
|
|
# ./funcgraph -h
|
|
USAGE: funcgraph [-aCDhHPtT] [-m maxdepth] [-p PID] [-L TID] [-d secs] funcstring
|
|
-a # all info (same as -HPt)
|
|
-C # measure on-CPU time only
|
|
-d seconds # trace duration, and use buffers
|
|
-D # do not show function duration
|
|
-h # this usage message
|
|
-H # include column headers
|
|
-m maxdepth # max stack depth to show
|
|
-p PID # trace when this pid is on-CPU
|
|
-L TID # trace when this thread is on-CPU
|
|
-P # show process names & PIDs
|
|
-t # show timestamps
|
|
-T # comment function tails
|
|
eg,
|
|
funcgraph do_nanosleep # trace do_nanosleep() and children
|
|
funcgraph -m 3 do_sys_open # trace do_sys_open() to 3 levels only
|
|
funcgraph -a do_sys_open # include timestamps and process name
|
|
funcgraph -p 198 do_sys_open # trace vfs_read() for PID 198 only
|
|
funcgraph -d 1 do_sys_open >out # trace 1 sec, then write to file
|
|
|
|
See the man page and example file for more info.
|