- Jump To … +
  butterfly_example.ts flamechart_sunburst_example.ts legend_example.ts pie_example.ts plot_area_example.ts plot_zoom_example.ts sankey_example.ts scatterplot_example.ts stack_example.ts swimlanes_example.ts sync_example.ts table_searchable_example.ts table_selectable_example.ts table_sortable_example.ts timeline_example.ts worldbank_example.ts

- ¶

  # C3 Sunburst and Flamechart

  Demonstrate an example flamechart and sunburst visualization of a call trace and call tree.

- ¶

  The flamechart is used to visualize a call trace of functions executed over time. The snburst is used to visualize a hierarchical call tree of the aggregate function times.

- ¶

  ## Sample call trace data

- ¶

  Interface for how the Call Trace and Call Tree records are structured. The Call Tree is provided as either a tree with each node specifying its children or as a list of nodes that specify their parent. Either approach can be used, this example tests both.

      interface CallTraceRecord {
          name: string;
          x: number;
          dx: number;
      }
      interface CallTreeRecord {
          id: number;
          name: string;
          time: number;
          children?: CallTreeRecord[];
          parent_id?: number;
      }

- ¶

  Sample call trace and call tree data stored inline this example for simplicity. Both alternatives of the call tree are here, either storing a root with children or a list of leaves and their parents.

      var calltrace: CallTraceRecord[] = [{ "name": "schedule", "x": 206791, "dx": 57384 }, { "name": "__schedule", "x": 206855, "dx": 57308 }, { "name": "rcu_note_context_switch", "x": 206965, "dx": 94 }, { "name": "_raw_spin_lock_irq", "x": 207129, "dx": 64 }, { "name": "deactivate_task", "x": 207278, "dx": 4414 }, { "name": "dequeue_task", "x": 207328, "dx": 4354 }, { "name": "update_rq_clock.part.63", "x": 207387, "dx": 353 }, { "name": "sched_clock_cpu", "x": 207422, "dx": 283 }, { "name": "sched_clock", "x": 207497, "dx": 183 }, { "name": "native_sched_clock", "x": 207511, "dx": 155 }, { "name": "native_read_tsc", "x": 207541, "dx": 45 }, { "name": "dequeue_task_fair", "x": 207825, "dx": 3837 }, { "name": "dequeue_entity", "x": 207929, "dx": 2356 }, { "name": "update_curr", "x": 207999, "dx": 447 }, { "name": "update_min_vruntime", "x": 208168, "dx": 89 }, { "name": "cpuacct_charge", "x": 208302, "dx": 79 }, { "name": "update_cfs_rq_blocked_load", "x": 208640, "dx": 84 }, { "name": "clear_buddies", "x": 208859, "dx": 59 }, { "name": "account_entity_dequeue", "x": 208948, "dx": 169 }, { "name": "update_min_vruntime", "x": 209142, "dx": 94 }, { "name": "update_cfs_shares", "x": 209246, "dx": 999 }, { "name": "update_curr", "x": 209430, "dx": 562 }, { "name": "__calc_delta", "x": 209594, "dx": 229 }, { "name": "update_min_vruntime", "x": 209848, "dx": 89 }, { "name": "account_entity_dequeue", "x": 210012, "dx": 84 }, { "name": "account_entity_enqueue", "x": 210136, "dx": 85 }, { "name": "dequeue_entity", "x": 210350, "dx": 994 }, { "name": "update_curr", "x": 210419, "dx": 135 }, { "name": "update_cfs_rq_blocked_load", "x": 210743, "dx": 84 }, { "name": "clear_buddies", "x": 210912, "dx": 59 }, { "name": "account_entity_dequeue", "x": 211001, "dx": 85 }, { "name": "update_min_vruntime", "x": 211110, "dx": 95 }, { "name": "update_cfs_shares", "x": 211215, "dx": 89 }, { "name": "hrtick_update", "x": 211603, "dx": 19 }, { "name": "idle_balance", "x": 211777, "dx": 14838 }, { "name": "_raw_spin_unlock", "x": 211876, "dx": 35 }, { "name": "update_blocked_averages", "x": 211926, "dx": 2540 }, { "name": "_raw_spin_lock_irqsave", "x": 211995, "dx": 90 }, { "name": "update_rq_clock", "x": 212100, "dx": 397 }, { "name": "update_rq_clock.part.63", "x": 212134, "dx": 353 }, { "name": "sched_clock_cpu", "x": 212169, "dx": 284 }, { "name": "sched_clock", "x": 212244, "dx": 184 }, { "name": "native_sched_clock", "x": 212259, "dx": 154 }, { "name": "native_read_tsc", "x": 212289, "dx": 44 }, { "name": "update_cfs_rq_blocked_load", "x": 212587, "dx": 164 }, { "name": "update_cfs_rq_blocked_load", "x": 213019, "dx": 214 }, { "name": "update_cfs_rq_blocked_load", "x": 213929, "dx": 164 }, { "name": "_raw_spin_unlock_irqrestore", "x": 214342, "dx": 84 }, { "name": "sched_clock_cpu", "x": 214570, "dx": 284 }, { "name": "sched_clock", "x": 214645, "dx": 184 }, { "name": "native_sched_clock", "x": 214660, "dx": 154 }, { "name": "native_read_tsc", "x": 214690, "dx": 44 }, { "name": "load_balance", "x": 214893, "dx": 4156 }, { "name": "find_busiest_group", "x": 215221, "dx": 3674 }, { "name": "update_group_power", "x": 215505, "dx": 571 }, { "name": "msecs_to_jiffies", "x": 215574, "dx": 55 }, { "name": "sched_cfs_period_timer", "x": 215738, "dx": 45 }, { "name": "sched_cfs_period_timer", "x": 215833, "dx": 30 }, { "name": "cpumask_next_and", "x": 216131, "dx": 249 }, { "name": "find_next_bit", "x": 216191, "dx": 124 }, { "name": "target_load", "x": 216449, "dx": 55 }, { "name": "idle_cpu", "x": 216569, "dx": 59 }, { "name": "cpumask_next_and", "x": 216658, "dx": 378 }, { "name": "find_next_bit", "x": 216718, "dx": 278 }, { "name": "cpumask_next_and", "x": 217473, "dx": 249 }, { "name": "find_next_bit", "x": 217533, "dx": 124 }, { "name": "source_load", "x": 217791, "dx": 55 }, { "name": "idle_cpu", "x": 217916, "dx": 94 }, { "name": "cpumask_next_and", "x": 218050, "dx": 378 }, { "name": "find_next_bit", "x": 218110, "dx": 278 }, { "name": "sched_clock_cpu", "x": 219064, "dx": 283 }, { "name": "sched_clock", "x": 219138, "dx": 184 }, { "name": "native_sched_clock", "x": 219153, "dx": 155 }, { "name": "native_read_tsc", "x": 219183, "dx": 45 }, { "name": "msecs_to_jiffies", "x": 219382, "dx": 55 }, { "name": "sched_clock_cpu", "x": 219546, "dx": 283 }, { "name": "sched_clock", "x": 219621, "dx": 184 }, { "name": "native_sched_clock", "x": 219636, "dx": 154 }, { "name": "native_read_tsc", "x": 219665, "dx": 45 }, { "name": "load_balance", "x": 219869, "dx": 6169 }, { "name": "find_busiest_group", "x": 220197, "dx": 4405 }, { "name": "cpumask_next_and", "x": 220525, "dx": 249 }, { "name": "find_next_bit", "x": 220585, "dx": 124 }, { "name": "target_load", "x": 220844, "dx": 54 }, { "name": "idle_cpu", "x": 220963, "dx": 59 }, { "name": "cpumask_next_and", "x": 221052, "dx": 249 }, { "name": "find_next_bit", "x": 221112, "dx": 124 }, { "name": "target_load", "x": 221370, "dx": 55 }, { "name": "idle_cpu", "x": 221490, "dx": 94 }, { "name": "cpumask_next_and", "x": 221624, "dx": 378 }, { "name": "find_next_bit", "x": 221684, "dx": 278 }, { "name": "cpumask_next_and", "x": 222399, "dx": 249 }, { "name": "find_next_bit", "x": 222459, "dx": 124 }, { "name": "source_load", "x": 222718, "dx": 54 }, { "name": "idle_cpu", "x": 222842, "dx": 60 }, { "name": "cpumask_next_and", "x": 222931, "dx": 249 }, { "name": "find_next_bit", "x": 222991, "dx": 124 }, { "name": "source_load", "x": 223249, "dx": 55 }, { "name": "idle_cpu", "x": 223374, "dx": 59 }, { "name": "cpumask_next_and", "x": 223463, "dx": 378 }, { "name": "find_next_bit", "x": 223523, "dx": 278 }, { "name": "cpumask_next_and", "x": 224666, "dx": 249 }, { "name": "find_next_bit", "x": 224726, "dx": 124 }, { "name": "cpumask_next_and", "x": 225039, "dx": 249 }, { "name": "find_next_bit", "x": 225099, "dx": 124 }, { "name": "cpumask_next_and", "x": 225467, "dx": 377 }, { "name": "find_next_bit", "x": 225526, "dx": 279 }, { "name": "sched_clock_cpu", "x": 226053, "dx": 283 }, { "name": "sched_clock", "x": 226128, "dx": 184 }, { "name": "native_sched_clock", "x": 226143, "dx": 154 }, { "name": "native_read_tsc", "x": 226172, "dx": 45 }, { "name": "msecs_to_jiffies", "x": 226371, "dx": 55 }, { "name": "_raw_spin_lock", "x": 226481, "dx": 54 }, { "name": "put_prev_task_fair", "x": 226674, "dx": 314 }, { "name": "pick_next_task_fair", "x": 227012, "dx": 105 }, { "name": "pick_next_task_stop", "x": 227140, "dx": 55 }, { "name": "pick_next_task_rt", "x": 227227, "dx": 105 }, { "name": "pick_next_task_fair", "x": 227364, "dx": 105 }, { "name": "pick_next_task_idle", "x": 227501, "dx": 36 }, { "name": "probe_sched_switch", "x": 227660, "dx": 2768 }, { "name": "poor_mans_ptwrite_prev_pid", "x": 227729, "dx": 201 }, { "name": "ftrace_raw_event_switch_out", "x": 228076, "dx": 2279 }, { "name": "trace_event_buffer_lock_reserve", "x": 228213, "dx": 1310 }, { "name": "trace_buffer_lock_reserve", "x": 228268, "dx": 1246 }, { "name": "ring_buffer_lock_reserve", "x": 228323, "dx": 826 }, { "name": "rb_reserve_next_event", "x": 228473, "dx": 658 }, { "name": "trace_clock_local", "x": 228606, "dx": 191 }, { "name": "sched_clock", "x": 228619, "dx": 169 }, { "name": "native_sched_clock", "x": 228633, "dx": 142 }, { "name": "native_read_tsc", "x": 228660, "dx": 42 }, { "name": "ring_buffer_event_data", "x": 229172, "dx": 105 }, { "name": "rb_event_data", "x": 229186, "dx": 82 }, { "name": "tracing_generic_entry_update", "x": 229300, "dx": 173 }, { "name": "ring_buffer_event_data", "x": 229546, "dx": 105 }, { "name": "rb_event_data", "x": 229560, "dx": 82 }, { "name": "filter_check_discard", "x": 229706, "dx": 18 }, { "name": "trace_buffer_unlock_commit", "x": 229761, "dx": 552 }, { "name": "ring_buffer_unlock_commit", "x": 229807, "dx": 443 }, { "name": "rb_update_write_stamp", "x": 229871, "dx": 114 }, { "name": "ftrace_trace_userstack", "x": 230277, "dx": 14 }, { "name": "probe_sched_switch", "x": 230464, "dx": 553 }, { "name": "tracing_record_cmdline", "x": 230519, "dx": 301 }, { "name": "tracing_is_on", "x": 230555, "dx": 74 }, { "name": "ring_buffer_record_is_on", "x": 230583, "dx": 36 }, { "name": "tracing_record_cmdline", "x": 230829, "dx": 151 }, { "name": "tracing_is_on", "x": 230866, "dx": 73 }, { "name": "ring_buffer_record_is_on", "x": 230893, "dx": 37 }, { "name": "perf_event_task_sched_out", "x": 231135, "dx": 64 }, { "name": "__context_tracking_task_switch", "x": 231309, "dx": 41 }, { "name": "__switch_to", "x": 231391, "dx": 690 }, { "name": "native_load_sp0", "x": 231610, "dx": 28 }, { "name": "native_load_tls", "x": 231724, "dx": 60 }, { "name": "finish_task_switch", "x": 232145, "dx": 2091 }, { "name": "vtime_common_task_switch", "x": 232227, "dx": 1876 }, { "name": "vtime_account_system", "x": 232268, "dx": 1251 }, { "name": "_raw_spin_lock", "x": 232309, "dx": 50 }, { "name": "__vtime_account_system", "x": 232373, "dx": 1082 }, { "name": "get_vtime_delta", "x": 232400, "dx": 457 }, { "name": "local_clock", "x": 232437, "dx": 351 }, { "name": "sched_clock_cpu", "x": 232487, "dx": 260 }, { "name": "sched_clock", "x": 232555, "dx": 169 }, { "name": "native_sched_clock", "x": 232569, "dx": 142 }, { "name": "native_read_tsc", "x": 232597, "dx": 41 }, { "name": "account_system_time", "x": 232884, "dx": 557 }, { "name": "cpuacct_account_field", "x": 233044, "dx": 50 }, { "name": "acct_account_cputime", "x": 233103, "dx": 306 }, { "name": "__acct_update_integrals", "x": 233131, "dx": 269 }, { "name": "jiffies_to_timeval", "x": 233245, "dx": 91 }, { "name": "_raw_spin_unlock", "x": 233469, "dx": 32 }, { "name": "arch_vtime_task_switch", "x": 233528, "dx": 562 }, { "name": "_raw_spin_lock", "x": 233569, "dx": 50 }, { "name": "_raw_spin_unlock", "x": 233647, "dx": 32 }, { "name": "_raw_spin_lock", "x": 233688, "dx": 50 }, { "name": "sched_clock_cpu", "x": 233761, "dx": 260 }, { "name": "sched_clock", "x": 233829, "dx": 169 }, { "name": "native_sched_clock", "x": 233843, "dx": 142 }, { "name": "native_read_tsc", "x": 233871, "dx": 41 }, { "name": "_raw_spin_unlock", "x": 234040, "dx": 31 }, { "name": "_raw_spin_lock_irqsave", "x": 234282, "dx": 82 }, { "name": "post_schedule_idle", "x": 234400, "dx": 210 }, { "name": "idle_enter_fair", "x": 234419, "dx": 182 }, { "name": "_raw_spin_unlock_irqrestore", "x": 234624, "dx": 78 }, { "name": "tick_nohz_idle_enter", "x": 234788, "dx": 5977 }, { "name": "set_cpu_sd_state_idle", "x": 234829, "dx": 55 }, { "name": "__tick_nohz_idle_enter", "x": 234912, "dx": 5831 }, { "name": "ktime_get", "x": 234957, "dx": 251 }, { "name": "read_tsc", "x": 235035, "dx": 82 }, { "name": "native_read_tsc", "x": 235049, "dx": 41 }, { "name": "sched_clock_idle_sleep_event", "x": 235227, "dx": 287 }, { "name": "sched_clock_cpu", "x": 235245, "dx": 260 }, { "name": "sched_clock", "x": 235313, "dx": 169 }, { "name": "native_sched_clock", "x": 235327, "dx": 142 }, { "name": "native_read_tsc", "x": 235355, "dx": 41 }, { "name": "tick_nohz_stop_sched_tick", "x": 235629, "dx": 5020 }, { "name": "timekeeping_max_deferment", "x": 235734, "dx": 54 }, { "name": "rcu_needs_cpu", "x": 235816, "dx": 242 }, { "name": "rcu_cpu_has_callbacks", "x": 235875, "dx": 151 }, { "name": "irq_work_needs_cpu", "x": 236071, "dx": 32 }, { "name": "get_next_timer_interrupt", "x": 236122, "dx": 602 }, { "name": "_raw_spin_lock", "x": 236222, "dx": 50 }, { "name": "_raw_spin_unlock", "x": 236313, "dx": 32 }, { "name": "hrtimer_get_next_event", "x": 236359, "dx": 302 }, { "name": "_raw_spin_lock_irqsave", "x": 236419, "dx": 82 }, { "name": "_raw_spin_unlock_irqrestore", "x": 236537, "dx": 78 }, { "name": "nohz_balance_enter_idle", "x": 236907, "dx": 82 }, { "name": "calc_load_enter_idle", "x": 236994, "dx": 55 }, { "name": "hrtimer_start", "x": 237113, "dx": 3430 }, { "name": "__hrtimer_start_range_ns", "x": 237145, "dx": 3387 }, { "name": "lock_hrtimer_base.isra.19", "x": 237227, "dx": 182 }, { "name": "_raw_spin_lock_irqsave", "x": 237286, "dx": 82 }, { "name": "__remove_hrtimer", "x": 237496, "dx": 1365 }, { "name": "timerqueue_del", "x": 237578, "dx": 265 }, { "name": "rb_next", "x": 237633, "dx": 73 }, { "name": "rb_erase", "x": 237729, "dx": 91 }, { "name": "hrtimer_force_reprogram", "x": 237907, "dx": 904 }, { "name": "tick_program_event", "x": 238145, "dx": 657 }, { "name": "clockevents_program_event", "x": 238190, "dx": 603 }, { "name": "ktime_get", "x": 238268, "dx": 251 }, { "name": "read_tsc", "x": 238345, "dx": 83 }, { "name": "native_read_tsc", "x": 238359, "dx": 41 }, { "name": "lapic_next_deadline", "x": 238587, "dx": 174 }, { "name": "native_read_tsc", "x": 238615, "dx": 41 }, { "name": "native_write_msr_safe", "x": 238702, "dx": 36 }, { "name": "enqueue_hrtimer", "x": 239071, "dx": 434 }, { "name": "timerqueue_add", "x": 239126, "dx": 315 }, { "name": "rb_insert_color", "x": 239345, "dx": 46 }, { "name": "tick_program_event", "x": 239633, "dx": 705 }, { "name": "clockevents_program_event", "x": 239679, "dx": 648 }, { "name": "ktime_get", "x": 239756, "dx": 252 }, { "name": "read_tsc", "x": 239834, "dx": 82 }, { "name": "native_read_tsc", "x": 239848, "dx": 41 }, { "name": "lapic_next_deadline", "x": 240077, "dx": 211 }, { "name": "native_read_tsc", "x": 240110, "dx": 50 }, { "name": "native_write_msr_safe", "x": 240216, "dx": 44 }, { "name": "_raw_spin_unlock_irqrestore", "x": 240388, "dx": 94 }, { "name": "arch_cpu_idle_enter", "x": 240843, "dx": 178 }, { "name": "local_touch_nmi", "x": 240865, "dx": 34 }, { "name": "atomic_notifier_call_chain", "x": 240926, "dx": 84 }, { "name": "notifier_call_chain", "x": 240965, "dx": 33 }, { "name": "tick_check_broadcast_expired", "x": 241043, "dx": 50 }, { "name": "rcu_idle_enter", "x": 241143, "dx": 638 }, { "name": "rcu_eqs_enter", "x": 241209, "dx": 378 }, { "name": "rcu_eqs_enter_common.isra.47", "x": 241320, "dx": 245 }, { "name": "rcu_sysidle_enter", "x": 241609, "dx": 133 }, { "name": "arch_cpu_idle", "x": 241787, "dx": 9549 }, { "name": "cpuidle_idle_call", "x": 241809, "dx": 9503 }, { "name": "cpuidle_get_cpu_driver", "x": 241937, "dx": 61 }, { "name": "menu_select", "x": 242025, "dx": 8704 }, { "name": "pm_qos_request", "x": 242114, "dx": 50 }, { "name": "tick_nohz_get_sleep_length", "x": 242447, "dx": 45 }, { "name": "ns_to_timespec", "x": 242503, "dx": 138 }, { "name": "nr_iowait_cpu", "x": 242714, "dx": 50 }, { "name": "this_cpu_load", "x": 242863, "dx": 45 }, { "name": "nr_iowait_cpu", "x": 242925, "dx": 50 }, { "name": "int_sqrt", "x": 244118, "dx": 1354 }, { "name": "int_sqrt", "x": 246471, "dx": 1344 }, { "name": "int_sqrt", "x": 248769, "dx": 1355 }, { "name": "menu_reflect", "x": 250801, "dx": 61 }, { "name": "reschedule_interrupt", "x": 250873, "dx": 398 }, { "name": "smp_reschedule_interrupt", "x": 250988, "dx": 190 }, { "name": "native_apic_mem_write", "x": 251016, "dx": 24 }, { "name": "scheduler_ipi", "x": 251048, "dx": 122 }, { "name": "rcu_idle_exit", "x": 251364, "dx": 449 }, { "name": "rcu_eqs_exit", "x": 251413, "dx": 222 }, { "name": "rcu_eqs_exit_common.isra.48", "x": 251494, "dx": 121 }, { "name": "rcu_sysidle_exit", "x": 251651, "dx": 134 }, { "name": "rcu_sysidle_force_exit", "x": 251736, "dx": 37 }, { "name": "arch_cpu_idle_exit", "x": 251825, "dx": 114 }, { "name": "atomic_notifier_call_chain", "x": 251870, "dx": 61 }, { "name": "notifier_call_chain", "x": 251898, "dx": 25 }, { "name": "tick_nohz_idle_exit", "x": 251975, "dx": 4420 }, { "name": "ktime_get", "x": 252056, "dx": 223 }, { "name": "read_tsc", "x": 252125, "dx": 73 }, { "name": "native_read_tsc", "x": 252137, "dx": 37 }, { "name": "tick_nohz_stop_idle", "x": 252307, "dx": 300 }, { "name": "update_ts_time_stats", "x": 252352, "dx": 153 }, { "name": "nr_iowait_cpu", "x": 252412, "dx": 37 }, { "name": "sched_clock_idle_wakeup_event", "x": 252518, "dx": 76 }, { "name": "sched_clock_tick", "x": 252542, "dx": 16 }, { "name": "touch_softlockup_watchdog", "x": 252562, "dx": 24 }, { "name": "tick_do_update_jiffies64", "x": 252627, "dx": 48 }, { "name": "update_cpu_load_nohz", "x": 252679, "dx": 57 }, { "name": "calc_load_exit_idle", "x": 252740, "dx": 41 }, { "name": "touch_softlockup_watchdog", "x": 252789, "dx": 24 }, { "name": "tick_nohz_restart", "x": 252833, "dx": 3517 }, { "name": "hrtimer_cancel", "x": 252866, "dx": 1663 }, { "name": "hrtimer_try_to_cancel", "x": 252898, "dx": 1611 }, { "name": "lock_hrtimer_base.isra.19", "x": 252942, "dx": 162 }, { "name": "_raw_spin_lock_irqsave", "x": 252995, "dx": 73 }, { "name": "__remove_hrtimer", "x": 253181, "dx": 1210 }, { "name": "timerqueue_del", "x": 253254, "dx": 235 }, { "name": "rb_next", "x": 253303, "dx": 64 }, { "name": "rb_erase", "x": 253388, "dx": 81 }, { "name": "hrtimer_force_reprogram", "x": 253545, "dx": 802 }, { "name": "tick_program_event", "x": 253756, "dx": 583 }, { "name": "clockevents_program_event", "x": 253796, "dx": 535 }, { "name": "ktime_get", "x": 253865, "dx": 223 }, { "name": "read_tsc", "x": 253934, "dx": 73 }, { "name": "native_read_tsc", "x": 253946, "dx": 37 }, { "name": "lapic_next_deadline", "x": 254149, "dx": 153 }, { "name": "native_read_tsc", "x": 254173, "dx": 36 }, { "name": "native_write_msr_safe", "x": 254250, "dx": 32 }, { "name": "_raw_spin_unlock_irqrestore", "x": 254412, "dx": 68 }, { "name": "hrtimer_forward", "x": 254561, "dx": 41 }, { "name": "hrtimer_start_range_ns", "x": 254634, "dx": 1692 }, { "name": "__hrtimer_start_range_ns", "x": 254654, "dx": 1664 }, { "name": "lock_hrtimer_base.isra.19", "x": 254727, "dx": 162 }, { "name": "_raw_spin_lock_irqsave", "x": 254780, "dx": 73 }, { "name": "enqueue_hrtimer", "x": 255096, "dx": 384 }, { "name": "timerqueue_add", "x": 255144, "dx": 279 }, { "name": "rb_insert_color", "x": 255338, "dx": 41 }, { "name": "tick_program_event", "x": 255593, "dx": 583 }, { "name": "clockevents_program_event", "x": 255634, "dx": 534 }, { "name": "ktime_get", "x": 255703, "dx": 222 }, { "name": "read_tsc", "x": 255771, "dx": 73 }, { "name": "native_read_tsc", "x": 255784, "dx": 36 }, { "name": "lapic_next_deadline", "x": 255986, "dx": 154 }, { "name": "native_read_tsc", "x": 256010, "dx": 37 }, { "name": "native_write_msr_safe", "x": 256087, "dx": 32 }, { "name": "_raw_spin_unlock_irqrestore", "x": 256213, "dx": 68 }, { "name": "schedule_preempt_disabled", "x": 256399, "dx": 7764 }, { "name": "__schedule", "x": 256431, "dx": 7732 }, { "name": "rcu_note_context_switch", "x": 256520, "dx": 77 }, { "name": "_raw_spin_lock_irq", "x": 256654, "dx": 52 }, { "name": "pre_schedule_idle", "x": 256755, "dx": 198 }, { "name": "idle_exit_fair", "x": 256779, "dx": 154 }, { "name": "put_prev_task_idle", "x": 257010, "dx": 20 }, { "name": "pick_next_task_fair", "x": 257050, "dx": 1255 }, { "name": "clear_buddies", "x": 257184, "dx": 48 }, { "name": "set_next_entity", "x": 257245, "dx": 424 }, { "name": "update_stats_wait_end", "x": 257293, "dx": 126 }, { "name": "rb_next", "x": 257439, "dx": 56 }, { "name": "rb_erase", "x": 257516, "dx": 85 }, { "name": "clear_buddies", "x": 257750, "dx": 49 }, { "name": "set_next_entity", "x": 257811, "dx": 441 }, { "name": "update_stats_wait_end", "x": 257860, "dx": 141 }, { "name": "rb_next", "x": 258022, "dx": 56 }, { "name": "rb_erase", "x": 258098, "dx": 85 }, { "name": "probe_sched_switch", "x": 258414, "dx": 2449 }, { "name": "poor_mans_ptwrite_pid", "x": 258487, "dx": 178 }, { "name": "ftrace_raw_event_switch_in", "x": 258795, "dx": 2019 }, { "name": "trace_event_buffer_lock_reserve", "x": 258916, "dx": 1162 }, { "name": "trace_buffer_lock_reserve", "x": 258965, "dx": 1104 }, { "name": "ring_buffer_lock_reserve", "x": 259013, "dx": 733 }, { "name": "rb_reserve_next_event", "x": 259147, "dx": 582 }, { "name": "trace_clock_local", "x": 259264, "dx": 170 }, { "name": "sched_clock", "x": 259276, "dx": 150 }, { "name": "native_sched_clock", "x": 259288, "dx": 126 }, { "name": "native_read_tsc", "x": 259313, "dx": 36 }, { "name": "ring_buffer_event_data", "x": 259766, "dx": 93 }, { "name": "rb_event_data", "x": 259778, "dx": 73 }, { "name": "tracing_generic_entry_update", "x": 259879, "dx": 154 }, { "name": "ring_buffer_event_data", "x": 260098, "dx": 93 }, { "name": "rb_event_data", "x": 260110, "dx": 73 }, { "name": "filter_check_discard", "x": 260239, "dx": 17 }, { "name": "trace_buffer_unlock_commit", "x": 260288, "dx": 490 }, { "name": "ring_buffer_unlock_commit", "x": 260328, "dx": 393 }, { "name": "rb_update_write_stamp", "x": 260385, "dx": 101 }, { "name": "ftrace_trace_userstack", "x": 260745, "dx": 12 }, { "name": "probe_sched_switch", "x": 260895, "dx": 372 }, { "name": "tracing_record_cmdline", "x": 260944, "dx": 149 }, { "name": "tracing_is_on", "x": 260976, "dx": 65 }, { "name": "ring_buffer_record_is_on", "x": 261000, "dx": 33 }, { "name": "tracing_record_cmdline", "x": 261101, "dx": 134 }, { "name": "tracing_is_on", "x": 261134, "dx": 65 }, { "name": "ring_buffer_record_is_on", "x": 261158, "dx": 32 }, { "name": "perf_event_task_sched_out", "x": 261389, "dx": 56 }, { "name": "__context_tracking_task_switch", "x": 261579, "dx": 36 }, { "name": "__switch_to", "x": 261652, "dx": 655 }, { "name": "native_load_sp0", "x": 261854, "dx": 24 }, { "name": "native_load_tls", "x": 261955, "dx": 53 }, { "name": "native_write_msr_safe", "x": 262069, "dx": 32 }, { "name": "finish_task_switch", "x": 262364, "dx": 1677 }, { "name": "vtime_common_task_switch", "x": 262437, "dx": 1416 }, { "name": "vtime_account_idle", "x": 262473, "dx": 602 }, { "name": "get_vtime_delta", "x": 262490, "dx": 524 }, { "name": "local_clock", "x": 262522, "dx": 401 }, { "name": "sched_clock_cpu", "x": 262566, "dx": 302 }, { "name": "sched_clock", "x": 262627, "dx": 211 }, { "name": "native_sched_clock", "x": 262639, "dx": 181 }, { "name": "native_read_tsc", "x": 262668, "dx": 54 }, { "name": "arch_vtime_task_switch", "x": 263087, "dx": 747 }, { "name": "_raw_spin_lock", "x": 263142, "dx": 66 }, { "name": "_raw_spin_unlock", "x": 263245, "dx": 42 }, { "name": "_raw_spin_lock", "x": 263300, "dx": 66 }, { "name": "sched_clock_cpu", "x": 263397, "dx": 346 }, { "name": "sched_clock", "x": 263488, "dx": 225 }, { "name": "native_sched_clock", "x": 263506, "dx": 189 }, { "name": "native_read_tsc", "x": 263543, "dx": 54 }, { "name": "_raw_spin_unlock", "x": 263768, "dx": 42 }];
      var calltree_root: CallTreeRecord = { "id": 1285, "time": 15, "name": "schedule", "children": [{ "id": 1284, "time": 309, "name": "__schedule", "children": [{ "id": 1018, "time": 8, "name": "schedule_preempt_disabled", "children": [{ "id": 1017, "time": 208, "name": "__schedule", "children": [{ "id": 971, "time": 49, "name": "finish_task_switch", "children": [{ "id": 970, "time": 14, "name": "vtime_common_task_switch", "children": [{ "id": 962, "time": 30, "name": "arch_vtime_task_switch", "children": [{ "id": 954, "time": 7, "name": "_raw_spin_unlock", "children": [] }, { "id": 958, "time": 20, "name": "sched_clock_cpu", "children": [{ "id": 957, "time": 6, "name": "sched_clock", "children": [{ "id": 956, "time": 22, "name": "native_sched_clock", "children": [{ "id": 955, "time": 9, "name": "native_read_tsc", "children": [] }] }] }] }, { "id": 959, "time": 11, "name": "_raw_spin_lock", "children": [] }, { "id": 960, "time": 7, "name": "_raw_spin_unlock", "children": [] }, { "id": 961, "time": 11, "name": "_raw_spin_lock", "children": [] }] }, { "id": 969, "time": 14, "name": "vtime_account_idle", "children": [{ "id": 968, "time": 23, "name": "get_vtime_delta", "children": [{ "id": 967, "time": 20, "name": "local_clock", "children": [{ "id": 966, "time": 20, "name": "sched_clock_cpu", "children": [{ "id": 965, "time": 6, "name": "sched_clock", "children": [{ "id": 964, "time": 22, "name": "native_sched_clock", "children": [{ "id": 963, "time": 9, "name": "native_read_tsc", "children": [] }] }] }] }] }] }] }] }] }, { "id": 975, "time": 135, "name": "__switch_to", "children": [{ "id": 972, "time": 8, "name": "native_write_msr_safe", "children": [] }, { "id": 973, "time": 13, "name": "native_load_tls", "children": [] }, { "id": 974, "time": 6, "name": "native_load_sp0", "children": [] }] }, { "id": 976, "time": 9, "name": "__context_tracking_task_switch", "children": [] }, { "id": 977, "time": 14, "name": "perf_event_task_sched_out", "children": [] }, { "id": 984, "time": 22, "name": "probe_sched_switch", "children": [{ "id": 980, "time": 17, "name": "tracing_record_cmdline", "children": [{ "id": 979, "time": 8, "name": "tracing_is_on", "children": [{ "id": 978, "time": 8, "name": "ring_buffer_record_is_on", "children": [] }] }] }, { "id": 983, "time": 21, "name": "tracing_record_cmdline", "children": [{ "id": 982, "time": 8, "name": "tracing_is_on", "children": [{ "id": 981, "time": 8, "name": "ring_buffer_record_is_on", "children": [] }] }] }] }, { "id": 1005, "time": 62, "name": "probe_sched_switch", "children": [{ "id": 1003, "time": 64, "name": "ftrace_raw_event_switch_in", "children": [{ "id": 988, "time": 21, "name": "trace_buffer_unlock_commit", "children": [{ "id": 985, "time": 3, "name": "ftrace_trace_userstack", "children": [] }, { "id": 987, "time": 72, "name": "ring_buffer_unlock_commit", "children": [{ "id": 986, "time": 25, "name": "rb_update_write_stamp", "children": [] }] }] }, { "id": 989, "time": 4, "name": "filter_check_discard", "children": [] }, { "id": 991, "time": 5, "name": "ring_buffer_event_data", "children": [{ "id": 990, "time": 18, "name": "rb_event_data", "children": [] }] }, { "id": 1002, "time": 14, "name": "trace_event_buffer_lock_reserve", "children": [{ "id": 1001, "time": 31, "name": "trace_buffer_lock_reserve", "children": [{ "id": 992, "time": 38, "name": "tracing_generic_entry_update", "children": [] }, { "id": 994, "time": 5, "name": "ring_buffer_event_data", "children": [{ "id": 993, "time": 18, "name": "rb_event_data", "children": [] }] }, { "id": 1000, "time": 37, "name": "ring_buffer_lock_reserve", "children": [{ "id": 999, "time": 102, "name": "rb_reserve_next_event", "children": [{ "id": 998, "time": 5, "name": "trace_clock_local", "children": [{ "id": 997, "time": 6, "name": "sched_clock", "children": [{ "id": 996, "time": 22, "name": "native_sched_clock", "children": [{ "id": 995, "time": 9, "name": "native_read_tsc", "children": [] }] }] }] }] }] }] }] }] }, { "id": 1004, "time": 44, "name": "poor_mans_ptwrite_pid", "children": [] }] }, { "id": 1011, "time": 72, "name": "pick_next_task_fair", "children": [{ "id": 1009, "time": 78, "name": "set_next_entity", "children": [{ "id": 1006, "time": 42, "name": "rb_erase", "children": [] }, { "id": 1007, "time": 28, "name": "rb_next", "children": [] }, { "id": 1008, "time": 66, "name": "update_stats_wait_end", "children": [] }] }, { "id": 1010, "time": 24, "name": "clear_buddies", "children": [] }] }, { "id": 1012, "time": 5, "name": "put_prev_task_idle", "children": [] }, { "id": 1014, "time": 11, "name": "pre_schedule_idle", "children": [{ "id": 1013, "time": 38, "name": "idle_exit_fair", "children": [] }] }, { "id": 1015, "time": 13, "name": "_raw_spin_lock_irq", "children": [] }, { "id": 1016, "time": 19, "name": "rcu_note_context_switch", "children": [] }] }] }, { "id": 1068, "time": 52, "name": "tick_nohz_idle_exit", "children": [{ "id": 1054, "time": 30, "name": "tick_nohz_restart", "children": [{ "id": 1034, "time": 7, "name": "hrtimer_start_range_ns", "children": [{ "id": 1033, "time": 115, "name": "__hrtimer_start_range_ns", "children": [{ "id": 1019, "time": 17, "name": "_raw_spin_unlock_irqrestore", "children": [] }, { "id": 1027, "time": 12, "name": "tick_program_event", "children": [{ "id": 1026, "time": 39, "name": "clockevents_program_event", "children": [{ "id": 1022, "time": 21, "name": "lapic_next_deadline", "children": [{ "id": 1020, "time": 8, "name": "native_write_msr_safe", "children": [] }, { "id": 1021, "time": 9, "name": "native_read_tsc", "children": [] }] }, { "id": 1025, "time": 37, "name": "ktime_get", "children": [{ "id": 1024, "time": 9, "name": "read_tsc", "children": [{ "id": 1023, "time": 9, "name": "native_read_tsc", "children": [] }] }] }] }] }, { "id": 1030, "time": 26, "name": "enqueue_hrtimer", "children": [{ "id": 1029, "time": 59, "name": "timerqueue_add", "children": [{ "id": 1028, "time": 10, "name": "rb_insert_color", "children": [] }] }] }, { "id": 1032, "time": 22, "name": "lock_hrtimer_base.isra.19", "children": [{ "id": 1031, "time": 18, "name": "_raw_spin_lock_irqsave", "children": [] }] }] }] }, { "id": 1035, "time": 10, "name": "hrtimer_forward", "children": [] }, { "id": 1053, "time": 13, "name": "hrtimer_cancel", "children": [{ "id": 1052, "time": 42, "name": "hrtimer_try_to_cancel", "children": [{ "id": 1036, "time": 17, "name": "_raw_spin_unlock_irqrestore", "children": [] }, { "id": 1049, "time": 43, "name": "__remove_hrtimer", "children": [{ "id": 1045, "time": 54, "name": "hrtimer_force_reprogram", "children": [{ "id": 1044, "time": 12, "name": "tick_program_event", "children": [{ "id": 1043, "time": 39, "name": "clockevents_program_event", "children": [{ "id": 1039, "time": 21, "name": "lapic_next_deadline", "children": [{ "id": 1037, "time": 8, "name": "native_write_msr_safe", "children": [] }, { "id": 1038, "time": 9, "name": "native_read_tsc", "children": [] }] }, { "id": 1042, "time": 37, "name": "ktime_get", "children": [{ "id": 1041, "time": 9, "name": "read_tsc", "children": [{ "id": 1040, "time": 9, "name": "native_read_tsc", "children": [] }] }] }] }] }] }, { "id": 1048, "time": 22, "name": "timerqueue_del", "children": [{ "id": 1046, "time": 20, "name": "rb_erase", "children": [] }, { "id": 1047, "time": 16, "name": "rb_next", "children": [] }] }] }, { "id": 1051, "time": 22, "name": "lock_hrtimer_base.isra.19", "children": [{ "id": 1050, "time": 18, "name": "_raw_spin_lock_irqsave", "children": [] }] }] }] }] }, { "id": 1055, "time": 6, "name": "touch_softlockup_watchdog", "children": [] }, { "id": 1056, "time": 10, "name": "calc_load_exit_idle", "children": [] }, { "id": 1057, "time": 14, "name": "update_cpu_load_nohz", "children": [] }, { "id": 1058, "time": 12, "name": "tick_do_update_jiffies64", "children": [] }, { "id": 1064, "time": 17, "name": "tick_nohz_stop_idle", "children": [{ "id": 1061, "time": 9, "name": "sched_clock_idle_wakeup_event", "children": [{ "id": 1059, "time": 6, "name": "touch_softlockup_watchdog", "children": [] }, { "id": 1060, "time": 4, "name": "sched_clock_tick", "children": [] }] }, { "id": 1063, "time": 29, "name": "update_ts_time_stats", "children": [{ "id": 1062, "time": 9, "name": "nr_iowait_cpu", "children": [] }] }] }, { "id": 1067, "time": 37, "name": "ktime_get", "children": [{ "id": 1066, "time": 9, "name": "read_tsc", "children": [{ "id": 1065, "time": 9, "name": "native_read_tsc", "children": [] }] }] }] }, { "id": 1071, "time": 13, "name": "arch_cpu_idle_exit", "children": [{ "id": 1070, "time": 9, "name": "atomic_notifier_call_chain", "children": [{ "id": 1069, "time": 6, "name": "notifier_call_chain", "children": [] }] }] }, { "id": 1076, "time": 23, "name": "rcu_idle_exit", "children": [{ "id": 1073, "time": 24, "name": "rcu_sysidle_exit", "children": [{ "id": 1072, "time": 9, "name": "rcu_sysidle_force_exit", "children": [] }] }, { "id": 1075, "time": 25, "name": "rcu_eqs_exit", "children": [{ "id": 1074, "time": 30, "name": "rcu_eqs_exit_common.isra.48", "children": [] }] }] }, { "id": 1092, "time": 10, "name": "arch_cpu_idle", "children": [{ "id": 1091, "time": 53, "name": "cpuidle_idle_call", "children": [{ "id": 1080, "time": 45, "name": "reschedule_interrupt", "children": [{ "id": 1079, "time": 11, "name": "smp_reschedule_interrupt", "children": [{ "id": 1077, "time": 30, "name": "scheduler_ipi", "children": [] }, { "id": 1078, "time": 6, "name": "native_apic_mem_write", "children": [] }] }] }, { "id": 1081, "time": 11, "name": "menu_reflect", "children": [] }, { "id": 1089, "time": 770, "name": "menu_select", "children": [{ "id": 1082, "time": 730, "name": "int_sqrt", "children": [] }, { "id": 1083, "time": 9, "name": "nr_iowait_cpu", "children": [] }, { "id": 1084, "time": 8, "name": "this_cpu_load", "children": [] }, { "id": 1085, "time": 9, "name": "nr_iowait_cpu", "children": [] }, { "id": 1086, "time": 25, "name": "ns_to_timespec", "children": [] }, { "id": 1087, "time": 8, "name": "tick_nohz_get_sleep_length", "children": [] }, { "id": 1088, "time": 9, "name": "pm_qos_request", "children": [] }] }, { "id": 1090, "time": 11, "name": "cpuidle_get_cpu_driver", "children": [] }] }] }, { "id": 1096, "time": 23, "name": "rcu_idle_enter", "children": [{ "id": 1093, "time": 24, "name": "rcu_sysidle_enter", "children": [] }, { "id": 1095, "time": 24, "name": "rcu_eqs_enter", "children": [{ "id": 1094, "time": 44, "name": "rcu_eqs_enter_common.isra.47", "children": [] }] }] }, { "id": 1097, "time": 9, "name": "tick_check_broadcast_expired", "children": [] }, { "id": 1101, "time": 11, "name": "arch_cpu_idle_enter", "children": [{ "id": 1099, "time": 9, "name": "atomic_notifier_call_chain", "children": [{ "id": 1098, "time": 6, "name": "notifier_call_chain", "children": [] }] }, { "id": 1100, "time": 6, "name": "local_touch_nmi", "children": [] }] }, { "id": 1154, "time": 19, "name": "tick_nohz_idle_enter", "children": [{ "id": 1152, "time": 56, "name": "__tick_nohz_idle_enter", "children": [{ "id": 1143, "time": 110, "name": "tick_nohz_stop_sched_tick", "children": [{ "id": 1130, "time": 9, "name": "hrtimer_start", "children": [{ "id": 1129, "time": 129, "name": "__hrtimer_start_range_ns", "children": [{ "id": 1102, "time": 17, "name": "_raw_spin_unlock_irqrestore", "children": [] }, { "id": 1110, "time": 12, "name": "tick_program_event", "children": [{ "id": 1109, "time": 39, "name": "clockevents_program_event", "children": [{ "id": 1105, "time": 21, "name": "lapic_next_deadline", "children": [{ "id": 1103, "time": 8, "name": "native_write_msr_safe", "children": [] }, { "id": 1104, "time": 9, "name": "native_read_tsc", "children": [] }] }, { "id": 1108, "time": 37, "name": "ktime_get", "children": [{ "id": 1107, "time": 9, "name": "read_tsc", "children": [{ "id": 1106, "time": 9, "name": "native_read_tsc", "children": [] }] }] }] }] }, { "id": 1113, "time": 26, "name": "enqueue_hrtimer", "children": [{ "id": 1112, "time": 59, "name": "timerqueue_add", "children": [{ "id": 1111, "time": 10, "name": "rb_insert_color", "children": [] }] }] }, { "id": 1126, "time": 43, "name": "__remove_hrtimer", "children": [{ "id": 1122, "time": 54, "name": "hrtimer_force_reprogram", "children": [{ "id": 1121, "time": 12, "name": "tick_program_event", "children": [{ "id": 1120, "time": 39, "name": "clockevents_program_event", "children": [{ "id": 1116, "time": 21, "name": "lapic_next_deadline", "children": [{ "id": 1114, "time": 8, "name": "native_write_msr_safe", "children": [] }, { "id": 1115, "time": 9, "name": "native_read_tsc", "children": [] }] }, { "id": 1119, "time": 37, "name": "ktime_get", "children": [{ "id": 1118, "time": 9, "name": "read_tsc", "children": [{ "id": 1117, "time": 9, "name": "native_read_tsc", "children": [] }] }] }] }] }] }, { "id": 1125, "time": 22, "name": "timerqueue_del", "children": [{ "id": 1123, "time": 20, "name": "rb_erase", "children": [] }, { "id": 1124, "time": 16, "name": "rb_next", "children": [] }] }] }, { "id": 1128, "time": 22, "name": "lock_hrtimer_base.isra.19", "children": [{ "id": 1127, "time": 18, "name": "_raw_spin_lock_irqsave", "children": [] }] }] }] }, { "id": 1131, "time": 12, "name": "calc_load_enter_idle", "children": [] }, { "id": 1132, "time": 18, "name": "nohz_balance_enter_idle", "children": [] }, { "id": 1138, "time": 48, "name": "get_next_timer_interrupt", "children": [{ "id": 1135, "time": 31, "name": "hrtimer_get_next_event", "children": [{ "id": 1133, "time": 17, "name": "_raw_spin_unlock_irqrestore", "children": [] }, { "id": 1134, "time": 18, "name": "_raw_spin_lock_irqsave", "children": [] }] }, { "id": 1136, "time": 7, "name": "_raw_spin_unlock", "children": [] }, { "id": 1137, "time": 11, "name": "_raw_spin_lock", "children": [] }] }, { "id": 1139, "time": 7, "name": "irq_work_needs_cpu", "children": [] }, { "id": 1141, "time": 20, "name": "rcu_needs_cpu", "children": [{ "id": 1140, "time": 33, "name": "rcu_cpu_has_callbacks", "children": [] }] }, { "id": 1142, "time": 12, "name": "timekeeping_max_deferment", "children": [] }] }, { "id": 1148, "time": 6, "name": "sched_clock_idle_sleep_event", "children": [{ "id": 1147, "time": 20, "name": "sched_clock_cpu", "children": [{ "id": 1146, "time": 6, "name": "sched_clock", "children": [{ "id": 1145, "time": 22, "name": "native_sched_clock", "children": [{ "id": 1144, "time": 9, "name": "native_read_tsc", "children": [] }] }] }] }] }, { "id": 1151, "time": 37, "name": "ktime_get", "children": [{ "id": 1150, "time": 9, "name": "read_tsc", "children": [{ "id": 1149, "time": 9, "name": "native_read_tsc", "children": [] }] }] }] }, { "id": 1153, "time": 12, "name": "set_cpu_sd_state_idle", "children": [] }] }, { "id": 1155, "time": 17, "name": "_raw_spin_unlock_irqrestore", "children": [] }, { "id": 1157, "time": 6, "name": "post_schedule_idle", "children": [{ "id": 1156, "time": 40, "name": "idle_enter_fair", "children": [] }] }, { "id": 1158, "time": 18, "name": "_raw_spin_lock_irqsave", "children": [] }, { "id": 1184, "time": 47, "name": "finish_task_switch", "children": [{ "id": 1183, "time": 14, "name": "vtime_common_task_switch", "children": [{ "id": 1167, "time": 30, "name": "arch_vtime_task_switch", "children": [{ "id": 1159, "time": 7, "name": "_raw_spin_unlock", "children": [] }, { "id": 1163, "time": 20, "name": "sched_clock_cpu", "children": [{ "id": 1162, "time": 6, "name": "sched_clock", "children": [{ "id": 1161, "time": 22, "name": "native_sched_clock", "children": [{ "id": 1160, "time": 9, "name": "native_read_tsc", "children": [] }] }] }] }, { "id": 1164, "time": 11, "name": "_raw_spin_lock", "children": [] }, { "id": 1165, "time": 7, "name": "_raw_spin_unlock", "children": [] }, { "id": 1166, "time": 11, "name": "_raw_spin_lock", "children": [] }] }, { "id": 1182, "time": 19, "name": "vtime_account_system", "children": [{ "id": 1168, "time": 7, "name": "_raw_spin_unlock", "children": [] }, { "id": 1180, "time": 15, "name": "__vtime_account_system", "children": [{ "id": 1173, "time": 44, "name": "account_system_time", "children": [{ "id": 1171, "time": 8, "name": "acct_account_cputime", "children": [{ "id": 1170, "time": 39, "name": "__acct_update_integrals", "children": [{ "id": 1169, "time": 20, "name": "jiffies_to_timeval", "children": [] }] }] }, { "id": 1172, "time": 11, "name": "cpuacct_account_field", "children": [] }] }, { "id": 1179, "time": 23, "name": "get_vtime_delta", "children": [{ "id": 1178, "time": 20, "name": "local_clock", "children": [{ "id": 1177, "time": 20, "name": "sched_clock_cpu", "children": [{ "id": 1176, "time": 6, "name": "sched_clock", "children": [{ "id": 1175, "time": 22, "name": "native_sched_clock", "children": [{ "id": 1174, "time": 9, "name": "native_read_tsc", "children": [] }] }] }] }] }] }] }, { "id": 1181, "time": 11, "name": "_raw_spin_lock", "children": [] }] }] }] }, { "id": 1187, "time": 132, "name": "__switch_to", "children": [{ "id": 1185, "time": 13, "name": "native_load_tls", "children": [] }, { "id": 1186, "time": 6, "name": "native_load_sp0", "children": [] }] }, { "id": 1188, "time": 9, "name": "__context_tracking_task_switch", "children": [] }, { "id": 1189, "time": 14, "name": "perf_event_task_sched_out", "children": [] }, { "id": 1196, "time": 22, "name": "probe_sched_switch", "children": [{ "id": 1192, "time": 17, "name": "tracing_record_cmdline", "children": [{ "id": 1191, "time": 8, "name": "tracing_is_on", "children": [{ "id": 1190, "time": 8, "name": "ring_buffer_record_is_on", "children": [] }] }] }, { "id": 1195, "time": 50, "name": "tracing_record_cmdline", "children": [{ "id": 1194, "time": 8, "name": "tracing_is_on", "children": [{ "id": 1193, "time": 8, "name": "ring_buffer_record_is_on", "children": [] }] }] }] }, { "id": 1217, "time": 63, "name": "probe_sched_switch", "children": [{ "id": 1215, "time": 64, "name": "ftrace_raw_event_switch_out", "children": [{ "id": 1200, "time": 21, "name": "trace_buffer_unlock_commit", "children": [{ "id": 1197, "time": 3, "name": "ftrace_trace_userstack", "children": [] }, { "id": 1199, "time": 72, "name": "ring_buffer_unlock_commit", "children": [{ "id": 1198, "time": 25, "name": "rb_update_write_stamp", "children": [] }] }] }, { "id": 1201, "time": 4, "name": "filter_check_discard", "children": [] }, { "id": 1203, "time": 5, "name": "ring_buffer_event_data", "children": [{ "id": 1202, "time": 18, "name": "rb_event_data", "children": [] }] }, { "id": 1214, "time": 14, "name": "trace_event_buffer_lock_reserve", "children": [{ "id": 1213, "time": 31, "name": "trace_buffer_lock_reserve", "children": [{ "id": 1204, "time": 38, "name": "tracing_generic_entry_update", "children": [] }, { "id": 1206, "time": 5, "name": "ring_buffer_event_data", "children": [{ "id": 1205, "time": 18, "name": "rb_event_data", "children": [] }] }, { "id": 1212, "time": 37, "name": "ring_buffer_lock_reserve", "children": [{ "id": 1211, "time": 102, "name": "rb_reserve_next_event", "children": [{ "id": 1210, "time": 5, "name": "trace_clock_local", "children": [{ "id": 1209, "time": 6, "name": "sched_clock", "children": [{ "id": 1208, "time": 22, "name": "native_sched_clock", "children": [{ "id": 1207, "time": 9, "name": "native_read_tsc", "children": [] }] }] }] }] }] }] }] }] }, { "id": 1216, "time": 44, "name": "poor_mans_ptwrite_prev_pid", "children": [] }] }, { "id": 1218, "time": 8, "name": "pick_next_task_idle", "children": [] }, { "id": 1219, "time": 23, "name": "pick_next_task_fair", "children": [] }, { "id": 1220, "time": 23, "name": "pick_next_task_rt", "children": [] }, { "id": 1221, "time": 12, "name": "pick_next_task_stop", "children": [] }, { "id": 1222, "time": 23, "name": "pick_next_task_fair", "children": [] }, { "id": 1223, "time": 63, "name": "put_prev_task_fair", "children": [] }, { "id": 1258, "time": 129, "name": "idle_balance", "children": [{ "id": 1224, "time": 11, "name": "_raw_spin_lock", "children": [] }, { "id": 1227, "time": 22, "name": "msecs_to_jiffies", "children": [] }, { "id": 1231, "time": 40, "name": "sched_clock_cpu", "children": [{ "id": 1230, "time": 12, "name": "sched_clock", "children": [{ "id": 1229, "time": 44, "name": "native_sched_clock", "children": [{ "id": 1228, "time": 18, "name": "native_read_tsc", "children": [] }] }] }] }, { "id": 1242, "time": 276, "name": "load_balance", "children": [{ "id": 1226, "time": 70, "name": "cpumask_next_and", "children": [{ "id": 1225, "time": 106, "name": "find_next_bit", "children": [] }] }, { "id": 1241, "time": 754, "name": "find_busiest_group", "children": [{ "id": 1232, "time": 33, "name": "source_load", "children": [] }, { "id": 1233, "time": 86, "name": "idle_cpu", "children": [] }, { "id": 1234, "time": 33, "name": "target_load", "children": [] }, { "id": 1236, "time": 230, "name": "cpumask_next_and", "children": [{ "id": 1235, "time": 374, "name": "find_next_bit", "children": [] }] }, { "id": 1240, "time": 89, "name": "update_group_power", "children": [{ "id": 1237, "time": 6, "name": "sched_cfs_period_timer", "children": [] }, { "id": 1238, "time": 9, "name": "sched_cfs_period_timer", "children": [] }, { "id": 1239, "time": 11, "name": "msecs_to_jiffies", "children": [] }] }] }] }, { "id": 1246, "time": 40, "name": "sched_clock_cpu", "children": [{ "id": 1245, "time": 12, "name": "sched_clock", "children": [{ "id": 1244, "time": 44, "name": "native_sched_clock", "children": [{ "id": 1243, "time": 18, "name": "native_read_tsc", "children": [] }] }] }] }, { "id": 1256, "time": 287, "name": "update_blocked_averages", "children": [{ "id": 1247, "time": 17, "name": "_raw_spin_unlock_irqrestore", "children": [] }, { "id": 1248, "time": 109, "name": "update_cfs_rq_blocked_load", "children": [] }, { "id": 1254, "time": 9, "name": "update_rq_clock", "children": [{ "id": 1253, "time": 14, "name": "update_rq_clock.part.63", "children": [{ "id": 1252, "time": 20, "name": "sched_clock_cpu", "children": [{ "id": 1251, "time": 6, "name": "sched_clock", "children": [{ "id": 1250, "time": 22, "name": "native_sched_clock", "children": [{ "id": 1249, "time": 9, "name": "native_read_tsc", "children": [] }] }] }] }] }] }, { "id": 1255, "time": 18, "name": "_raw_spin_lock_irqsave", "children": [] }] }, { "id": 1257, "time": 7, "name": "_raw_spin_unlock", "children": [] }] }, { "id": 1281, "time": 12, "name": "deactivate_task", "children": [{ "id": 1280, "time": 33, "name": "dequeue_task", "children": [{ "id": 1274, "time": 94, "name": "dequeue_task_fair", "children": [{ "id": 1259, "time": 4, "name": "hrtick_update", "children": [] }, { "id": 1273, "time": 191, "name": "dequeue_entity", "children": [{ "id": 1265, "time": 72, "name": "update_cfs_shares", "children": [{ "id": 1260, "time": 17, "name": "account_entity_enqueue", "children": [] }, { "id": 1261, "time": 17, "name": "account_entity_dequeue", "children": [] }, { "id": 1264, "time": 49, "name": "update_curr", "children": [{ "id": 1262, "time": 18, "name": "update_min_vruntime", "children": [] }, { "id": 1263, "time": 46, "name": "__calc_delta", "children": [] }] }] }, { "id": 1266, "time": 38, "name": "update_min_vruntime", "children": [] }, { "id": 1267, "time": 51, "name": "account_entity_dequeue", "children": [] }, { "id": 1268, "time": 24, "name": "clear_buddies", "children": [] }, { "id": 1269, "time": 34, "name": "update_cfs_rq_blocked_load", "children": [] }, { "id": 1272, "time": 83, "name": "update_curr", "children": [{ "id": 1270, "time": 16, "name": "cpuacct_charge", "children": [] }, { "id": 1271, "time": 18, "name": "update_min_vruntime", "children": [] }] }] }] }, { "id": 1279, "time": 14, "name": "update_rq_clock.part.63", "children": [{ "id": 1278, "time": 20, "name": "sched_clock_cpu", "children": [{ "id": 1277, "time": 6, "name": "sched_clock", "children": [{ "id": 1276, "time": 22, "name": "native_sched_clock", "children": [{ "id": 1275, "time": 9, "name": "native_read_tsc", "children": [] }] }] }] }] }] }] }, { "id": 1282, "time": 13, "name": "_raw_spin_lock_irq", "children": [] }, { "id": 1283, "time": 19, "name": "rcu_note_context_switch", "children": [] }] }] };
      var calltree_leaves: CallTreeRecord[] = [{ "id": 954, "time": 7, "name": "_raw_spin_unlock", "parent_id": 962 }, { "id": 955, "time": 9, "name": "native_read_tsc", "parent_id": 956 }, { "id": 956, "time": 22, "name": "native_sched_clock", "parent_id": 957 }, { "id": 957, "time": 6, "name": "sched_clock", "parent_id": 958 }, { "id": 958, "time": 20, "name": "sched_clock_cpu", "parent_id": 962 }, { "id": 959, "time": 11, "name": "_raw_spin_lock", "parent_id": 962 }, { "id": 960, "time": 7, "name": "_raw_spin_unlock", "parent_id": 962 }, { "id": 961, "time": 11, "name": "_raw_spin_lock", "parent_id": 962 }, { "id": 962, "time": 30, "name": "arch_vtime_task_switch", "parent_id": 970 }, { "id": 963, "time": 9, "name": "native_read_tsc", "parent_id": 964 }, { "id": 964, "time": 22, "name": "native_sched_clock", "parent_id": 965 }, { "id": 965, "time": 6, "name": "sched_clock", "parent_id": 966 }, { "id": 966, "time": 20, "name": "sched_clock_cpu", "parent_id": 967 }, { "id": 967, "time": 20, "name": "local_clock", "parent_id": 968 }, { "id": 968, "time": 23, "name": "get_vtime_delta", "parent_id": 969 }, { "id": 969, "time": 14, "name": "vtime_account_idle", "parent_id": 970 }, { "id": 970, "time": 14, "name": "vtime_common_task_switch", "parent_id": 971 }, { "id": 971, "time": 49, "name": "finish_task_switch", "parent_id": 1017 }, { "id": 972, "time": 8, "name": "native_write_msr_safe", "parent_id": 975 }, { "id": 973, "time": 13, "name": "native_load_tls", "parent_id": 975 }, { "id": 974, "time": 6, "name": "native_load_sp0", "parent_id": 975 }, { "id": 975, "time": 135, "name": "__switch_to", "parent_id": 1017 }, { "id": 976, "time": 9, "name": "__context_tracking_task_switch", "parent_id": 1017 }, { "id": 977, "time": 14, "name": "perf_event_task_sched_out", "parent_id": 1017 }, { "id": 978, "time": 8, "name": "ring_buffer_record_is_on", "parent_id": 979 }, { "id": 979, "time": 8, "name": "tracing_is_on", "parent_id": 980 }, { "id": 980, "time": 17, "name": "tracing_record_cmdline", "parent_id": 984 }, { "id": 981, "time": 8, "name": "ring_buffer_record_is_on", "parent_id": 982 }, { "id": 982, "time": 8, "name": "tracing_is_on", "parent_id": 983 }, { "id": 983, "time": 21, "name": "tracing_record_cmdline", "parent_id": 984 }, { "id": 984, "time": 22, "name": "probe_sched_switch", "parent_id": 1017 }, { "id": 985, "time": 3, "name": "ftrace_trace_userstack", "parent_id": 988 }, { "id": 986, "time": 25, "name": "rb_update_write_stamp", "parent_id": 987 }, { "id": 987, "time": 72, "name": "ring_buffer_unlock_commit", "parent_id": 988 }, { "id": 988, "time": 21, "name": "trace_buffer_unlock_commit", "parent_id": 1003 }, { "id": 989, "time": 4, "name": "filter_check_discard", "parent_id": 1003 }, { "id": 990, "time": 18, "name": "rb_event_data", "parent_id": 991 }, { "id": 991, "time": 5, "name": "ring_buffer_event_data", "parent_id": 1003 }, { "id": 992, "time": 38, "name": "tracing_generic_entry_update", "parent_id": 1001 }, { "id": 993, "time": 18, "name": "rb_event_data", "parent_id": 994 }, { "id": 994, "time": 5, "name": "ring_buffer_event_data", "parent_id": 1001 }, { "id": 995, "time": 9, "name": "native_read_tsc", "parent_id": 996 }, { "id": 996, "time": 22, "name": "native_sched_clock", "parent_id": 997 }, { "id": 997, "time": 6, "name": "sched_clock", "parent_id": 998 }, { "id": 998, "time": 5, "name": "trace_clock_local", "parent_id": 999 }, { "id": 999, "time": 102, "name": "rb_reserve_next_event", "parent_id": 1000 }, { "id": 1000, "time": 37, "name": "ring_buffer_lock_reserve", "parent_id": 1001 }, { "id": 1001, "time": 31, "name": "trace_buffer_lock_reserve", "parent_id": 1002 }, { "id": 1002, "time": 14, "name": "trace_event_buffer_lock_reserve", "parent_id": 1003 }, { "id": 1003, "time": 64, "name": "ftrace_raw_event_switch_in", "parent_id": 1005 }, { "id": 1004, "time": 44, "name": "poor_mans_ptwrite_pid", "parent_id": 1005 }, { "id": 1005, "time": 62, "name": "probe_sched_switch", "parent_id": 1017 }, { "id": 1006, "time": 42, "name": "rb_erase", "parent_id": 1009 }, { "id": 1007, "time": 28, "name": "rb_next", "parent_id": 1009 }, { "id": 1008, "time": 66, "name": "update_stats_wait_end", "parent_id": 1009 }, { "id": 1009, "time": 78, "name": "set_next_entity", "parent_id": 1011 }, { "id": 1010, "time": 24, "name": "clear_buddies", "parent_id": 1011 }, { "id": 1011, "time": 72, "name": "pick_next_task_fair", "parent_id": 1017 }, { "id": 1012, "time": 5, "name": "put_prev_task_idle", "parent_id": 1017 }, { "id": 1013, "time": 38, "name": "idle_exit_fair", "parent_id": 1014 }, { "id": 1014, "time": 11, "name": "pre_schedule_idle", "parent_id": 1017 }, { "id": 1015, "time": 13, "name": "_raw_spin_lock_irq", "parent_id": 1017 }, { "id": 1016, "time": 19, "name": "rcu_note_context_switch", "parent_id": 1017 }, { "id": 1017, "time": 208, "name": "__schedule", "parent_id": 1018 }, { "id": 1018, "time": 8, "name": "schedule_preempt_disabled", "parent_id": 1284 }, { "id": 1019, "time": 17, "name": "_raw_spin_unlock_irqrestore", "parent_id": 1033 }, { "id": 1020, "time": 8, "name": "native_write_msr_safe", "parent_id": 1022 }, { "id": 1021, "time": 9, "name": "native_read_tsc", "parent_id": 1022 }, { "id": 1022, "time": 21, "name": "lapic_next_deadline", "parent_id": 1026 }, { "id": 1023, "time": 9, "name": "native_read_tsc", "parent_id": 1024 }, { "id": 1024, "time": 9, "name": "read_tsc", "parent_id": 1025 }, { "id": 1025, "time": 37, "name": "ktime_get", "parent_id": 1026 }, { "id": 1026, "time": 39, "name": "clockevents_program_event", "parent_id": 1027 }, { "id": 1027, "time": 12, "name": "tick_program_event", "parent_id": 1033 }, { "id": 1028, "time": 10, "name": "rb_insert_color", "parent_id": 1029 }, { "id": 1029, "time": 59, "name": "timerqueue_add", "parent_id": 1030 }, { "id": 1030, "time": 26, "name": "enqueue_hrtimer", "parent_id": 1033 }, { "id": 1031, "time": 18, "name": "_raw_spin_lock_irqsave", "parent_id": 1032 }, { "id": 1032, "time": 22, "name": "lock_hrtimer_base.isra.19", "parent_id": 1033 }, { "id": 1033, "time": 115, "name": "__hrtimer_start_range_ns", "parent_id": 1034 }, { "id": 1034, "time": 7, "name": "hrtimer_start_range_ns", "parent_id": 1054 }, { "id": 1035, "time": 10, "name": "hrtimer_forward", "parent_id": 1054 }, { "id": 1036, "time": 17, "name": "_raw_spin_unlock_irqrestore", "parent_id": 1052 }, { "id": 1037, "time": 8, "name": "native_write_msr_safe", "parent_id": 1039 }, { "id": 1038, "time": 9, "name": "native_read_tsc", "parent_id": 1039 }, { "id": 1039, "time": 21, "name": "lapic_next_deadline", "parent_id": 1043 }, { "id": 1040, "time": 9, "name": "native_read_tsc", "parent_id": 1041 }, { "id": 1041, "time": 9, "name": "read_tsc", "parent_id": 1042 }, { "id": 1042, "time": 37, "name": "ktime_get", "parent_id": 1043 }, { "id": 1043, "time": 39, "name": "clockevents_program_event", "parent_id": 1044 }, { "id": 1044, "time": 12, "name": "tick_program_event", "parent_id": 1045 }, { "id": 1045, "time": 54, "name": "hrtimer_force_reprogram", "parent_id": 1049 }, { "id": 1046, "time": 20, "name": "rb_erase", "parent_id": 1048 }, { "id": 1047, "time": 16, "name": "rb_next", "parent_id": 1048 }, { "id": 1048, "time": 22, "name": "timerqueue_del", "parent_id": 1049 }, { "id": 1049, "time": 43, "name": "__remove_hrtimer", "parent_id": 1052 }, { "id": 1050, "time": 18, "name": "_raw_spin_lock_irqsave", "parent_id": 1051 }, { "id": 1051, "time": 22, "name": "lock_hrtimer_base.isra.19", "parent_id": 1052 }, { "id": 1052, "time": 42, "name": "hrtimer_try_to_cancel", "parent_id": 1053 }, { "id": 1053, "time": 13, "name": "hrtimer_cancel", "parent_id": 1054 }, { "id": 1054, "time": 30, "name": "tick_nohz_restart", "parent_id": 1068 }, { "id": 1055, "time": 6, "name": "touch_softlockup_watchdog", "parent_id": 1068 }, { "id": 1056, "time": 10, "name": "calc_load_exit_idle", "parent_id": 1068 }, { "id": 1057, "time": 14, "name": "update_cpu_load_nohz", "parent_id": 1068 }, { "id": 1058, "time": 12, "name": "tick_do_update_jiffies64", "parent_id": 1068 }, { "id": 1059, "time": 6, "name": "touch_softlockup_watchdog", "parent_id": 1061 }, { "id": 1060, "time": 4, "name": "sched_clock_tick", "parent_id": 1061 }, { "id": 1061, "time": 9, "name": "sched_clock_idle_wakeup_event", "parent_id": 1064 }, { "id": 1062, "time": 9, "name": "nr_iowait_cpu", "parent_id": 1063 }, { "id": 1063, "time": 29, "name": "update_ts_time_stats", "parent_id": 1064 }, { "id": 1064, "time": 17, "name": "tick_nohz_stop_idle", "parent_id": 1068 }, { "id": 1065, "time": 9, "name": "native_read_tsc", "parent_id": 1066 }, { "id": 1066, "time": 9, "name": "read_tsc", "parent_id": 1067 }, { "id": 1067, "time": 37, "name": "ktime_get", "parent_id": 1068 }, { "id": 1068, "time": 52, "name": "tick_nohz_idle_exit", "parent_id": 1284 }, { "id": 1069, "time": 6, "name": "notifier_call_chain", "parent_id": 1070 }, { "id": 1070, "time": 9, "name": "atomic_notifier_call_chain", "parent_id": 1071 }, { "id": 1071, "time": 13, "name": "arch_cpu_idle_exit", "parent_id": 1284 }, { "id": 1072, "time": 9, "name": "rcu_sysidle_force_exit", "parent_id": 1073 }, { "id": 1073, "time": 24, "name": "rcu_sysidle_exit", "parent_id": 1076 }, { "id": 1074, "time": 30, "name": "rcu_eqs_exit_common.isra.48", "parent_id": 1075 }, { "id": 1075, "time": 25, "name": "rcu_eqs_exit", "parent_id": 1076 }, { "id": 1076, "time": 23, "name": "rcu_idle_exit", "parent_id": 1284 }, { "id": 1077, "time": 30, "name": "scheduler_ipi", "parent_id": 1079 }, { "id": 1078, "time": 6, "name": "native_apic_mem_write", "parent_id": 1079 }, { "id": 1079, "time": 11, "name": "smp_reschedule_interrupt", "parent_id": 1080 }, { "id": 1080, "time": 45, "name": "reschedule_interrupt", "parent_id": 1091 }, { "id": 1081, "time": 11, "name": "menu_reflect", "parent_id": 1091 }, { "id": 1082, "time": 730, "name": "int_sqrt", "parent_id": 1089 }, { "id": 1083, "time": 9, "name": "nr_iowait_cpu", "parent_id": 1089 }, { "id": 1084, "time": 8, "name": "this_cpu_load", "parent_id": 1089 }, { "id": 1085, "time": 9, "name": "nr_iowait_cpu", "parent_id": 1089 }, { "id": 1086, "time": 25, "name": "ns_to_timespec", "parent_id": 1089 }, { "id": 1087, "time": 8, "name": "tick_nohz_get_sleep_length", "parent_id": 1089 }, { "id": 1088, "time": 9, "name": "pm_qos_request", "parent_id": 1089 }, { "id": 1089, "time": 770, "name": "menu_select", "parent_id": 1091 }, { "id": 1090, "time": 11, "name": "cpuidle_get_cpu_driver", "parent_id": 1091 }, { "id": 1091, "time": 53, "name": "cpuidle_idle_call", "parent_id": 1092 }, { "id": 1092, "time": 10, "name": "arch_cpu_idle", "parent_id": 1284 }, { "id": 1093, "time": 24, "name": "rcu_sysidle_enter", "parent_id": 1096 }, { "id": 1094, "time": 44, "name": "rcu_eqs_enter_common.isra.47", "parent_id": 1095 }, { "id": 1095, "time": 24, "name": "rcu_eqs_enter", "parent_id": 1096 }, { "id": 1096, "time": 23, "name": "rcu_idle_enter", "parent_id": 1284 }, { "id": 1097, "time": 9, "name": "tick_check_broadcast_expired", "parent_id": 1284 }, { "id": 1098, "time": 6, "name": "notifier_call_chain", "parent_id": 1099 }, { "id": 1099, "time": 9, "name": "atomic_notifier_call_chain", "parent_id": 1101 }, { "id": 1100, "time": 6, "name": "local_touch_nmi", "parent_id": 1101 }, { "id": 1101, "time": 11, "name": "arch_cpu_idle_enter", "parent_id": 1284 }, { "id": 1102, "time": 17, "name": "_raw_spin_unlock_irqrestore", "parent_id": 1129 }, { "id": 1103, "time": 8, "name": "native_write_msr_safe", "parent_id": 1105 }, { "id": 1104, "time": 9, "name": "native_read_tsc", "parent_id": 1105 }, { "id": 1105, "time": 21, "name": "lapic_next_deadline", "parent_id": 1109 }, { "id": 1106, "time": 9, "name": "native_read_tsc", "parent_id": 1107 }, { "id": 1107, "time": 9, "name": "read_tsc", "parent_id": 1108 }, { "id": 1108, "time": 37, "name": "ktime_get", "parent_id": 1109 }, { "id": 1109, "time": 39, "name": "clockevents_program_event", "parent_id": 1110 }, { "id": 1110, "time": 12, "name": "tick_program_event", "parent_id": 1129 }, { "id": 1111, "time": 10, "name": "rb_insert_color", "parent_id": 1112 }, { "id": 1112, "time": 59, "name": "timerqueue_add", "parent_id": 1113 }, { "id": 1113, "time": 26, "name": "enqueue_hrtimer", "parent_id": 1129 }, { "id": 1114, "time": 8, "name": "native_write_msr_safe", "parent_id": 1116 }, { "id": 1115, "time": 9, "name": "native_read_tsc", "parent_id": 1116 }, { "id": 1116, "time": 21, "name": "lapic_next_deadline", "parent_id": 1120 }, { "id": 1117, "time": 9, "name": "native_read_tsc", "parent_id": 1118 }, { "id": 1118, "time": 9, "name": "read_tsc", "parent_id": 1119 }, { "id": 1119, "time": 37, "name": "ktime_get", "parent_id": 1120 }, { "id": 1120, "time": 39, "name": "clockevents_program_event", "parent_id": 1121 }, { "id": 1121, "time": 12, "name": "tick_program_event", "parent_id": 1122 }, { "id": 1122, "time": 54, "name": "hrtimer_force_reprogram", "parent_id": 1126 }, { "id": 1123, "time": 20, "name": "rb_erase", "parent_id": 1125 }, { "id": 1124, "time": 16, "name": "rb_next", "parent_id": 1125 }, { "id": 1125, "time": 22, "name": "timerqueue_del", "parent_id": 1126 }, { "id": 1126, "time": 43, "name": "__remove_hrtimer", "parent_id": 1129 }, { "id": 1127, "time": 18, "name": "_raw_spin_lock_irqsave", "parent_id": 1128 }, { "id": 1128, "time": 22, "name": "lock_hrtimer_base.isra.19", "parent_id": 1129 }, { "id": 1129, "time": 129, "name": "__hrtimer_start_range_ns", "parent_id": 1130 }, { "id": 1130, "time": 9, "name": "hrtimer_start", "parent_id": 1143 }, { "id": 1131, "time": 12, "name": "calc_load_enter_idle", "parent_id": 1143 }, { "id": 1132, "time": 18, "name": "nohz_balance_enter_idle", "parent_id": 1143 }, { "id": 1133, "time": 17, "name": "_raw_spin_unlock_irqrestore", "parent_id": 1135 }, { "id": 1134, "time": 18, "name": "_raw_spin_lock_irqsave", "parent_id": 1135 }, { "id": 1135, "time": 31, "name": "hrtimer_get_next_event", "parent_id": 1138 }, { "id": 1136, "time": 7, "name": "_raw_spin_unlock", "parent_id": 1138 }, { "id": 1137, "time": 11, "name": "_raw_spin_lock", "parent_id": 1138 }, { "id": 1138, "time": 48, "name": "get_next_timer_interrupt", "parent_id": 1143 }, { "id": 1139, "time": 7, "name": "irq_work_needs_cpu", "parent_id": 1143 }, { "id": 1140, "time": 33, "name": "rcu_cpu_has_callbacks", "parent_id": 1141 }, { "id": 1141, "time": 20, "name": "rcu_needs_cpu", "parent_id": 1143 }, { "id": 1142, "time": 12, "name": "timekeeping_max_deferment", "parent_id": 1143 }, { "id": 1143, "time": 110, "name": "tick_nohz_stop_sched_tick", "parent_id": 1152 }, { "id": 1144, "time": 9, "name": "native_read_tsc", "parent_id": 1145 }, { "id": 1145, "time": 22, "name": "native_sched_clock", "parent_id": 1146 }, { "id": 1146, "time": 6, "name": "sched_clock", "parent_id": 1147 }, { "id": 1147, "time": 20, "name": "sched_clock_cpu", "parent_id": 1148 }, { "id": 1148, "time": 6, "name": "sched_clock_idle_sleep_event", "parent_id": 1152 }, { "id": 1149, "time": 9, "name": "native_read_tsc", "parent_id": 1150 }, { "id": 1150, "time": 9, "name": "read_tsc", "parent_id": 1151 }, { "id": 1151, "time": 37, "name": "ktime_get", "parent_id": 1152 }, { "id": 1152, "time": 56, "name": "__tick_nohz_idle_enter", "parent_id": 1154 }, { "id": 1153, "time": 12, "name": "set_cpu_sd_state_idle", "parent_id": 1154 }, { "id": 1154, "time": 19, "name": "tick_nohz_idle_enter", "parent_id": 1284 }, { "id": 1155, "time": 17, "name": "_raw_spin_unlock_irqrestore", "parent_id": 1284 }, { "id": 1156, "time": 40, "name": "idle_enter_fair", "parent_id": 1157 }, { "id": 1157, "time": 6, "name": "post_schedule_idle", "parent_id": 1284 }, { "id": 1158, "time": 18, "name": "_raw_spin_lock_irqsave", "parent_id": 1284 }, { "id": 1159, "time": 7, "name": "_raw_spin_unlock", "parent_id": 1167 }, { "id": 1160, "time": 9, "name": "native_read_tsc", "parent_id": 1161 }, { "id": 1161, "time": 22, "name": "native_sched_clock", "parent_id": 1162 }, { "id": 1162, "time": 6, "name": "sched_clock", "parent_id": 1163 }, { "id": 1163, "time": 20, "name": "sched_clock_cpu", "parent_id": 1167 }, { "id": 1164, "time": 11, "name": "_raw_spin_lock", "parent_id": 1167 }, { "id": 1165, "time": 7, "name": "_raw_spin_unlock", "parent_id": 1167 }, { "id": 1166, "time": 11, "name": "_raw_spin_lock", "parent_id": 1167 }, { "id": 1167, "time": 30, "name": "arch_vtime_task_switch", "parent_id": 1183 }, { "id": 1168, "time": 7, "name": "_raw_spin_unlock", "parent_id": 1182 }, { "id": 1169, "time": 20, "name": "jiffies_to_timeval", "parent_id": 1170 }, { "id": 1170, "time": 39, "name": "__acct_update_integrals", "parent_id": 1171 }, { "id": 1171, "time": 8, "name": "acct_account_cputime", "parent_id": 1173 }, { "id": 1172, "time": 11, "name": "cpuacct_account_field", "parent_id": 1173 }, { "id": 1173, "time": 44, "name": "account_system_time", "parent_id": 1180 }, { "id": 1174, "time": 9, "name": "native_read_tsc", "parent_id": 1175 }, { "id": 1175, "time": 22, "name": "native_sched_clock", "parent_id": 1176 }, { "id": 1176, "time": 6, "name": "sched_clock", "parent_id": 1177 }, { "id": 1177, "time": 20, "name": "sched_clock_cpu", "parent_id": 1178 }, { "id": 1178, "time": 20, "name": "local_clock", "parent_id": 1179 }, { "id": 1179, "time": 23, "name": "get_vtime_delta", "parent_id": 1180 }, { "id": 1180, "time": 15, "name": "__vtime_account_system", "parent_id": 1182 }, { "id": 1181, "time": 11, "name": "_raw_spin_lock", "parent_id": 1182 }, { "id": 1182, "time": 19, "name": "vtime_account_system", "parent_id": 1183 }, { "id": 1183, "time": 14, "name": "vtime_common_task_switch", "parent_id": 1184 }, { "id": 1184, "time": 47, "name": "finish_task_switch", "parent_id": 1284 }, { "id": 1185, "time": 13, "name": "native_load_tls", "parent_id": 1187 }, { "id": 1186, "time": 6, "name": "native_load_sp0", "parent_id": 1187 }, { "id": 1187, "time": 132, "name": "__switch_to", "parent_id": 1284 }, { "id": 1188, "time": 9, "name": "__context_tracking_task_switch", "parent_id": 1284 }, { "id": 1189, "time": 14, "name": "perf_event_task_sched_out", "parent_id": 1284 }, { "id": 1190, "time": 8, "name": "ring_buffer_record_is_on", "parent_id": 1191 }, { "id": 1191, "time": 8, "name": "tracing_is_on", "parent_id": 1192 }, { "id": 1192, "time": 17, "name": "tracing_record_cmdline", "parent_id": 1196 }, { "id": 1193, "time": 8, "name": "ring_buffer_record_is_on", "parent_id": 1194 }, { "id": 1194, "time": 8, "name": "tracing_is_on", "parent_id": 1195 }, { "id": 1195, "time": 50, "name": "tracing_record_cmdline", "parent_id": 1196 }, { "id": 1196, "time": 22, "name": "probe_sched_switch", "parent_id": 1284 }, { "id": 1197, "time": 3, "name": "ftrace_trace_userstack", "parent_id": 1200 }, { "id": 1198, "time": 25, "name": "rb_update_write_stamp", "parent_id": 1199 }, { "id": 1199, "time": 72, "name": "ring_buffer_unlock_commit", "parent_id": 1200 }, { "id": 1200, "time": 21, "name": "trace_buffer_unlock_commit", "parent_id": 1215 }, { "id": 1201, "time": 4, "name": "filter_check_discard", "parent_id": 1215 }, { "id": 1202, "time": 18, "name": "rb_event_data", "parent_id": 1203 }, { "id": 1203, "time": 5, "name": "ring_buffer_event_data", "parent_id": 1215 }, { "id": 1204, "time": 38, "name": "tracing_generic_entry_update", "parent_id": 1213 }, { "id": 1205, "time": 18, "name": "rb_event_data", "parent_id": 1206 }, { "id": 1206, "time": 5, "name": "ring_buffer_event_data", "parent_id": 1213 }, { "id": 1207, "time": 9, "name": "native_read_tsc", "parent_id": 1208 }, { "id": 1208, "time": 22, "name": "native_sched_clock", "parent_id": 1209 }, { "id": 1209, "time": 6, "name": "sched_clock", "parent_id": 1210 }, { "id": 1210, "time": 5, "name": "trace_clock_local", "parent_id": 1211 }, { "id": 1211, "time": 102, "name": "rb_reserve_next_event", "parent_id": 1212 }, { "id": 1212, "time": 37, "name": "ring_buffer_lock_reserve", "parent_id": 1213 }, { "id": 1213, "time": 31, "name": "trace_buffer_lock_reserve", "parent_id": 1214 }, { "id": 1214, "time": 14, "name": "trace_event_buffer_lock_reserve", "parent_id": 1215 }, { "id": 1215, "time": 64, "name": "ftrace_raw_event_switch_out", "parent_id": 1217 }, { "id": 1216, "time": 44, "name": "poor_mans_ptwrite_prev_pid", "parent_id": 1217 }, { "id": 1217, "time": 63, "name": "probe_sched_switch", "parent_id": 1284 }, { "id": 1218, "time": 8, "name": "pick_next_task_idle", "parent_id": 1284 }, { "id": 1219, "time": 23, "name": "pick_next_task_fair", "parent_id": 1284 }, { "id": 1220, "time": 23, "name": "pick_next_task_rt", "parent_id": 1284 }, { "id": 1221, "time": 12, "name": "pick_next_task_stop", "parent_id": 1284 }, { "id": 1222, "time": 23, "name": "pick_next_task_fair", "parent_id": 1284 }, { "id": 1223, "time": 63, "name": "put_prev_task_fair", "parent_id": 1284 }, { "id": 1224, "time": 11, "name": "_raw_spin_lock", "parent_id": 1258 }, { "id": 1225, "time": 106, "name": "find_next_bit", "parent_id": 1226 }, { "id": 1226, "time": 70, "name": "cpumask_next_and", "parent_id": 1242 }, { "id": 1227, "time": 22, "name": "msecs_to_jiffies", "parent_id": 1258 }, { "id": 1228, "time": 18, "name": "native_read_tsc", "parent_id": 1229 }, { "id": 1229, "time": 44, "name": "native_sched_clock", "parent_id": 1230 }, { "id": 1230, "time": 12, "name": "sched_clock", "parent_id": 1231 }, { "id": 1231, "time": 40, "name": "sched_clock_cpu", "parent_id": 1258 }, { "id": 1232, "time": 33, "name": "source_load", "parent_id": 1241 }, { "id": 1233, "time": 86, "name": "idle_cpu", "parent_id": 1241 }, { "id": 1234, "time": 33, "name": "target_load", "parent_id": 1241 }, { "id": 1235, "time": 374, "name": "find_next_bit", "parent_id": 1236 }, { "id": 1236, "time": 230, "name": "cpumask_next_and", "parent_id": 1241 }, { "id": 1237, "time": 6, "name": "sched_cfs_period_timer", "parent_id": 1240 }, { "id": 1238, "time": 9, "name": "sched_cfs_period_timer", "parent_id": 1240 }, { "id": 1239, "time": 11, "name": "msecs_to_jiffies", "parent_id": 1240 }, { "id": 1240, "time": 89, "name": "update_group_power", "parent_id": 1241 }, { "id": 1241, "time": 754, "name": "find_busiest_group", "parent_id": 1242 }, { "id": 1242, "time": 276, "name": "load_balance", "parent_id": 1258 }, { "id": 1243, "time": 18, "name": "native_read_tsc", "parent_id": 1244 }, { "id": 1244, "time": 44, "name": "native_sched_clock", "parent_id": 1245 }, { "id": 1245, "time": 12, "name": "sched_clock", "parent_id": 1246 }, { "id": 1246, "time": 40, "name": "sched_clock_cpu", "parent_id": 1258 }, { "id": 1247, "time": 17, "name": "_raw_spin_unlock_irqrestore", "parent_id": 1256 }, { "id": 1248, "time": 109, "name": "update_cfs_rq_blocked_load", "parent_id": 1256 }, { "id": 1249, "time": 9, "name": "native_read_tsc", "parent_id": 1250 }, { "id": 1250, "time": 22, "name": "native_sched_clock", "parent_id": 1251 }, { "id": 1251, "time": 6, "name": "sched_clock", "parent_id": 1252 }, { "id": 1252, "time": 20, "name": "sched_clock_cpu", "parent_id": 1253 }, { "id": 1253, "time": 14, "name": "update_rq_clock.part.63", "parent_id": 1254 }, { "id": 1254, "time": 9, "name": "update_rq_clock", "parent_id": 1256 }, { "id": 1255, "time": 18, "name": "_raw_spin_lock_irqsave", "parent_id": 1256 }, { "id": 1256, "time": 287, "name": "update_blocked_averages", "parent_id": 1258 }, { "id": 1257, "time": 7, "name": "_raw_spin_unlock", "parent_id": 1258 }, { "id": 1258, "time": 129, "name": "idle_balance", "parent_id": 1284 }, { "id": 1259, "time": 4, "name": "hrtick_update", "parent_id": 1274 }, { "id": 1260, "time": 17, "name": "account_entity_enqueue", "parent_id": 1265 }, { "id": 1261, "time": 17, "name": "account_entity_dequeue", "parent_id": 1265 }, { "id": 1262, "time": 18, "name": "update_min_vruntime", "parent_id": 1264 }, { "id": 1263, "time": 46, "name": "__calc_delta", "parent_id": 1264 }, { "id": 1264, "time": 49, "name": "update_curr", "parent_id": 1265 }, { "id": 1265, "time": 72, "name": "update_cfs_shares", "parent_id": 1273 }, { "id": 1266, "time": 38, "name": "update_min_vruntime", "parent_id": 1273 }, { "id": 1267, "time": 51, "name": "account_entity_dequeue", "parent_id": 1273 }, { "id": 1268, "time": 24, "name": "clear_buddies", "parent_id": 1273 }, { "id": 1269, "time": 34, "name": "update_cfs_rq_blocked_load", "parent_id": 1273 }, { "id": 1270, "time": 16, "name": "cpuacct_charge", "parent_id": 1272 }, { "id": 1271, "time": 18, "name": "update_min_vruntime", "parent_id": 1272 }, { "id": 1272, "time": 83, "name": "update_curr", "parent_id": 1273 }, { "id": 1273, "time": 191, "name": "dequeue_entity", "parent_id": 1274 }, { "id": 1274, "time": 94, "name": "dequeue_task_fair", "parent_id": 1280 }, { "id": 1275, "time": 9, "name": "native_read_tsc", "parent_id": 1276 }, { "id": 1276, "time": 22, "name": "native_sched_clock", "parent_id": 1277 }, { "id": 1277, "time": 6, "name": "sched_clock", "parent_id": 1278 }, { "id": 1278, "time": 20, "name": "sched_clock_cpu", "parent_id": 1279 }, { "id": 1279, "time": 14, "name": "update_rq_clock.part.63", "parent_id": 1280 }, { "id": 1280, "time": 33, "name": "dequeue_task", "parent_id": 1281 }, { "id": 1281, "time": 12, "name": "deactivate_task", "parent_id": 1284 }, { "id": 1282, "time": 13, "name": "_raw_spin_lock_irq", "parent_id": 1284 }, { "id": 1283, "time": 19, "name": "rcu_note_context_switch", "parent_id": 1284 }, { "id": 1284, "time": 309, "name": "__schedule", "parent_id": 1285 }, { "id": 1285, "time": 15, "name": "schedule" }];
      var function_color = d3.scale.category20();

- ¶

  ## Call Trace Flamechart

- ¶

  Create `Plot` for Flamechart layer to visualize a call trace.

      var flamechart_calltrace = new c3.Plot.Zoomable<void>({
          anchor: '#flamechart_example',

- ¶

  Setup the horizontal scale to cover the entire time duration of the call trace

          h: d3.scale.linear().domain([
              d3.min(calltrace, (d) => d.x),
              d3.max(calltrace, (d) => d.x + d.dx)]),

- ¶

  Allow the timeline to be zoomable with mouse and touch events.

          zoomable: 'h',

- ¶

  Create a single Flamechart layer.

          layers: [
              new c3.Plot.Layer.Swimlane.Flamechart<CallTraceRecord>({
                  data: calltrace,

- ¶

  Describe the time and duration of each call.

                  key: (d) => d.x,
                  x: (d) => d.x,
                  dx: (d) => d.dx,
                  dy: 20, // The height of each swimlane row in pixels

- ¶

  HTML hover “tooltip” to display the function name.

                  hover: (d) => d ? d.name : '',

- ¶

  Style each segment with a color based on the function name.

                  rect_options: {
                      styles: {
                          'fill': (d) => function_color(d.name),
                          'stroke': 'black',
                          'stroke-opacity': 0.5,
                      },
                  },

- ¶

  Add a text label of the function name in segments that are large enough.

                  label_options: {
                      text: (d) => d.name,
                      styles: {
                          'font-size': 'small',
                          'font-weight': 'bold',
                      },
                  },
              }),
          ],
      }).render();

- ¶

  ## Call Tree Sunburst

- ¶

  Create a `Polar` chart for a hierarchical sunburst visualization of the call tree.

      var sunburst_layer: c3.Polar.Layer.Sunburst<CallTreeRecord>;
      var sunburst_calltree = new c3.Polar<void>({
          anchor: '#sunburst_example',

- ¶

  Setup the radial scale to go from -1 (the parent node) to 8 levels deeper then the current root node

          r: d3.scale.linear().domain([-1, 8]),

- ¶

  Allow user to zoom the sunburst with the mouse wheel or finger pinching.

          zoomable: true,
          zoom_extent: [0.5, 2],

- ¶

  Create a single Sunburst layer

          layers: [
              sunburst_layer = new c3.Polar.Layer.Sunburst<CallTreeRecord>({
                  data: calltree_leaves,

- ¶

  A key accessor is required for Sunburst layers

                  key: (d) => d.id,

- ¶

  This example data provides the time of each node as that node’s self time instead of its total time. You can define either `value` or `self_value`. If you define `self_value` then the layer will create a `value` accessor function for you that you can use to get the total value of a node after it has been drawn.

                  self_value: (d) => d.time,

- ¶

  The hierarchy can be described by the user either providing the children or the parent for each node. This example defaults to specifying the parent, but it can be toggled to test both.

                  parent_key: (d) => d.parent_id,

- ¶

  You can sort by providing an accessor function or by simply specifying `true` it will sort by the “total value” of the node (as oppose to the “self value”).

                  sort: true,

- ¶

  Style the arc segemnts with color and tooltips.

                  arc_options: {
                      title: (d) => d.name,
                      styles: {
                          'fill': (d) => function_color(d.name),
                          'stroke': 'black',
                          'stroke-opacity': 0.5,
                      },

- ¶

  Animate the sunburst segments if their value changes or the user navigates to a new root node.

                      animate: true,
                      duration: 2000,
                  },

- ¶

  A bullseye is created in the center of the sunburst when the user navigates to a nested node.

                  bullseye_options: {
                      animate: true,
                  },
              }),
          ],
      }).render();

- ¶

  ## Resize charts

- ¶

  Resize charts if the window is resized.

      window.onresize = function () {
          flamechart_calltrace.resize();
          sunburst_calltree.resize();
      }

- ¶

  ## Modify Chart Options

      for (let event_name of ['input', 'change']) { // 'input' event is not supported in IE

- ¶

  Decimate the number of elements drawn in the Call Trace

          $('#limit_call_trace_elements').on(event_name, function () {
              (<c3.Plot.Layer.Swimlane.Flamechart<any>>flamechart_calltrace.layers[0]).limit_elements = +$(this).val();
              flamechart_calltrace.redraw();
          });

- ¶

  Decimate the number of elements drawn in the Call Tree

          $('#limit_call_tree_elements').on(event_name, function () {
              sunburst_layer.arc_options.animate = false;
              sunburst_layer.limit_elements = +$(this).val();
              sunburst_calltree.redraw();
              sunburst_layer.arc_options.animate = true;
          });
          $('#limit_call_tree_angle').on(event_name, function () {
              sunburst_layer.arc_options.animate = false;
              sunburst_layer.limit_angle_percentage = +$(this).val();
              sunburst_calltree.redraw();
              sunburst_layer.arc_options.animate = true;
          });
      }

- ¶

  Test organizing the sample data by either providing the children or the parent of each node.

      $('input[name=hierarchy]').on('change', function () {
          if ($('input[name=hierarchy]:checked').val() === 'parents') {
              sunburst_layer.data = calltree_leaves;
              sunburst_layer.parent_key = (d) => d.parent_id;
              delete sunburst_layer.children;
              sunburst_layer.redraw();
          } else {
              sunburst_layer.data = [calltree_root];
              sunburst_layer.children = (d) => d.children;
              delete sunburst_layer.parent_key;
              sunburst_layer.redraw();
          }
      });