设置 ftrace

echo function_graph > current_tracerecho funcgraph-cpu > trace_optionsecho funcgraph-proc > trace_optionsecho funcgraph-abstime > trace_optionsecho nofuncgraph-overhead > trace_options

准备工作

umount tmpmount -o rw,remount /mkdir /tmpmount -t tmpfs none /tmpecho 0 > tracing_enabled

执行 profiling

cat trace_pipe > /tmp/trace.out &echo 1 > tracing_enabledecho 0 > tracing_enabled

程序 3X 时间,大量 lost events,需减少目标函数

echo 'sys_*' > set_ftrace_filter # covers sys_futex (do_futex, futex_wait)echo '*page*' >> set_ftrace_filterecho 'sleep_on_*' >> set_ftrace_filterecho '*wait*' >> set_ftrace_filterecho '__schedule' >> set_ftrace_filter  # covers schedule, schedule_timeout, poll_schedule_timeout, schedule_hrtimeout_rangeecho 'do_fork' >> set_ftrace_filter; echo '!sys_clone' >> set_ftrace_filter # covers kernel_threadecho 'copy_process' >> set_ftrace_filterecho 'binder_thread_*' >> set_ftrace_filter # binder_thread_read/writeecho 'do_exit' >> set_ftrace_filterecho 'do_IRQ' >> set_ftrace_filterecho 'do_IPI' >> set_ftrace_filterecho 'do_softirq' >> set_ftrace_filterecho 'flush_dcache_page' >> set_ftrace_filter # covers __flush_dcache_pageecho 'subsystem_flush_mapped_mem_cache' >> set_ftrace_filterecho '__atomic_notifier_call_chain' >> set_ftrace_filter # covers atomic_notifier_call_chainecho 'down_interruptable' >> set_ftrace_filterecho 'do_local_timer' >> set_ftrace_filterecho 'load_balance' >> set_ftrace_filterecho 'rebalance_domains' >> set_ftrace_filter # covers run_rebalance_domainsecho 'sched_move_task' >> set_ftrace_filterecho '__alloc_pages_nodemask' >> set_ftrace_filter # covers page allocation, __rmqueueecho '__free_pages' >> set_ftrace_filter # covers __free_page, __free_pages_okecho 'mali_mmap' >> set_ftrace_filterecho 'split_vma' >> set_ftrace_filterecho 'process_one_work' >> set_ftrace_filter # workersecho 'do_signal*' >> set_ftrace_filterecho 'mmc_*' >> set_ftrace_filterecho 'generic_make_request' >> set_ftrace_filter # main for block layerecho 'vfs_fsync_range' >> set_ftrace_filter # covers vfs_fsync, do_fsyncecho 'shrink_*' >> set_ftrace_filter # covers try_to_free_pagesecho 'kswapd' >> set_ftrace_filterecho 'input_event' >> set_ftrace_filter


更多相关文章

  1. Android架构分析之Android开发环境搭建
  2. Android异步处理四:AsyncTask的实现原理
  3. android底层的学习
  4. AsyncTask源码分析
  5. Android下打印调用栈
  6. android随笔
  7. Android(安卓)上Camera分析
  8. Android平台开发-Android(安卓)HAL develop-Android(安卓)HAL开
  9. Android(安卓)framework Watchdog的监控过程

随机推荐

  1. Android布局文件中常用的属性
  2. Android(安卓)SDK离线快速安装教程 Andro
  3. Android(安卓)Studio系列(三)Version Contr
  4. Android(安卓)Layout属性笔记
  5. 详解 Android(安卓)的 Activity 组件
  6. Android技能树 — 排序算法基础小结
  7. Android安全机制探讨
  8. 一样的Android,不一样的学习
  9. android之shape
  10. Android入门学习:Android(安卓)系统框架及