From c2ce97c959353b2ce846d9fb0bccad7ccb7f230b Mon Sep 17 00:00:00 2001 From: chuxuezhe11 Date: Wed, 22 Dec 2021 04:37:59 -0800 Subject: [PATCH] add bytrace tag Signed-off-by: chuxuezhe11 --- bin/config/bytrace.cfg | 289 ++++++++++----- bin/config/bytrace.rc | 343 ++++++++++++------ bin/example/bytrace_example.cpp | 90 +++-- bin/src/bytrace.cpp | 79 ++-- bin/src/bytrace_impl.cpp | 7 +- interfaces/innerkits/native/include/bytrace.h | 26 ++ interfaces/kits/js/@ohos.bytrace.d.ts | 6 +- interfaces/kits/js/napi/BUILD.gn | 58 ++- 8 files changed, 579 insertions(+), 319 deletions(-) diff --git a/bin/config/bytrace.cfg b/bin/config/bytrace.cfg index f31e3da..3a6675c 100755 --- a/bin/config/bytrace.cfg +++ b/bin/config/bytrace.cfg @@ -1,99 +1,190 @@ -{ - "jobs" : [{ - "name" : "post-init", - "cmds" : [ - "write /proc/sys/kernel/sched_schedstats 1", - "write /sys/kernel/debug/tracing/tracing_on 0", - "chmod 0666 /sys/kernel/debug/tracing/buffer_size_kb", - "chmod 0666 /sys/kernel/debug/tracing/saved_cmdlines_size", - "chmod 0666 /sys/kernel/debug/tracing/trace", - "chmod 0666 /sys/kernel/debug/tracing/trace_clock", - "chmod 0222 /sys/kernel/debug/tracing/trace_marker", - "chmod 0666 /sys/kernel/debug/tracing/tracing_on", - "chmod 0666 /sys/kernel/debug/tracing/events/binder/binder_lock/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/binder/binder_locked/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/binder/binder_unlock/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/binder/binder_transaction/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/binder/binder_transaction_received/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/binder/binder_transaction_alloc_buf/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/cgroup/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/cpufreq_interactive/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/dma_fence/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/fence/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/i2c/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/i2c/i2c_read/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/i2c/i2c_write/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/i2c/i2c_result/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/i2c/i2c_reply/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/i2c/smbus_read/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/i2c/smbus_write/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/i2c/smbus_result/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/i2c/smbus_reply/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/kmem/rss_stat/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/kmem/ion_heap_grow/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/kmem/ion_heap_shrink/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/lowmemorykiller/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/lowmemorykiller/lowmemory_kill/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/mm_event/mm_event_record/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/oom/oom_score_adj_update/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/power/cpu_frequency/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/power/cpu_idle/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/power/clock_set_rate/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/power/cpu_frequency_limits/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/power/gpu_frequency/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/sched/sched_switch/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/sched/sched_wakeup/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/sched/sched_blocked_reason/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/sched/sched_cpu_hotplug/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/sched/sched_pi_setprio/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/sched/sched_process_exit/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/sched/sched_waking/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/signal/signal_generate/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/signal/signal_deliver/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/sync/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/task/task_rename/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/task/task_newtask/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/vmscan/mm_vmscan_direct_reclaim_begin/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/vmscan/mm_vmscan_direct_reclaim_end/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/vmscan/mm_vmscan_kswapd_wake/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/vmscan/mm_vmscan_kswapd_sleep/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/block/block_rq_issue/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/block/block_rq_complete/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/ext4/ext4_da_write_begin/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/ext4/ext4_da_write_end/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/ext4/ext4_es_lookup_extent_enter/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/ext4/ext4_es_lookup_extent_exit/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/ext4/ext4_load_inode/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/ext4/ext4_sync_file_enter/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/ext4/ext4_sync_file_exit/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/f2fs/f2fs_get_data_block/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/f2fs/f2fs_iget/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/f2fs/f2fs_sync_file_enter/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/f2fs/f2fs_sync_file_exit/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/f2fs/f2fs_write_begin/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/f2fs/f2fs_write_end/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/filemap/mm_filemap_add_to_page_cache/enable", - "chmod 0666 /sys/kernel/debug/tracing/events/filemap/mm_filemap_delete_from_page_cache/enable", - "chmod 0666 /sys/kernel/debug/tracing/options/overwrite", - "chmod 0666 /sys/kernel/debug/tracing/options/print-tgid", - "chmod 0666 /sys/kernel/debug/tracing/options/record-tgid", - "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu0/trace", - "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu1/trace", - "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu2/trace", - "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu3/trace", - "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu4/trace", - "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu5/trace", - "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu6/trace", - "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu7/trace", - "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu8/trace", - "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu9/trace", - "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu10/trace", - "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu11/trace", - "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu12/trace", - "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu13/trace", - "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu14/trace", - "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu15/trace" - ] - } - ] -} \ No newline at end of file +{ + "jobs" : [{ + "name" : "post-init", + "cmds" : [ + "write /proc/sys/kernel/sched_schedstats 1", + "write /sys/kernel/debug/tracing/tracing_on 0", + "chmod 0666 /sys/kernel/debug/tracing/buffer_size_kb", + "chmod 0666 /sys/kernel/debug/tracing/saved_cmdlines_size", + "chmod 0666 /sys/kernel/debug/tracing/trace", + "chmod 0666 /sys/kernel/debug/tracing/trace_clock", + "chmod 0222 /sys/kernel/debug/tracing/trace_marker", + "chmod 0666 /sys/kernel/debug/tracing/tracing_on", + "chmod 0666 /sys/kernel/debug/tracing/events/binder/binder_lock/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/binder/binder_locked/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/binder/binder_unlock/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/binder/binder_transaction/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/binder/binder_transaction_received/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/binder/binder_transaction_alloc_buf/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/cgroup/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/cpufreq_interactive/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/dma_fence/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/fence/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/i2c/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/i2c/i2c_read/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/i2c/i2c_write/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/i2c/i2c_result/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/i2c/i2c_reply/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/i2c/smbus_read/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/i2c/smbus_write/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/i2c/smbus_result/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/i2c/smbus_reply/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/kmem/rss_stat/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/kmem/ion_heap_grow/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/kmem/ion_heap_shrink/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/lowmemorykiller/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/lowmemorykiller/lowmemory_kill/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/mm_event/mm_event_record/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/oom/oom_score_adj_update/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/power/cpu_frequency/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/power/cpu_idle/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/power/clock_set_rate/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/power/cpu_frequency_limits/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/power/gpu_frequency/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/sched/sched_switch/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/sched/sched_wakeup/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/sched/sched_blocked_reason/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/sched/sched_cpu_hotplug/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/sched/sched_pi_setprio/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/sched/sched_process_exit/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/sched/sched_waking/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/signal/signal_generate/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/signal/signal_deliver/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/sync/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/task/task_rename/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/task/task_newtask/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/vmscan/mm_vmscan_direct_reclaim_begin/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/vmscan/mm_vmscan_direct_reclaim_end/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/vmscan/mm_vmscan_kswapd_wake/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/vmscan/mm_vmscan_kswapd_sleep/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/block/block_rq_issue/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/block/block_rq_complete/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/ext4/ext4_da_write_begin/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/ext4/ext4_da_write_end/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/ext4/ext4_es_lookup_extent_enter/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/ext4/ext4_es_lookup_extent_exit/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/ext4/ext4_load_inode/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/ext4/ext4_sync_file_enter/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/ext4/ext4_sync_file_exit/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/f2fs/f2fs_get_data_block/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/f2fs/f2fs_iget/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/f2fs/f2fs_sync_file_enter/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/f2fs/f2fs_sync_file_exit/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/f2fs/f2fs_write_begin/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/f2fs/f2fs_write_end/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/filemap/mm_filemap_add_to_page_cache/enable", + "chmod 0666 /sys/kernel/debug/tracing/events/filemap/mm_filemap_delete_from_page_cache/enable", + "chmod 0666 /sys/kernel/debug/tracing/options/overwrite", + "chmod 0666 /sys/kernel/debug/tracing/options/print-tgid", + "chmod 0666 /sys/kernel/debug/tracing/options/record-tgid", + "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu0/trace", + "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu1/trace", + "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu2/trace", + "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu3/trace", + "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu4/trace", + "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu5/trace", + "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu6/trace", + "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu7/trace", + "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu8/trace", + "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu9/trace", + "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu10/trace", + "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu11/trace", + "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu12/trace", + "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu13/trace", + "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu14/trace", + "chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu15/trace", + "write /sys/kernel/tracing/tracing_on 0", + "chmod 0666 /sys/kernel/tracing/buffer_size_kb", + "chmod 0666 /sys/kernel/tracing/saved_cmdlines_size", + "chmod 0666 /sys/kernel/tracing/trace", + "chmod 0666 /sys/kernel/tracing/trace_clock", + "chmod 0222 /sys/kernel/tracing/trace_marker", + "chmod 0666 /sys/kernel/tracing/tracing_on", + "chmod 0666 /sys/kernel/tracing/events/binder/binder_lock/enable", + "chmod 0666 /sys/kernel/tracing/events/binder/binder_locked/enable", + "chmod 0666 /sys/kernel/tracing/events/binder/binder_unlock/enable", + "chmod 0666 /sys/kernel/tracing/events/binder/binder_transaction/enable", + "chmod 0666 /sys/kernel/tracing/events/binder/binder_transaction_received/enable", + "chmod 0666 /sys/kernel/tracing/events/binder/binder_transaction_alloc_buf/enable", + "chmod 0666 /sys/kernel/tracing/events/cgroup/enable", + "chmod 0666 /sys/kernel/tracing/events/cpufreq_interactive/enable", + "chmod 0666 /sys/kernel/tracing/events/dma_fence/enable", + "chmod 0666 /sys/kernel/tracing/events/fence/enable", + "chmod 0666 /sys/kernel/tracing/events/i2c/enable", + "chmod 0666 /sys/kernel/tracing/events/i2c/i2c_read/enable", + "chmod 0666 /sys/kernel/tracing/events/i2c/i2c_write/enable", + "chmod 0666 /sys/kernel/tracing/events/i2c/i2c_result/enable", + "chmod 0666 /sys/kernel/tracing/events/i2c/i2c_reply/enable", + "chmod 0666 /sys/kernel/tracing/events/i2c/smbus_read/enable", + "chmod 0666 /sys/kernel/tracing/events/i2c/smbus_write/enable", + "chmod 0666 /sys/kernel/tracing/events/i2c/smbus_result/enable", + "chmod 0666 /sys/kernel/tracing/events/i2c/smbus_reply/enable", + "chmod 0666 /sys/kernel/tracing/events/kmem/rss_stat/enable", + "chmod 0666 /sys/kernel/tracing/events/kmem/ion_heap_grow/enable", + "chmod 0666 /sys/kernel/tracing/events/kmem/ion_heap_shrink/enable", + "chmod 0666 /sys/kernel/tracing/events/lowmemorykiller/enable", + "chmod 0666 /sys/kernel/tracing/events/lowmemorykiller/lowmemory_kill/enable", + "chmod 0666 /sys/kernel/tracing/events/mm_event/mm_event_record/enable", + "chmod 0666 /sys/kernel/tracing/events/oom/oom_score_adj_update/enable", + "chmod 0666 /sys/kernel/tracing/events/power/cpu_frequency/enable", + "chmod 0666 /sys/kernel/tracing/events/power/cpu_idle/enable", + "chmod 0666 /sys/kernel/tracing/events/power/clock_set_rate/enable", + "chmod 0666 /sys/kernel/tracing/events/power/cpu_frequency_limits/enable", + "chmod 0666 /sys/kernel/tracing/events/power/gpu_frequency/enable", + "chmod 0666 /sys/kernel/tracing/events/sched/sched_switch/enable", + "chmod 0666 /sys/kernel/tracing/events/sched/sched_wakeup/enable", + "chmod 0666 /sys/kernel/tracing/events/sched/sched_blocked_reason/enable", + "chmod 0666 /sys/kernel/tracing/events/sched/sched_cpu_hotplug/enable", + "chmod 0666 /sys/kernel/tracing/events/sched/sched_pi_setprio/enable", + "chmod 0666 /sys/kernel/tracing/events/sched/sched_process_exit/enable", + "chmod 0666 /sys/kernel/tracing/events/sched/sched_waking/enable", + "chmod 0666 /sys/kernel/tracing/events/signal/signal_generate/enable", + "chmod 0666 /sys/kernel/tracing/events/signal/signal_deliver/enable", + "chmod 0666 /sys/kernel/tracing/events/sync/enable", + "chmod 0666 /sys/kernel/tracing/events/task/task_rename/enable", + "chmod 0666 /sys/kernel/tracing/events/task/task_newtask/enable", + "chmod 0666 /sys/kernel/tracing/events/vmscan/mm_vmscan_direct_reclaim_begin/enable", + "chmod 0666 /sys/kernel/tracing/events/vmscan/mm_vmscan_direct_reclaim_end/enable", + "chmod 0666 /sys/kernel/tracing/events/vmscan/mm_vmscan_kswapd_wake/enable", + "chmod 0666 /sys/kernel/tracing/events/vmscan/mm_vmscan_kswapd_sleep/enable", + "chmod 0666 /sys/kernel/tracing/events/block/block_rq_issue/enable", + "chmod 0666 /sys/kernel/tracing/events/block/block_rq_complete/enable", + "chmod 0666 /sys/kernel/tracing/events/ext4/ext4_da_write_begin/enable", + "chmod 0666 /sys/kernel/tracing/events/ext4/ext4_da_write_end/enable", + "chmod 0666 /sys/kernel/tracing/events/ext4/ext4_es_lookup_extent_enter/enable", + "chmod 0666 /sys/kernel/tracing/events/ext4/ext4_es_lookup_extent_exit/enable", + "chmod 0666 /sys/kernel/tracing/events/ext4/ext4_load_inode/enable", + "chmod 0666 /sys/kernel/tracing/events/ext4/ext4_sync_file_enter/enable", + "chmod 0666 /sys/kernel/tracing/events/ext4/ext4_sync_file_exit/enable", + "chmod 0666 /sys/kernel/tracing/events/f2fs/f2fs_get_data_block/enable", + "chmod 0666 /sys/kernel/tracing/events/f2fs/f2fs_iget/enable", + "chmod 0666 /sys/kernel/tracing/events/f2fs/f2fs_sync_file_enter/enable", + "chmod 0666 /sys/kernel/tracing/events/f2fs/f2fs_sync_file_exit/enable", + "chmod 0666 /sys/kernel/tracing/events/f2fs/f2fs_write_begin/enable", + "chmod 0666 /sys/kernel/tracing/events/f2fs/f2fs_write_end/enable", + "chmod 0666 /sys/kernel/tracing/events/filemap/mm_filemap_add_to_page_cache/enable", + "chmod 0666 /sys/kernel/tracing/events/filemap/mm_filemap_delete_from_page_cache/enable", + "chmod 0666 /sys/kernel/tracing/options/overwrite", + "chmod 0666 /sys/kernel/tracing/options/print-tgid", + "chmod 0666 /sys/kernel/tracing/options/record-tgid", + "chmod 0666 /sys/kernel/tracing/per_cpu/cpu0/trace", + "chmod 0666 /sys/kernel/tracing/per_cpu/cpu1/trace", + "chmod 0666 /sys/kernel/tracing/per_cpu/cpu2/trace", + "chmod 0666 /sys/kernel/tracing/per_cpu/cpu3/trace", + "chmod 0666 /sys/kernel/tracing/per_cpu/cpu4/trace", + "chmod 0666 /sys/kernel/tracing/per_cpu/cpu5/trace", + "chmod 0666 /sys/kernel/tracing/per_cpu/cpu6/trace", + "chmod 0666 /sys/kernel/tracing/per_cpu/cpu7/trace", + "chmod 0666 /sys/kernel/tracing/per_cpu/cpu8/trace", + "chmod 0666 /sys/kernel/tracing/per_cpu/cpu9/trace", + "chmod 0666 /sys/kernel/tracing/per_cpu/cpu10/trace", + "chmod 0666 /sys/kernel/tracing/per_cpu/cpu11/trace", + "chmod 0666 /sys/kernel/tracing/per_cpu/cpu12/trace", + "chmod 0666 /sys/kernel/tracing/per_cpu/cpu13/trace", + "chmod 0666 /sys/kernel/tracing/per_cpu/cpu14/trace", + "chmod 0666 /sys/kernel/tracing/per_cpu/cpu15/trace", + "setparam debug.bytrace.tags.enableflags 0" + ] + } + ] +} diff --git a/bin/config/bytrace.rc b/bin/config/bytrace.rc index 5126345..f045f1a 100755 --- a/bin/config/bytrace.rc +++ b/bin/config/bytrace.rc @@ -1,119 +1,224 @@ -# Copyright (c) 2021 Huawei Device Co., Ltd. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -on late-init - write /proc/sys/kernel/sched_schedstats 1 - - write /sys/kernel/debug/tracing/tracing_on 0 - chmod 0666 /sys/kernel/debug/tracing/buffer_size_kb - chmod 0666 /sys/kernel/debug/tracing/saved_cmdlines_size - chmod 0666 /sys/kernel/debug/tracing/trace - chmod 0666 /sys/kernel/debug/tracing/trace_clock - chmod 0222 /sys/kernel/debug/tracing/trace_marker - chmod 0666 /sys/kernel/debug/tracing/tracing_on - - # ftrace events - chmod 0666 /sys/kernel/debug/tracing/events/binder/binder_lock/enable - chmod 0666 /sys/kernel/debug/tracing/events/binder/binder_locked/enable - chmod 0666 /sys/kernel/debug/tracing/events/binder/binder_unlock/enable - chmod 0666 /sys/kernel/debug/tracing/events/binder/binder_transaction/enable - chmod 0666 /sys/kernel/debug/tracing/events/binder/binder_transaction_received/enable - chmod 0666 /sys/kernel/debug/tracing/events/binder/binder_transaction_alloc_buf/enable - - chmod 0666 /sys/kernel/debug/tracing/events/cgroup/enable - chmod 0666 /sys/kernel/debug/tracing/events/cpufreq_interactive/enable - chmod 0666 /sys/kernel/debug/tracing/events/dma_fence/enable - chmod 0666 /sys/kernel/debug/tracing/events/fence/enable - - chmod 0666 /sys/kernel/debug/tracing/events/i2c/enable - chmod 0666 /sys/kernel/debug/tracing/events/i2c/i2c_read/enable - chmod 0666 /sys/kernel/debug/tracing/events/i2c/i2c_write/enable - chmod 0666 /sys/kernel/debug/tracing/events/i2c/i2c_result/enable - chmod 0666 /sys/kernel/debug/tracing/events/i2c/i2c_reply/enable - chmod 0666 /sys/kernel/debug/tracing/events/i2c/smbus_read/enable - chmod 0666 /sys/kernel/debug/tracing/events/i2c/smbus_write/enable - chmod 0666 /sys/kernel/debug/tracing/events/i2c/smbus_result/enable - chmod 0666 /sys/kernel/debug/tracing/events/i2c/smbus_reply/enable - - chmod 0666 /sys/kernel/debug/tracing/events/kmem/rss_stat/enable - chmod 0666 /sys/kernel/debug/tracing/events/kmem/ion_heap_grow/enable - chmod 0666 /sys/kernel/debug/tracing/events/kmem/ion_heap_shrink/enable - chmod 0666 /sys/kernel/debug/tracing/events/lowmemorykiller/enable - chmod 0666 /sys/kernel/debug/tracing/events/lowmemorykiller/lowmemory_kill/enable - chmod 0666 /sys/kernel/debug/tracing/events/mm_event/mm_event_record/enable - chmod 0666 /sys/kernel/debug/tracing/events/oom/oom_score_adj_update/enable - - chmod 0666 /sys/kernel/debug/tracing/events/power/cpu_frequency/enable - chmod 0666 /sys/kernel/debug/tracing/events/power/cpu_idle/enable - chmod 0666 /sys/kernel/debug/tracing/events/power/clock_set_rate/enable - chmod 0666 /sys/kernel/debug/tracing/events/power/cpu_frequency_limits/enable - chmod 0666 /sys/kernel/debug/tracing/events/power/gpu_frequency/enable - - chmod 0666 /sys/kernel/debug/tracing/events/sched/sched_switch/enable - chmod 0666 /sys/kernel/debug/tracing/events/sched/sched_wakeup/enable - chmod 0666 /sys/kernel/debug/tracing/events/sched/sched_blocked_reason/enable - chmod 0666 /sys/kernel/debug/tracing/events/sched/sched_cpu_hotplug/enable - chmod 0666 /sys/kernel/debug/tracing/events/sched/sched_pi_setprio/enable - chmod 0666 /sys/kernel/debug/tracing/events/sched/sched_process_exit/enable - chmod 0666 /sys/kernel/debug/tracing/events/sched/sched_waking/enable - - chmod 0666 /sys/kernel/debug/tracing/events/signal/signal_generate/enable - chmod 0666 /sys/kernel/debug/tracing/events/signal/signal_deliver/enable - chmod 0666 /sys/kernel/debug/tracing/events/sync/enable - chmod 0666 /sys/kernel/debug/tracing/events/task/task_rename/enable - chmod 0666 /sys/kernel/debug/tracing/events/task/task_newtask/enable - - chmod 0666 /sys/kernel/debug/tracing/events/vmscan/mm_vmscan_direct_reclaim_begin/enable - chmod 0666 /sys/kernel/debug/tracing/events/vmscan/mm_vmscan_direct_reclaim_end/enable - chmod 0666 /sys/kernel/debug/tracing/events/vmscan/mm_vmscan_kswapd_wake/enable - chmod 0666 /sys/kernel/debug/tracing/events/vmscan/mm_vmscan_kswapd_sleep/enable - - chmod 0666 /sys/kernel/debug/tracing/events/block/block_rq_issue/enable - chmod 0666 /sys/kernel/debug/tracing/events/block/block_rq_complete/enable - chmod 0666 /sys/kernel/debug/tracing/events/ext4/ext4_da_write_begin/enable - chmod 0666 /sys/kernel/debug/tracing/events/ext4/ext4_da_write_end/enable - chmod 0666 /sys/kernel/debug/tracing/events/ext4/ext4_es_lookup_extent_enter/enable - chmod 0666 /sys/kernel/debug/tracing/events/ext4/ext4_es_lookup_extent_exit/enable - chmod 0666 /sys/kernel/debug/tracing/events/ext4/ext4_load_inode/enable - chmod 0666 /sys/kernel/debug/tracing/events/ext4/ext4_sync_file_enter/enable - chmod 0666 /sys/kernel/debug/tracing/events/ext4/ext4_sync_file_exit/enable - chmod 0666 /sys/kernel/debug/tracing/events/f2fs/f2fs_get_data_block/enable - chmod 0666 /sys/kernel/debug/tracing/events/f2fs/f2fs_iget/enable - chmod 0666 /sys/kernel/debug/tracing/events/f2fs/f2fs_sync_file_enter/enable - chmod 0666 /sys/kernel/debug/tracing/events/f2fs/f2fs_sync_file_exit/enable - chmod 0666 /sys/kernel/debug/tracing/events/f2fs/f2fs_write_begin/enable - chmod 0666 /sys/kernel/debug/tracing/events/f2fs/f2fs_write_end/enable - chmod 0666 /sys/kernel/debug/tracing/events/filemap/mm_filemap_add_to_page_cache/enable - chmod 0666 /sys/kernel/debug/tracing/events/filemap/mm_filemap_delete_from_page_cache/enable - - chmod 0666 /sys/kernel/debug/tracing/options/overwrite - chmod 0666 /sys/kernel/debug/tracing/options/print-tgid - chmod 0666 /sys/kernel/debug/tracing/options/record-tgid - - # percpu - chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu0/trace - chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu1/trace - chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu2/trace - chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu3/trace - chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu4/trace - chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu5/trace - chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu6/trace - chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu7/trace - chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu8/trace - chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu9/trace - chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu10/trace - chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu11/trace - chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu12/trace - chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu13/trace - chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu14/trace - chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu15/trace \ No newline at end of file +# Copyright (c) 2021 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +on late-init + write /proc/sys/kernel/sched_schedstats 1 + + write /sys/kernel/debug/tracing/tracing_on 0 + chmod 0666 /sys/kernel/debug/tracing/buffer_size_kb + chmod 0666 /sys/kernel/debug/tracing/saved_cmdlines_size + chmod 0666 /sys/kernel/debug/tracing/trace + chmod 0666 /sys/kernel/debug/tracing/trace_clock + chmod 0222 /sys/kernel/debug/tracing/trace_marker + chmod 0666 /sys/kernel/debug/tracing/tracing_on + + # ftrace events + chmod 0666 /sys/kernel/debug/tracing/events/binder/binder_lock/enable + chmod 0666 /sys/kernel/debug/tracing/events/binder/binder_locked/enable + chmod 0666 /sys/kernel/debug/tracing/events/binder/binder_unlock/enable + chmod 0666 /sys/kernel/debug/tracing/events/binder/binder_transaction/enable + chmod 0666 /sys/kernel/debug/tracing/events/binder/binder_transaction_received/enable + chmod 0666 /sys/kernel/debug/tracing/events/binder/binder_transaction_alloc_buf/enable + + chmod 0666 /sys/kernel/debug/tracing/events/cgroup/enable + chmod 0666 /sys/kernel/debug/tracing/events/cpufreq_interactive/enable + chmod 0666 /sys/kernel/debug/tracing/events/dma_fence/enable + chmod 0666 /sys/kernel/debug/tracing/events/fence/enable + + chmod 0666 /sys/kernel/debug/tracing/events/i2c/enable + chmod 0666 /sys/kernel/debug/tracing/events/i2c/i2c_read/enable + chmod 0666 /sys/kernel/debug/tracing/events/i2c/i2c_write/enable + chmod 0666 /sys/kernel/debug/tracing/events/i2c/i2c_result/enable + chmod 0666 /sys/kernel/debug/tracing/events/i2c/i2c_reply/enable + chmod 0666 /sys/kernel/debug/tracing/events/i2c/smbus_read/enable + chmod 0666 /sys/kernel/debug/tracing/events/i2c/smbus_write/enable + chmod 0666 /sys/kernel/debug/tracing/events/i2c/smbus_result/enable + chmod 0666 /sys/kernel/debug/tracing/events/i2c/smbus_reply/enable + + chmod 0666 /sys/kernel/debug/tracing/events/kmem/rss_stat/enable + chmod 0666 /sys/kernel/debug/tracing/events/kmem/ion_heap_grow/enable + chmod 0666 /sys/kernel/debug/tracing/events/kmem/ion_heap_shrink/enable + chmod 0666 /sys/kernel/debug/tracing/events/lowmemorykiller/enable + chmod 0666 /sys/kernel/debug/tracing/events/lowmemorykiller/lowmemory_kill/enable + chmod 0666 /sys/kernel/debug/tracing/events/mm_event/mm_event_record/enable + chmod 0666 /sys/kernel/debug/tracing/events/oom/oom_score_adj_update/enable + + chmod 0666 /sys/kernel/debug/tracing/events/power/cpu_frequency/enable + chmod 0666 /sys/kernel/debug/tracing/events/power/cpu_idle/enable + chmod 0666 /sys/kernel/debug/tracing/events/power/clock_set_rate/enable + chmod 0666 /sys/kernel/debug/tracing/events/power/cpu_frequency_limits/enable + chmod 0666 /sys/kernel/debug/tracing/events/power/gpu_frequency/enable + + chmod 0666 /sys/kernel/debug/tracing/events/sched/sched_switch/enable + chmod 0666 /sys/kernel/debug/tracing/events/sched/sched_wakeup/enable + chmod 0666 /sys/kernel/debug/tracing/events/sched/sched_blocked_reason/enable + chmod 0666 /sys/kernel/debug/tracing/events/sched/sched_cpu_hotplug/enable + chmod 0666 /sys/kernel/debug/tracing/events/sched/sched_pi_setprio/enable + chmod 0666 /sys/kernel/debug/tracing/events/sched/sched_process_exit/enable + chmod 0666 /sys/kernel/debug/tracing/events/sched/sched_waking/enable + + chmod 0666 /sys/kernel/debug/tracing/events/signal/signal_generate/enable + chmod 0666 /sys/kernel/debug/tracing/events/signal/signal_deliver/enable + chmod 0666 /sys/kernel/debug/tracing/events/sync/enable + chmod 0666 /sys/kernel/debug/tracing/events/task/task_rename/enable + chmod 0666 /sys/kernel/debug/tracing/events/task/task_newtask/enable + + chmod 0666 /sys/kernel/debug/tracing/events/vmscan/mm_vmscan_direct_reclaim_begin/enable + chmod 0666 /sys/kernel/debug/tracing/events/vmscan/mm_vmscan_direct_reclaim_end/enable + chmod 0666 /sys/kernel/debug/tracing/events/vmscan/mm_vmscan_kswapd_wake/enable + chmod 0666 /sys/kernel/debug/tracing/events/vmscan/mm_vmscan_kswapd_sleep/enable + + chmod 0666 /sys/kernel/debug/tracing/events/block/block_rq_issue/enable + chmod 0666 /sys/kernel/debug/tracing/events/block/block_rq_complete/enable + chmod 0666 /sys/kernel/debug/tracing/events/ext4/ext4_da_write_begin/enable + chmod 0666 /sys/kernel/debug/tracing/events/ext4/ext4_da_write_end/enable + chmod 0666 /sys/kernel/debug/tracing/events/ext4/ext4_es_lookup_extent_enter/enable + chmod 0666 /sys/kernel/debug/tracing/events/ext4/ext4_es_lookup_extent_exit/enable + chmod 0666 /sys/kernel/debug/tracing/events/ext4/ext4_load_inode/enable + chmod 0666 /sys/kernel/debug/tracing/events/ext4/ext4_sync_file_enter/enable + chmod 0666 /sys/kernel/debug/tracing/events/ext4/ext4_sync_file_exit/enable + chmod 0666 /sys/kernel/debug/tracing/events/f2fs/f2fs_get_data_block/enable + chmod 0666 /sys/kernel/debug/tracing/events/f2fs/f2fs_iget/enable + chmod 0666 /sys/kernel/debug/tracing/events/f2fs/f2fs_sync_file_enter/enable + chmod 0666 /sys/kernel/debug/tracing/events/f2fs/f2fs_sync_file_exit/enable + chmod 0666 /sys/kernel/debug/tracing/events/f2fs/f2fs_write_begin/enable + chmod 0666 /sys/kernel/debug/tracing/events/f2fs/f2fs_write_end/enable + chmod 0666 /sys/kernel/debug/tracing/events/filemap/mm_filemap_add_to_page_cache/enable + chmod 0666 /sys/kernel/debug/tracing/events/filemap/mm_filemap_delete_from_page_cache/enable + + chmod 0666 /sys/kernel/debug/tracing/options/overwrite + chmod 0666 /sys/kernel/debug/tracing/options/print-tgid + chmod 0666 /sys/kernel/debug/tracing/options/record-tgid + + # percpu + chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu0/trace + chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu1/trace + chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu2/trace + chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu3/trace + chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu4/trace + chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu5/trace + chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu6/trace + chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu7/trace + chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu8/trace + chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu9/trace + chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu10/trace + chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu11/trace + chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu12/trace + chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu13/trace + chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu14/trace + chmod 0666 /sys/kernel/debug/tracing/per_cpu/cpu15/trace + + + write /sys/kernel/tracing/tracing_on 0 + chmod 0666 /sys/kernel/tracing/buffer_size_kb + chmod 0666 /sys/kernel/tracing/saved_cmdlines_size + chmod 0666 /sys/kernel/tracing/trace + chmod 0666 /sys/kernel/tracing/trace_clock + chmod 0222 /sys/kernel/tracing/trace_marker + chmod 0666 /sys/kernel/tracing/tracing_on + + # ftrace events + chmod 0666 /sys/kernel/tracing/events/binder/binder_lock/enable + chmod 0666 /sys/kernel/tracing/events/binder/binder_locked/enable + chmod 0666 /sys/kernel/tracing/events/binder/binder_unlock/enable + chmod 0666 /sys/kernel/tracing/events/binder/binder_transaction/enable + chmod 0666 /sys/kernel/tracing/events/binder/binder_transaction_received/enable + chmod 0666 /sys/kernel/tracing/events/binder/binder_transaction_alloc_buf/enable + + chmod 0666 /sys/kernel/tracing/events/cgroup/enable + chmod 0666 /sys/kernel/tracing/events/cpufreq_interactive/enable + chmod 0666 /sys/kernel/tracing/events/dma_fence/enable + chmod 0666 /sys/kernel/tracing/events/fence/enable + + chmod 0666 /sys/kernel/tracing/events/i2c/enable + chmod 0666 /sys/kernel/tracing/events/i2c/i2c_read/enable + chmod 0666 /sys/kernel/tracing/events/i2c/i2c_write/enable + chmod 0666 /sys/kernel/tracing/events/i2c/i2c_result/enable + chmod 0666 /sys/kernel/tracing/events/i2c/i2c_reply/enable + chmod 0666 /sys/kernel/tracing/events/i2c/smbus_read/enable + chmod 0666 /sys/kernel/tracing/events/i2c/smbus_write/enable + chmod 0666 /sys/kernel/tracing/events/i2c/smbus_result/enable + chmod 0666 /sys/kernel/tracing/events/i2c/smbus_reply/enable + + chmod 0666 /sys/kernel/tracing/events/kmem/rss_stat/enable + chmod 0666 /sys/kernel/tracing/events/kmem/ion_heap_grow/enable + chmod 0666 /sys/kernel/tracing/events/kmem/ion_heap_shrink/enable + chmod 0666 /sys/kernel/tracing/events/lowmemorykiller/enable + chmod 0666 /sys/kernel/tracing/events/lowmemorykiller/lowmemory_kill/enable + chmod 0666 /sys/kernel/tracing/events/mm_event/mm_event_record/enable + chmod 0666 /sys/kernel/tracing/events/oom/oom_score_adj_update/enable + + chmod 0666 /sys/kernel/tracing/events/power/cpu_frequency/enable + chmod 0666 /sys/kernel/tracing/events/power/cpu_idle/enable + chmod 0666 /sys/kernel/tracing/events/power/clock_set_rate/enable + chmod 0666 /sys/kernel/tracing/events/power/cpu_frequency_limits/enable + chmod 0666 /sys/kernel/tracing/events/power/gpu_frequency/enable + + chmod 0666 /sys/kernel/tracing/events/sched/sched_switch/enable + chmod 0666 /sys/kernel/tracing/events/sched/sched_wakeup/enable + chmod 0666 /sys/kernel/tracing/events/sched/sched_blocked_reason/enable + chmod 0666 /sys/kernel/tracing/events/sched/sched_cpu_hotplug/enable + chmod 0666 /sys/kernel/tracing/events/sched/sched_pi_setprio/enable + chmod 0666 /sys/kernel/tracing/events/sched/sched_process_exit/enable + chmod 0666 /sys/kernel/tracing/events/sched/sched_waking/enable + + chmod 0666 /sys/kernel/tracing/events/signal/signal_generate/enable + chmod 0666 /sys/kernel/tracing/events/signal/signal_deliver/enable + chmod 0666 /sys/kernel/tracing/events/sync/enable + chmod 0666 /sys/kernel/tracing/events/task/task_rename/enable + chmod 0666 /sys/kernel/tracing/events/task/task_newtask/enable + + chmod 0666 /sys/kernel/tracing/events/vmscan/mm_vmscan_direct_reclaim_begin/enable + chmod 0666 /sys/kernel/tracing/events/vmscan/mm_vmscan_direct_reclaim_end/enable + chmod 0666 /sys/kernel/tracing/events/vmscan/mm_vmscan_kswapd_wake/enable + chmod 0666 /sys/kernel/tracing/events/vmscan/mm_vmscan_kswapd_sleep/enable + + chmod 0666 /sys/kernel/tracing/events/block/block_rq_issue/enable + chmod 0666 /sys/kernel/tracing/events/block/block_rq_complete/enable + chmod 0666 /sys/kernel/tracing/events/ext4/ext4_da_write_begin/enable + chmod 0666 /sys/kernel/tracing/events/ext4/ext4_da_write_end/enable + chmod 0666 /sys/kernel/tracing/events/ext4/ext4_es_lookup_extent_enter/enable + chmod 0666 /sys/kernel/tracing/events/ext4/ext4_es_lookup_extent_exit/enable + chmod 0666 /sys/kernel/tracing/events/ext4/ext4_load_inode/enable + chmod 0666 /sys/kernel/tracing/events/ext4/ext4_sync_file_enter/enable + chmod 0666 /sys/kernel/tracing/events/ext4/ext4_sync_file_exit/enable + chmod 0666 /sys/kernel/tracing/events/f2fs/f2fs_get_data_block/enable + chmod 0666 /sys/kernel/tracing/events/f2fs/f2fs_iget/enable + chmod 0666 /sys/kernel/tracing/events/f2fs/f2fs_sync_file_enter/enable + chmod 0666 /sys/kernel/tracing/events/f2fs/f2fs_sync_file_exit/enable + chmod 0666 /sys/kernel/tracing/events/f2fs/f2fs_write_begin/enable + chmod 0666 /sys/kernel/tracing/events/f2fs/f2fs_write_end/enable + chmod 0666 /sys/kernel/tracing/events/filemap/mm_filemap_add_to_page_cache/enable + chmod 0666 /sys/kernel/tracing/events/filemap/mm_filemap_delete_from_page_cache/enable + + chmod 0666 /sys/kernel/tracing/options/overwrite + chmod 0666 /sys/kernel/tracing/options/print-tgid + chmod 0666 /sys/kernel/tracing/options/record-tgid + + # percpu + chmod 0666 /sys/kernel/tracing/per_cpu/cpu0/trace + chmod 0666 /sys/kernel/tracing/per_cpu/cpu1/trace + chmod 0666 /sys/kernel/tracing/per_cpu/cpu2/trace + chmod 0666 /sys/kernel/tracing/per_cpu/cpu3/trace + chmod 0666 /sys/kernel/tracing/per_cpu/cpu4/trace + chmod 0666 /sys/kernel/tracing/per_cpu/cpu5/trace + chmod 0666 /sys/kernel/tracing/per_cpu/cpu6/trace + chmod 0666 /sys/kernel/tracing/per_cpu/cpu7/trace + chmod 0666 /sys/kernel/tracing/per_cpu/cpu8/trace + chmod 0666 /sys/kernel/tracing/per_cpu/cpu9/trace + chmod 0666 /sys/kernel/tracing/per_cpu/cpu10/trace + chmod 0666 /sys/kernel/tracing/per_cpu/cpu11/trace + chmod 0666 /sys/kernel/tracing/per_cpu/cpu12/trace + chmod 0666 /sys/kernel/tracing/per_cpu/cpu13/trace + chmod 0666 /sys/kernel/tracing/per_cpu/cpu14/trace + chmod 0666 /sys/kernel/tracing/per_cpu/cpu15/trace \ No newline at end of file diff --git a/bin/example/bytrace_example.cpp b/bin/example/bytrace_example.cpp index 1e8f6a1..db75767 100644 --- a/bin/example/bytrace_example.cpp +++ b/bin/example/bytrace_example.cpp @@ -1,76 +1,98 @@ +/* + * Copyright (C) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + #include #include #include #include + #include "bytrace.h" using namespace std; -constexpr uint64_t label = BYTRACE_TAG_OHOS; +namespace { +constexpr int SLEEP_ONE_SECOND = 1; +constexpr int SLEEP_TWO_SECOND = 2; +constexpr int CYCLE_TIMES = 5; +constexpr int32_t TASK_ID = 111; +constexpr uint64_t LABEL = BYTRACE_TAG_OHOS; -void func1() +void FuncA() { - cout << "func 1" << endl; - sleep(1); + cout << "funcA" << endl; + sleep(SLEEP_ONE_SECOND); } -void func2() +void FuncB() { - cout << "func 2" << endl; - sleep(2); + cout << "funcB" << endl; + sleep(SLEEP_TWO_SECOND); } -void func3() +void FuncC() { - cout << "func 3" << endl; + cout << "funcC" << endl; int num = 0; - for(int i=0; i < 5; i++) { + for (int i = 0; i < CYCLE_TIMES; i++) { CountTrace(BYTRACE_TAG_OHOS, "count number", ++num); - sleep(1); + sleep(SLEEP_ONE_SECOND); } } -void threadFunc1() +void ThreadFunc1() { - StartAsyncTrace(label, "testAsync", 1111); - for (int i = 0; i < 5; ++i) { + StartAsyncTrace(LABEL, "testAsync", TASK_ID); + for (int i = 0; i < CYCLE_TIMES; ++i) { cout << "t1" << endl; - sleep(1); + sleep(SLEEP_ONE_SECOND); } } -void threadFunc2() +void ThreadFunc2() { - for (int i = 0; i < 5; ++i) { + for (int i = 0; i < CYCLE_TIMES; ++i) { cout << "t2" << endl; - sleep(1); + sleep(SLEEP_ONE_SECOND); } - FinishAsyncTrace(label, "testAsync", 1111); + FinishAsyncTrace(LABEL, "testAsync", TASK_ID); } +} // namespace int main() { - thread t1(threadFunc1); + thread t1(ThreadFunc1); t1.join(); - StartTrace(label, "testStart"); - sleep(1); + StartTrace(LABEL, "testStart"); + sleep(SLEEP_ONE_SECOND); - StartTrace(label, "func1Start", 1); // 打印起始点 - func1(); - FinishTrace(label); - sleep(2); + StartTrace(LABEL, "funcAStart", SLEEP_ONE_SECOND); // 打印起始点 + FuncA(); + FinishTrace(LABEL); + sleep(SLEEP_TWO_SECOND); - thread t2(threadFunc2); + thread t2(ThreadFunc2); t2.join(); - StartTrace(label, "func2Start", 2); - func2(); - FinishTrace(label); - sleep(2); + StartTrace(LABEL, "funcBStart", SLEEP_TWO_SECOND); + FuncB(); + FinishTrace(LABEL); + sleep(SLEEP_TWO_SECOND); - sleep(1); - FinishTrace(label); - func3(); + sleep(SLEEP_ONE_SECOND); + FinishTrace(LABEL); + FuncC(); return 0; } diff --git a/bin/src/bytrace.cpp b/bin/src/bytrace.cpp index b5cda18..b050934 100755 --- a/bin/src/bytrace.cpp +++ b/bin/src/bytrace.cpp @@ -151,6 +151,7 @@ static bool IsTagSupported(const string& name) return true; } + bool findPath = false; for (int i = 0; i < MAX_SYS_FILES; i++) { const string path = tagCategory.sysfiles[i].path; if (path.size() == 0) { @@ -158,15 +159,13 @@ static bool IsTagSupported(const string& name) } if (IsWritableFile(path)) { g_kernelEnabledPaths.push_back(path); + findPath = true; } else if (IsFileExit(path)) { fprintf(stderr, "Warning: category \"%s\" requires root " "privileges.\n", name.c_str()); - return false; - } else { - return false; } } - return true; + return findPath; } static string ReadFile(const string& filename) @@ -242,7 +241,7 @@ static bool DisableAllFtraceEvents() } for (int i = 0; i < MAX_SYS_FILES; i++) { const string path = tag.sysfiles[i].path; - if (path.size() > 0 && IsWritableFile(path)) { + if ((path.size() > 0) && IsWritableFile(path)) { isTrue = isTrue && SetFtraceEnabled(path, false); } } @@ -322,7 +321,7 @@ static void ShowHelp(const string& cmd) " --buffer_size N Like \"-b N\".\n" " -l Lists available bytrace categories.\n" " --list_categories Like \"-l\".\n" - " -t N Sets the bytrace running duration in seconds (5s by default), which depends on" + " -t N Sets the bytrace running duration in seconds (5s by default), which depends on \n" " the time required for analysis.\n" " --time N Like \"-t N\".\n" " --trace_clock clock\n" @@ -348,17 +347,15 @@ inline bool StrToNum(const std::string& sString, T &tX) return (iStream >> tX) ? true : false; } -static void ParseLongOpt(const string& cmd, - int optionIndex, - bool& isTrue) +static void ParseLongOpt(const string& cmd, int optionIndex, bool& isTrue) { if (!strcmp(g_longOptions[optionIndex].name, "buffer_size")) { if (!StrToNum(optarg, g_bufferSizeKB)) { printf("Error: the bufferSize is illegal input. eg: \"--buffer_size 1024.\"\n"); - isTrue &= false; + isTrue = false; } else if (g_bufferSizeKB < MIN_BUFFER_SIZE || g_bufferSizeKB > MAX_BUFFER_SIZE) { printf("Error: the buffer size should be within 256 KB to 300 MB. eg: \"--buffer_size 1024.\"\n"); - isTrue &= false; + isTrue = false; } g_bufferSizeKB = g_bufferSizeKB / PAGE_SIZE_KB * PAGE_SIZE_KB; } else if (!strcmp(g_longOptions[optionIndex].name, "trace_clock")) { @@ -367,29 +364,29 @@ static void ParseLongOpt(const string& cmd, g_clock = optarg; } else { printf("Error: \"--trace_clock\" is illegal input. eg: \"--trace_clock boot.\"\n"); - isTrue &= false; + isTrue = false; } } else if (!strcmp(g_longOptions[optionIndex].name, "help")) { ShowHelp(cmd); - isTrue &= false; + isTrue = false; } else if (!strcmp(g_longOptions[optionIndex].name, "time")) { if (!StrToNum(optarg, g_traceDuration)) { printf("Error: the time is illegal input. eg: \"--time 5.\"\n"); - isTrue &= false; + isTrue = false; } else if (g_traceDuration < 1) { printf("Error: \"-t %s\" to be greater than zero. eg: \"--time 5\"\n", optarg); - isTrue &= false; + isTrue = false; } } else if (!strcmp(g_longOptions[optionIndex].name, "list_categories")) { ShowListCategory(); - isTrue &= false; + isTrue = false; } else if (!strcmp(g_longOptions[optionIndex].name, "output")) { struct stat buf; size_t len = strnlen(optarg, MAX_OUTPUT_LEN); if (len == MAX_OUTPUT_LEN || len < 1 || (stat(optarg, &buf) == 0 && (buf.st_mode & S_IFDIR) != 0)) { printf("Error: output file is illegal.\n"); - isTrue &= false; + isTrue = false; } else { g_outputFile = optarg; } @@ -417,29 +414,29 @@ static bool ParseOpt(int opt, char** argv, int optIndex) case 'b': { if (!StrToNum(optarg, g_bufferSizeKB)) { printf("Error: the bufferSize is illegal input. eg: \"--buffer_size 1024.\"\n"); - isTrue &= false; + isTrue = false; } else if (g_bufferSizeKB < MIN_BUFFER_SIZE || g_bufferSizeKB > MAX_BUFFER_SIZE) { printf("Error: the buffer size should be within 256 KB to 300 MB. eg: \"--buffer_size 1024.\"\n"); - isTrue &= false; + isTrue = false; } g_bufferSizeKB = g_bufferSizeKB / PAGE_SIZE_KB * PAGE_SIZE_KB; break; } case 'h': ShowHelp(argv[0]); - isTrue &= false; + isTrue = false; break; case 'l': ShowListCategory(); - isTrue &= false; + isTrue = false; break; case 't': { if (!StrToNum(optarg, g_traceDuration)) { printf("Error: the time is illegal input. eg: \"--time 5.\"\n"); - isTrue &= false; + isTrue = false; } else if (g_traceDuration < 1) { printf("Error: \"-t %s\" to be greater than zero. eg: \"--time 5\"\n", optarg); - isTrue &= false; + isTrue = false; } break; } @@ -449,7 +446,7 @@ static bool ParseOpt(int opt, char** argv, int optIndex) if (len == MAX_OUTPUT_LEN || len < 1 || (stat(optarg, &buf) == 0 && (buf.st_mode & S_IFDIR) != 0)) { printf("Error: output file is illegal.\n"); - isTrue &= false; + isTrue = false; } else { g_outputFile = optarg; } @@ -463,7 +460,7 @@ static bool ParseOpt(int opt, char** argv, int optIndex) break; default: ShowHelp(argv[0]); - isTrue &= false; + isTrue = false; break; } return isTrue; @@ -492,7 +489,7 @@ static bool HandleOpt(int argc, char** argv) IsInvalidOpt(argc, argv); break; } - isTrue &= ParseOpt(opt, argv, optionIndex); + isTrue = ParseOpt(opt, argv, optionIndex); } return isTrue; } @@ -645,7 +642,8 @@ static bool MarkOthersClockSync() return false; } if (write(fd, buffer, len) < 0) { - fprintf(stderr, "Error: writing clock sync marker %s (%d)\n", strerror(errno), errno); + fprintf(stderr, "Warning: writing clock sync marker %s (%d)\n", strerror(errno), errno); + fprintf(stderr, "the buffer is not enough, please increase the buffer\n"); } len = snprintf_s(buffer, sizeof(buffer), sizeof(buffer) - 1, "trace_event_clock_sync: parent_ts=%f\n", static_cast(((static_cast(mts.tv_sec)) * nanoSeconds + mts.tv_nsec) / nanoToSecond)); @@ -655,7 +653,8 @@ static bool MarkOthersClockSync() return false; } if (write(fd, buffer, len) < 0) { - fprintf(stderr, "Error: writing clock sync marker %s (%d)\n", strerror(errno), errno); + fprintf(stderr, "Warning: writing clock sync marker %s (%d)\n", strerror(errno), errno); + fprintf(stderr, "the buffer is not enough, please increase the buffer\n"); } close(fd); return true; @@ -746,6 +745,16 @@ static void InitKernelSupportTags() { "events/power/cpu_idle/enable" }, }}; + g_tagMap["binder"] = { "binder", "Binder kernel Info", 0, KERNEL, { + { "events/binder/binder_transaction/enable" }, + { "events/binder/binder_transaction_received/enable" }, + { "events/binder/binder_transaction_alloc_buf/enable" }, + { "events/binder/binder_set_priority/enable" }, + { "events/binder/binder_lock/enable" }, + { "events/binder/binder_locked/enable" }, + { "events/binder/binder_unlock/enable" }, + }}; + g_tagMap["load"] = { "load", "CPU Load", 0, KERNEL, { { "events/cpufreq_interactive/enable" }, }}; @@ -789,6 +798,13 @@ static void InitAllSupportTags() g_tagMap["graphic"] = { "graphic", "Graphic Module", BYTRACE_TAG_GRAPHIC_AGP, USER, {}}; g_tagMap["ace"] = { "ace", "ACE development framework", BYTRACE_TAG_ACE, USER, {}}; g_tagMap["notification"] = { "notification", "Notification Module", BYTRACE_TAG_NOTIFICATION, USER, {}}; + g_tagMap["misc"] = { "misc", "Misc Module", BYTRACE_TAG_MISC, USER, {}}; + g_tagMap["multimodalinput"] = { "multimodalinput", "Multimodal Input Module", BYTRACE_TAG_MULTIMODALINPUT, USER, {}}; + g_tagMap["sensors"] = { "sensors", "Sensors Module", BYTRACE_TAG_SENSORS, USER, {}}; + g_tagMap["msdp"] = { "msdp", "Multimodal Sensor Data Platform", BYTRACE_TAG_MSDP, USER, {}}; + g_tagMap["dsoftbus"] = { "dsoftbus", "Distributed Softbus", BYTRACE_TAG_DSOFTBUS, USER, {}}; + g_tagMap["rpc"] = { "rpc", "RPC and IPC", BYTRACE_TAG_RPC, USER, {}}; + g_tagMap["ark"] = { "ark", "ARK Module", BYTRACE_TAG_ARK, USER, {}}; g_tagMap["app"] = { "app", "APP Module", BYTRACE_TAG_APP, USER, {}}; g_tagMap["zbinder"] = { "zbinder", "Harmony binder communication", 0, KERNEL, { { "events/zbinder/enable" }, @@ -830,16 +846,15 @@ int main(int argc, char **argv) } bool isTrue = true; - if (g_traceStart) { SetViewStyle(); - isTrue &= StartTrace(); + isTrue = isTrue && StartTrace(); } - isTrue &= MarkOthersClockSync(); + isTrue = isTrue && MarkOthersClockSync(); if (g_traceStop) { - isTrue &= StopTrace(); + isTrue = isTrue && StopTrace(); } if (isTrue && g_traceDump) { diff --git a/bin/src/bytrace_impl.cpp b/bin/src/bytrace_impl.cpp index 54ef55f..9019b11 100755 --- a/bin/src/bytrace_impl.cpp +++ b/bin/src/bytrace_impl.cpp @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include @@ -87,7 +88,7 @@ uint64_t GetSysParamTags() // Get the system parameters of KEY_TRACE_TAG. uint64_t tags = OHOS::system::GetUintParameter(KEY_TRACE_TAG, 0); if (tags == 0) { - fprintf(stderr, "GetUintParameter %s error.\n", KEY_TRACE_TAG.c_str()); + // HiLog::Error(LABEL, "GetUintParameter %s error.\n", KEY_TRACE_TAG.c_str()); return 0; } @@ -130,7 +131,9 @@ inline void AddBytraceMarker(MarkerType type, uint64_t tag, std::string name, st record += std::to_string(getpid()) + "|"; record += (name.size() < NAME_MAX_SIZE) ? name : name.substr(0, NAME_MAX_SIZE); record += " " + value; - write(g_markerFd, record.c_str(), record.size()); + if (write(g_markerFd, record.c_str(), record.size()) < 0) { + HiLog::Error(LABEL, "write trace_marker failed, %{public}s", strerror(errno)); + } } } diff --git a/interfaces/innerkits/native/include/bytrace.h b/interfaces/innerkits/native/include/bytrace.h index b751052..28724b7 100755 --- a/interfaces/innerkits/native/include/bytrace.h +++ b/interfaces/innerkits/native/include/bytrace.h @@ -36,6 +36,13 @@ constexpr uint64_t BYTRACE_TAG_MDFS = (1ULL << 37); // Mobile distributed file s constexpr uint64_t BYTRACE_TAG_GRAPHIC_AGP = (1ULL << 38); // Graphic module tag. constexpr uint64_t BYTRACE_TAG_ACE = (1ULL << 39); // ACE development framework tag. constexpr uint64_t BYTRACE_TAG_NOTIFICATION = (1ULL << 40); // Notification module tag. +constexpr uint64_t BYTRACE_TAG_MISC = (1ULL << 41); // Notification module tag. +constexpr uint64_t BYTRACE_TAG_MULTIMODALINPUT = (1ULL << 42); // Multi modal module tag. +constexpr uint64_t BYTRACE_TAG_SENSORS = (1ULL << 43); // Sensors mudule tag. +constexpr uint64_t BYTRACE_TAG_MSDP = (1ULL << 44); // Multimodal Sensor Data Platform module tag. +constexpr uint64_t BYTRACE_TAG_DSOFTBUS = (1ULL << 45); // Distributed Softbus tag. +constexpr uint64_t BYTRACE_TAG_RPC = (1ULL << 46); // RPC and IPC tag. +constexpr uint64_t BYTRACE_TAG_ARK = (1ULL << 47); // ARK tag. constexpr uint64_t BYTRACE_TAG_APP = (1ULL << 62); // App tag. constexpr uint64_t BYTRACE_TAG_LAST = BYTRACE_TAG_APP; @@ -57,6 +64,11 @@ constexpr uint64_t BYTRACE_TAG_VALID_MASK = ((BYTRACE_TAG_LAST - 1) | BYTRACE_TA #define TRACE_LEVEL RELEASE #endif +#define TOKENPASTE(x, y) x ## y +#define TOKENPASTE2(x, y) TOKENPASTE(x, y) +#define BYTRACE_NAME(TAG, fmt, ...) ByTraceScoped TOKENPASTE2(tracer, __LINE__)(TAG, fmt, ##__VA_ARGS__) +#define BYTRACE(TAG) BYTRACE_NAME(TAG, __func__) + /** * Update trace label when your process has started. */ @@ -96,6 +108,20 @@ void MiddleTraceDebug(uint64_t label, const std::string& beforeValue, const std: void CountTrace(uint64_t label, const std::string& name, int64_t count); void CountTraceDebug(uint64_t label, const std::string& name, int64_t count); +class ByTraceScoped { +public: + inline ByTraceScoped(uint64_t tag, const std::string &value) : mTag(tag) + { + StartTrace(mTag, value); + } + + inline ~ByTraceScoped() + { + FinishTrace(mTag); + } +private: + uint64_t mTag; +}; #ifdef __cplusplus } #endif diff --git a/interfaces/kits/js/@ohos.bytrace.d.ts b/interfaces/kits/js/@ohos.bytrace.d.ts index 107ee6a..c4a1910 100755 --- a/interfaces/kits/js/@ohos.bytrace.d.ts +++ b/interfaces/kits/js/@ohos.bytrace.d.ts @@ -60,8 +60,8 @@ declare namespace bytrace { * This method is invoked at the end of a transaction to indicate that a task has ended, whose name * is specified by {@code name}. This method must be invoked after the the startTrace. * - * @param name Indicates the task name. It must be the same whith the {@code name} of startTrace. - * @param taskId The unique id used to distinguish the tasks and must be the same whith the . + * @param name Indicates the task name. It must be the same as the {@code name} of startTrace. + * @param taskId The unique id used to distinguish the tasks and must be the same as the . * {@code taskId} of startTrace. * @since 7 */ @@ -76,4 +76,4 @@ declare namespace bytrace { */ function traceByValue(name: string, count: number): void; } -export default bytrace; \ No newline at end of file +export default bytrace; diff --git a/interfaces/kits/js/napi/BUILD.gn b/interfaces/kits/js/napi/BUILD.gn index 95b4889..27537f3 100755 --- a/interfaces/kits/js/napi/BUILD.gn +++ b/interfaces/kits/js/napi/BUILD.gn @@ -1,31 +1,29 @@ -# Copyright (c) 2021 Huawei Device Co., Ltd. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and +# Copyright (c) 2021 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and # limitations under the License. - -import("//build/ohos.gni") -import("//developtools/bytrace_standard/bytrace.gni") - -ohos_shared_library("bytrace") { - sources = [ "bytrace.cpp" ] - deps = [ - "//foundation/ace/napi:ace_napi", - "${innerkits_path}/native:bytrace_core", - ] - external_deps = [ - "hiviewdfx_hilog_native:libhilog", - ] - - relative_install_dir = "module" - - subsystem_name = "developtools" - part_name = "bytrace_standard" -} \ No newline at end of file + +import("//build/ohos.gni") +import("//developtools/bytrace_standard/bytrace.gni") + +ohos_shared_library("bytrace") { + sources = [ "bytrace.cpp" ] + deps = [ + "${innerkits_path}/native:bytrace_core", + "//foundation/ace/napi:ace_napi", + ] + external_deps = [ "hiviewdfx_hilog_native:libhilog" ] + + relative_install_dir = "module" + + subsystem_name = "developtools" + part_name = "bytrace_standard" +}