1. 程式人生 > >Android下的一些除錯手段(含kernel除錯辦法)

Android下的一些除錯手段(含kernel除錯辦法)

主要介紹除了常規的kernel的printk和android的DDMS, logcat外的幾個除錯手段.

包括bugreport, oprofile, traceview, ftrace等.

Bugreport

Bugreport是android平臺自帶的工具, 收集了device端的詳細的狀況, 可以在console下直接執行“bugreport > /sdcard/bugreport.log”或者接入USB cable並開啟adb debug的狀況下執行”adb bugreport > bugreport.log”.
下面是一個抓取的bugreport的參考資料.
 
相關程式碼路徑
frameworks\base\cmds\bugreport
frameworks\base\cmds\dumpstate
frameworks\base\cmds\dumpsys

oprofile

Oprofie的原理比較簡單: 很多CPU都提供一個所謂效能計數器的東西(performance counter),
大致的原理就是程式可以註冊告訴CPU對什麼event感興趣(比如CPU_CYCLE, CPU經歷了一次時鐘週期),
然後CPU在執行了相應的操作後, 就會在效能計數器上加1, 這樣程式就可以取出.
所以, 使用OProfile來定位CPU使用率的問題, 就變成了讓oprofile收集程式執行過程中哪個可執行程式(或是so)中的哪個function, 消耗的CPU CYCLE最多.

在實際應用中, oprofile可以用來對找出系統的瓶頸並進行優化.
R70中預設的工程中, Oprofile是沒有被編譯進來的, 需要修改external\oprofile\opcontrol\android.mk和external\oprofile\daemon\android.mk
兩個檔案中的LOCAL_MODULE_TAGS 屬性從debug修改為eng或者user, 從而將oprofile編譯進android中.

此外, Oprofile需要kernel中開啟相應的compile option來支援, kernel對應程式碼在kernel\trace目錄中. 相應的config如下:

General setup  [*] Profiling Support
    CONFIG_PROFILING

General setup <*> OProfile system profiling
    CONFIG_OPROFILE
    CONFIG_RING_BUFFER
    CONFIG_RING_BUFFER_ALLOW_SWAP
    CONFIG_RING_BUFFER_BENCHMARK is not set

General setup   Kernel Performance Events And Counters
    [*] Kernel performance events and counters
    CONFIG_PERF_EVENTS
    CONFIG_HW_PERF_EVENTS

Examples:


最後, 在PC端安裝oprofile以便對device端生成的結果進行解析.

如果需要得到最後的圖形結果, 還需要安裝Graphviz.

所有的準備工作就緒後,只要在device端執行如下的命令,即可啟動oprofile對device進行檢測.

opcontrol–quick     ===>  setup相應的環境和引數

opcontrol–start      ===>  啟動oprofile

opcontrol–status   ===>  中途可以檢視oprofile的狀態

opcontrol–stop      ===>  停止oprofile

opcontrol–dump    ===>  將結果儲存至/data/oprofile 路徑

最後, 在PC端執行android工程中的external\oprofile下的opimport_pull指令碼, 即可生成相應的結果callgraph.txt, load.txt, load2.txt以及callgraph.png(如下).

注意, 在執行指令碼前需要設定一些環境變數和device端kernel對應的vmlinux檔案.

exportOPROFILE_EVENTS_DIR= {Your Android Source DIR}/prebuilt/linux-x86_64/oprofile/

exportOPROFILE_BIN_DIR=/{Oprofile Bin DIR on Your PC }/

exportOUT= {Your Android Source DIR}/out/target/product/smdkv210

cd  {Your Android Source DIR}/out/target/product/smdkv210/symbols

ln -s {Your Kernel Source DIR}/vmlinux ./vmlinux

traceview

Traceview是android自帶的tool,用來分析在android端通過呼叫Debug.startMethodTracing("xxxx");生成的名為xxxx.trace的檔案. 這個方法需要在android的程式碼中新增Debug.startMethodTracing("xxxx")和Debug.stopMethodTracing()的程式碼. 使用者通過在合理地點新增這兩個函式, 可以很直觀的分析在這個中間過程中, 系統的執行狀況, 上到每個程序在什麼時候開始跑了多長時間, 下到每個函式跑了多少次, 每次跑了多長時間.

Ftrace

ftrace是內建於Linux核心的跟蹤工具, 從2.6.27開始加入主流核心. ftrace的作用是幫助開發人員瞭解 Linux 核心的執行時行為, 以便進行故障除錯或效能分析.

使用ftrace可以對核心函式呼叫、上下文切換進行跟蹤, 還可以檢視中斷被關閉的時長, 跟蹤核心態中的延遲以及效能問題等.

使用ftrace對核心進行跟蹤除錯, 可以找到核心中出現的問題的根源, 通過ftrace來觀察核心中發生的活動, 則可以瞭解核心的工作機制.

 Ftrace可以在device的UI沒有反應, 但是console還是active的狀況下對kernel進行分析.

Ftrace的功能需要在kernel中開啟相應的config. 此外, 開啟ftrace會給系統帶來額外的overhead, 因此應該在release的版本中儘可能關閉ftrace的功能.

圖 1.Kernel hackin

圖 1. Kernel hacking


圖 2. Tracers


圖 3. 核心支援的跟蹤器列表

R70的kernel中,Ftrace支援的tracer有 wakeup, preemptirqsoff, preemptoff, irqsoff, function, sched_switch共6種.

具體的使用方法可以參考Reference中的連線以及kernel中的documents\trace下的ftrace.txt

得到的一些結果如下:

# tracer: function
#
#           TASK-PID    CPU#    TIMESTAMP  FUNCTION
#              | |       |          |         |
 InputDispatcher-412   [000] 10173.076687: sub_preempt_count <-mnt_want_write
 InputDispatcher-412   [000] 10173.076690: __mark_inode_dirty <-file_update_time
 InputDispatcher-412   [000] 10173.076692: mnt_drop_write <-file_update_time
 InputDispatcher-412   [000] 10173.076694: add_preempt_count <-mnt_drop_write
 InputDispatcher-412   [000] 10173.076697: sub_preempt_count <-mnt_drop_write
 InputDispatcher-412   [000] 10173.076699: inotify_inode_queue_event <-vfs_write
 InputDispatcher-412   [000] 10173.076701: __fsnotify_parent <-vfs_write
 InputDispatcher-412   [000] 10173.076704: inotify_dentry_parent_queue_event <-vfs_write
 InputDispatcher-412   [000] 10173.076706: fsnotify <-vfs_write
 InputDispatcher-412   [000] 10173.076708: fput <-sys_write
 InputDispatcher-412   [000] 10173.076715: sys_clock_gettime <-ret_fast_syscall
 InputDispatcher-412   [000] 10173.076718: posix_ktime_get_ts <-sys_clock_gettime
 InputDispatcher-412   [000] 10173.076720: ktime_get_ts <-posix_ktime_get_ts
 InputDispatcher-412   [000] 10173.076722: s5p_sched_timer_read <-ktime_get_ts
 InputDispatcher-412   [000] 10173.076725: set_normalized_timespec <-ktime_get_ts
 InputDispatcher-412   [000] 10173.076730: sys_clock_gettime <-ret_fast_syscall
 InputDispatcher-412   [000] 10173.076732: posix_ktime_get_ts <-sys_clock_gettime
 InputDispatcher-412   [000] 10173.076735: ktime_get_ts <-posix_ktime_get_ts
 InputDispatcher-412   [000] 10173.076737: s5p_sched_timer_read <-ktime_get_ts
 InputDispatcher-412   [000] 10173.076739: set_normalized_timespec <-ktime_get_ts
 InputDispatcher-412   [000] 10173.076743: sys_clock_gettime <-ret_fast_syscall
 InputDispatcher-412   [000] 10173.076746: posix_ktime_get_ts <-sys_clock_gettime
 InputDispatcher-412   [000] 10173.076748: ktime_get_ts <-posix_ktime_get_ts
 InputDispatcher-412   [000] 10173.076750: s5p_sched_timer_read <-ktime_get_ts
 InputDispatcher-412   [000] 10173.076752: set_normalized_timespec <-ktime_get_ts
 InputDispatcher-412   [000] 10173.076758: sys_epoll_wait <-ret_fast_syscall
 InputDispatcher-412   [000] 10173.076760: fget <-sys_epoll_wait
 InputDispatcher-412   [000] 10173.076763: add_preempt_count <-fget
 InputDispatcher-412   [000] 10173.076765: sub_preempt_count <-fget
 InputDispatcher-412   [000] 10173.076769: _raw_spin_lock_irqsave <-sys_epoll_wait
 InputDispatcher-412   [000] 10173.076771: add_preempt_count <-_raw_spin_lock_irqsave
 InputDispatcher-412   [000] 10173.076774: _raw_spin_unlock_irqrestore <-sys_epoll_wait
 InputDispatcher-412   [000] 10173.076775: sub_preempt_count <-_raw_spin_unlock_irqrestore
 InputDispatcher-412   [000] 10173.076778: ep_scan_ready_list <-sys_epoll_wait
 InputDispatcher-412   [000] 10173.076780: mutex_lock <-ep_scan_ready_list
 InputDispatcher-412   [000] 10173.076782: __might_sleep <-mutex_lock
 InputDispatcher-412   [000] 10173.076785: __mutex_lock_slowpath <-mutex_lock
 InputDispatcher-412   [000] 10173.076787: add_preempt_count <-__mutex_lock_slowpath
 InputDispatcher-412   [000] 10173.076790: sub_preempt_count <-__mutex_lock_slowpath
 InputDispatcher-412   [000] 10173.076792: _raw_spin_lock_irqsave <-ep_scan_ready_list
 InputDispatcher-412   [000] 10173.076794: add_preempt_count <-_raw_spin_lock_irqsave
 InputDispatcher-412   [000] 10173.076797: _raw_spin_unlock_irqrestore <-ep_scan_ready_list
 InputDispatcher-412   [000] 10173.076798: sub_preempt_count <-_raw_spin_unlock_irqrestore
 InputDispatcher-412   [000] 10173.076800: ep_send_events_proc <-ep_scan_ready_list
 InputDispatcher-412   [000] 10173.076803: pipe_poll <-ep_send_events_proc
 InputDispatcher-412   [000] 10173.076805: _raw_spin_lock_irqsave <-ep_scan_ready_list
 InputDispatcher-412   [000] 10173.076808: add_preempt_count <-_raw_spin_lock_irqsave
 InputDispatcher-412   [000] 10173.076810: _raw_spin_unlock_irqrestore <-ep_scan_ready_list
 InputDispatcher-412   [000] 10173.076812: sub_preempt_count <-_raw_spin_unlock_irqrestore
 InputDispatcher-412   [000] 10173.076814: mutex_unlock <-ep_scan_ready_list
 InputDispatcher-412   [000] 10173.076816: __mutex_unlock_slowpath <-mutex_unlock
 InputDispatcher-412   [000] 10173.076819: fput <-sys_epoll_wait
 InputDispatcher-412   [000] 10173.076825: sys_clock_gettime <-ret_fast_syscall
 InputDispatcher-412   [000] 10173.076828: posix_ktime_get_ts <-sys_clock_gettime
 InputDispatcher-412   [000] 10173.076830: ktime_get_ts <-posix_ktime_get_ts
 InputDispatcher-412   [000] 10173.076832: s5p_sched_timer_read <-ktime_get_ts
 InputDispatcher-412   [000] 10173.076835: set_normalized_timespec <-ktime_get_ts
 InputDispatcher-412   [000] 10173.076838: sys_clock_gettime <-ret_fast_syscall
 InputDispatcher-412   [000] 10173.076841: posix_ktime_get_ts <-sys_clock_gettime
 InputDispatcher-412   [000] 10173.076843: ktime_get_ts <-posix_ktime_get_ts
 InputDispatcher-412   [000] 10173.076845: s5p_sched_timer_read <-ktime_get_ts
 InputDispatcher-412   [000] 10173.076848: set_normalized_timespec <-ktime_get_ts
 InputDispatcher-412   [000] 10173.076855: sys_epoll_wait <-ret_fast_syscall
 InputDispatcher-412   [000] 10173.076857: fget <-sys_epoll_wait
 InputDispatcher-412   [000] 10173.076860: add_preempt_count <-fget
 InputDispatcher-412   [000] 10173.076862: sub_preempt_count <-fget
 InputDispatcher-412   [000] 10173.076864: _raw_spin_lock_irqsave <-sys_epoll_wait
 InputDispatcher-412   [000] 10173.076867: add_preempt_count <-_raw_spin_lock_irqsave
 InputDispatcher-412   [000] 10173.076869: _raw_spin_unlock_irqrestore <-sys_epoll_wait
 InputDispatcher-412   [000] 10173.076871: sub_preempt_count <-_raw_spin_unlock_irqrestore
 InputDispatcher-412   [000] 10173.076873: schedule_hrtimeout_range <-sys_epoll_wait
 InputDispatcher-412   [000] 10173.076876: schedule_hrtimeout_range_clock <-schedule_hrtimeout_range
 InputDispatcher-412   [000] 10173.076878: schedule <-schedule_hrtimeout_range_clock
 InputDispatcher-412   [000] 10173.076880: add_preempt_count <-schedule
 InputDispatcher-412   [000] 10173.076882: rcu_note_context_switch <-schedule
 InputDispatcher-412   [000] 10173.076884: rcu_sched_qs <-rcu_note_context_switch
 InputDispatcher-412   [000] 10173.076886: _raw_spin_lock_irq <-schedule
 InputDispatcher-412   [000] 10173.076888: add_preempt_count <-_raw_spin_lock_irq
 InputDispatcher-412   [000] 10173.076890: T.1190 <-schedule
 InputDispatcher-412   [000] 10173.076891: dequeue_task <-T.1190
 InputDispatcher-412   [000] 10173.076893: s5p_sched_timer_read <-sched_clock
 InputDispatcher-412   [000] 10173.076895: dequeue_task_fair <-dequeue_task
 InputDispatcher-412   [000] 10173.076897: dequeue_entity <-dequeue_task_fair
 InputDispatcher-412   [000] 10173.076898: update_curr <-dequeue_entity
 InputDispatcher-412   [000] 10173.076900: calc_delta_mine <-update_curr
 InputDispatcher-412   [000] 10173.076902: update_min_vruntime <-update_curr
 InputDispatcher-412   [000] 10173.076904: cpuacct_charge <-update_curr
 InputDispatcher-412   [000] 10173.076905: add_preempt_count <-cpuacct_charge
 InputDispatcher-412   [000] 10173.076907: sub_preempt_count <-cpuacct_charge
 InputDispatcher-412   [000] 10173.076909: clear_buddies <-dequeue_entity
 InputDispatcher-412   [000] 10173.076911: update_min_vruntime <-dequeue_entity
 InputDispatcher-412   [000] 10173.076913: put_prev_task_fair <-schedule
 InputDispatcher-412   [000] 10173.076915: pick_next_task_fair <-schedule
 InputDispatcher-412   [000] 10173.076916: __pick_next_entity <-pick_next_task_fair
 InputDispatcher-412   [000] 10173.076918: clear_buddies <-pick_next_task_fair
 InputDispatcher-412   [000] 10173.076920: set_next_entity <-pick_next_task_fair
 InputDispatcher-412   [000] 10173.076921: __dequeue_entity <-set_next_entity
 InputDispatcher-412   [000] 10173.076924: _raw_spin_unlock_irq <-schedule
 InputDispatcher-412   [000] 10173.076926: sub_preempt_count <-_raw_spin_unlock_irq
 InputDispatcher-412   [000] 10173.076931: atomic_notifier_call_chain <-__switch_to
 InputDispatcher-412   [000] 10173.076932: __atomic_notifier_call_chain <-atomic_notifier_call_chain
 InputDispatcher-412   [000] 10173.076934: add_preempt_count <-__atomic_notifier_call_chain
 InputDispatcher-412   [000] 10173.076936: notifier_call_chain <-__atomic_notifier_call_chain
 InputDispatcher-412   [000] 10173.076938: thumbee_notifier <-notifier_call_chain
 InputDispatcher-412   [000] 10173.076939: vfp_notifier <-notifier_call_chain
 InputDispatcher-412   [000] 10173.076941: sub_preempt_count <-__atomic_notifier_call_chain
 ity.filemanager-713   [000] 10173.076944: T.1196 <-schedule
 ity.filemanager-713   [000] 10173.076947: sub_preempt_count <-schedule
 ity.filemanager-713   [000] 10173.076950: _raw_spin_lock_irqsave <-sys_epoll_wait
 ity.filemanager-713   [000] 10173.076952: add_preempt_count <-_raw_spin_lock_irqsave
 ity.filemanager-713   [000] 10173.076955: _raw_spin_unlock_irqrestore <-sys_epoll_wait
 ity.filemanager-713   [000] 10173.076956: sub_preempt_count <-_raw_spin_unlock_irqrestore
 ity.filemanager-713   [000] 10173.076959: ep_scan_ready_list <-sys_epoll_wait
 ity.filemanager-713   [000] 10173.076961: mutex_lock <-ep_scan_ready_list
 ity.filemanager-713   [000] 10173.076963: __might_sleep <-mutex_lock
 ity.filemanager-713   [000] 10173.076965: __mutex_lock_slowpath <-mutex_lock
 ity.filemanager-713   [000] 10173.076968: add_preempt_count <-__mutex_lock_slowpath
 ity.filemanager-713   [000] 10173.076971: sub_preempt_count <-__mutex_lock_slowpath
 ity.filemanager-713   [000] 10173.076973: _raw_spin_lock_irqsave <-ep_scan_ready_list
 ity.filemanager-713   [000] 10173.076975: add_preempt_count <-_raw_spin_lock_irqsave
 ity.filemanager-713   [000] 10173.076977: _raw_spin_unlock_irqrestore <-ep_scan_ready_list
 ity.filemanager-713   [000] 10173.076979: sub_preempt_count <-_raw_spin_unlock_irqrestore
 ity.filemanager-713   [000] 10173.076981: ep_send_events_proc <-ep_scan_ready_list
 ity.filemanager-713   [000] 10173.076984: pipe_poll <-ep_send_events_proc
 ity.filemanager-713   [000] 10173.076987: _raw_spin_lock_irqsave <-ep_scan_ready_list
 ity.filemanager-713   [000] 10173.076989: add_preempt_count <-_raw_spin_lock_irqsave
 ity.filemanager-713   [000] 10173.076992: _raw_spin_unlock_irqrestore <-ep_scan_ready_list
 ity.filemanager-713   [000] 10173.076994: sub_preempt_count <-_raw_spin_unlock_irqrestore
 ity.filemanager-713   [000] 10173.076996: mutex_unlock <-ep_scan_ready_list
 ity.filemanager-713   [000] 10173.076998: __mutex_unlock_slowpath <-mutex_unlock
 ity.filemanager-713   [000] 10173.077001: fput <-sys_epoll_wait
 ity.filemanager-713   [000] 10173.077018: sys_read <-ret_fast_syscall
 ity.filemanager-713   [000] 10173.077020: fget_light <-sys_read
 ity.filemanager-713   [000] 10173.077023: add_preempt_count <-fget_light
 ity.filemanager-713   [000] 10173.077026: sub_preempt_count <-fget_light
 ity.filemanager-713   [000] 10173.077028: vfs_read <-sys_read
 ity.filemanager-713   [000] 10173.077030: rw_verify_area <-vfs_read
 ity.filemanager-713   [000] 10173.077033: do_sync_read <-vfs_read
 ity.filemanager-713   [000] 10173.077035: pipe_read <-do_sync_read
 ity.filemanager-713   [000] 10173.077037: mutex_lock <-pipe_read
 ity.filemanager-713   [000] 10173.077040: __might_sleep <-mutex_lock
 ity.filemanager-713   [000] 10173.077042: __mutex_lock_slowpath <-mutex_lock
 ity.filemanager-713   [000] 10173.077045: add_preempt_count <-__mutex_lock_slowpath
 ity.filemanager-713   [000] 10173.077047: sub_preempt_count <-__mutex_lock_slowpath
 ity.filemanager-713   [000] 10173.077050: generic_pipe_buf_confirm <-pipe_read
 ity.filemanager-713   [000] 10173.077052: generic_pipe_buf_map <-pipe_read
 ity.filemanager-713   [000] 10173.077054: add_preempt_count <-generic_pipe_buf_map
 ity.filemanager-713   [000] 10173.077057: generic_pipe_buf_unmap <-pipe_read
 ity.filemanager-713   [000] 10173.077059: sub_preempt_count <-generic_pipe_buf_unmap
 ity.filemanager-713   [000] 10173.077061: anon_pipe_buf_release <-pipe_read
 ity.filemanager-713   [000] 10173.077063: mutex_unlock <-pipe_read
 ity.filemanager-713   [000] 10173.077066: __mutex_unlock_slowpath <-mutex_unlock
 ity.filemanager-713   [000] 10173.077068: __wake_up_sync <-pipe_read
 ity.filemanager-713   [000] 10173.077071: __wake_up_sync_key <-__wake_up_sync
 ity.filemanager-713   [000] 10173.077073: _raw_spin_lock_irqsave <-__wake_up_sync_key
 ity.filemanager-713   [000] 10173.077075: add_preempt_count <-_raw_spin_lock_irqsave
 ity.filemanager-713   [000] 10173.077078: __wake_up_common <-__wake_up_sync_key
 ity.filemanager-713   [000] 10173.077080: ep_poll_callback <-__wake_up_common
 ity.filemanager-713   [000] 10173.077081: _raw_spin_lock_irqsave <-ep_poll_callback
 ity.filemanager-713   [000] 10173.077083: add_preempt_count <-_raw_spin_lock_irqsave
 ity.filemanager-713   [000] 10173.077085: _raw_spin_unlock_irqrestore <-ep_poll_callback
 ity.filemanager-713   [000] 10173.077087: sub_preempt_count <-_raw_spin_unlock_irqrestore
 ity.filemanager-713   [000] 10173.077089: _raw_spin_unlock_irqrestore <-__wake_up_sync_key
 ity.filemanager-713   [000] 10173.077090: sub_preempt_count <-_raw_spin_unlock_irqrestore
 ity.filemanager-713   [000] 10173.077093: kill_fasync <-pipe_read
 ity.filemanager-713   [000] 10173.077095: touch_atime <-pipe_read
 ity.filemanager-713   [000] 10173.077098: current_fs_time <-touch_atime
 ity.filemanager-713   [000] 10173.077100: current_kernel_time <-current_fs_time
 ity.filemanager-713   [000] 10173.077102: timespec_trunc <-current_fs_time
 ity.filemanager-713   [000] 10173.077104: mnt_want_write <-touch_atime
 ity.filemanager-713   [000] 10173.077109: add_preempt_count <-mnt_want_write
 ity.filemanager-713   [000] 10173.077112: __mnt_is_readonly <-mnt_want_write
 ity.filemanager-713   [000] 10173.077113: sub_preempt_count <-mnt_want_write
 ity.filemanager-713   [000] 10173.077116: __mark_inode_dirty <-touch_atime
 ity.filemanager-713   [000] 10173.077118: mnt_drop_write <-touch_atime
 ity.filemanager-713   [000] 10173.077120: add_preempt_count <-mnt_drop_write
 ity.filemanager-713   [000] 10173.077123: sub_preempt_count <-mnt_drop_write
 ity.filemanager-713   [000] 10173.077125: inotify_inode_queue_event <-vfs_read
 ity.filemanager-713   [000] 10173.077127: __fsnotify_parent <-vfs_read
 ity.filemanager-713   [000] 10173.077130: inotify_dentry_parent_queue_event <-vfs_read
 ity.filemanager-713   [000] 10173.077132: fsnotify <-vfs_read
 ity.filemanager-713   [000] 10173.077135: fput <-sys_read
 ity.filemanager-713   [000] 10173.077139: sys_ioctl <-ret_fast_syscall
 ity.filemanager-713   [000] 10173.077142: fget_light <-sys_ioctl
 ity.filemanager-713   [000] 10173.077144: add_preempt_count <-fget_light
 ity.filemanager-713   [000] 10173.077146: sub_preempt_count <-fget_light
 ity.filemanager-713   [000] 10173.077148: do_vfs_ioctl <-sys_ioctl
 ity.filemanager-713   [000] 10173.077151: vfs_ioctl <-do_vfs_ioctl
 ity.filemanager-713   [000] 10173.077153: ashmem_ioctl <-vfs_ioctl
 ity.filemanager-713   [000] 10173.077156: mutex_lock <-ashmem_ioctl
 ity.filemanager-713   [000] 10173.077158: __might_sleep <-mutex_lock
 ity.filemanager-713   [000] 10173.077160: __mutex_lock_slowpath <-mutex_lock
 ity.filemanager-713   [000] 10173.077162: add_preempt_count <-__mutex_lock_slowpath
 ity.filemanager-713   [000] 10173.077165: sub_preempt_count <-__mutex_lock_slowpath
 ity.filemanager-713   [000] 10173.077167: mutex_unlock <-ashmem_ioctl
 ity.filemanager-713   [000] 10173.077170: __mutex_unlock_slowpath <-mutex_unlock
 ity.filemanager-713   [000] 10173.077173: fput <-sys_ioctl
 ity.filemanager-713   [000] 10173.077240: sys_write <-ret_fast_syscall
 ity.filemanager-713   [000] 10173.077243: fget_light <-sys_write
 ity.filemanager-713   [000] 10173.077246: add_preempt_count <-fget_light
 ity.filemanager-713   [000] 10173.077248: sub_preempt_count <-fget_light
 ity.filemanager-713   [000] 10173.077251: vfs_write <-sys_write
 ity.filemanager-713   [000] 10173.077253: rw_verify_area <-vfs_write
 ity.filemanager-713   [000] 10173.077255: do_sync_write <-vfs_write
 ity.filemanager-713   [000] 10173.077258: pipe_write <-do_sync_write
 ity.filemanager-713   [000] 10173.077260: mutex_lock <-pipe_write
 ity.filemanager-713   [000] 10173.077262: __might_sleep <-mutex_lock
 ity.filemanager-713   [000] 10173.077265: __mutex_lock_slowpath <-mutex_lock
 ity.filemanager-713   [000] 10173.077267: add_preempt_count <-__mutex_lock_slowpath
 ity.filemanager-713   [000] 10173.077270: sub_preempt_count <-__mutex_lock_slowpath
 ity.filemanager-713   [000] 10173.077273: iov_fault_in_pages_read <-pipe_write
 ity.filemanager-713   [000] 10173.077275: add_preempt_count <-pipe_write
 ity.filemanager-713   [000] 10173.077278: pipe_iov_copy_from_user <-pipe_write
 ity.filemanager-713   [000] 10173.077279: sub_preempt_count <-pipe_write
 ity.filemanager-713   [000] 10173.077282: mutex_unlock <-pipe_write
 ity.filemanager-713   [000] 10173.077284: __mutex_unlock_slowpath <-mutex_unlock
 ity.filemanager-713   [000] 10173.077287: __wake_up_sync <-pipe_write
 ity.filemanager-713   [000] 10173.077289: __wake_up_sync_key <-__wake_up_sync
 ity.filemanager-713   [000] 10173.077291: _raw_spin_lock_irqsave <-__wake_up_sync_key
 ity.filemanager-713   [000] 10173.077294: add_preempt_count <-_raw_spin_lock_irqsave
 ity.filemanager-713   [000] 10173.077296: __wake_up_common <-__wake_up_sync_key
 ity.filemanager-713   [000] 10173.077298: ep_poll_callback <-__wake_up_common
 ity.filemanager-713   [000] 10173.077300: _raw_spin_lock_irqsave <-ep_poll_callback
 ity.filemanager-713   [000] 10173.077301: add_preempt_count <-_raw_spin_lock_irqsave
 ity.filemanager-713   [000] 10173.077303: _raw_spin_unlock_irqrestore <-ep_poll_callback
 ity.filemanager-713   [000] 10173.077305: sub_preempt_count <-_raw_spin_unlock_irqrestore
 ity.filemanager-713   [000] 10173.077307: _raw_spin_unlock_irqrestore <-__wake_up_sync_key
 ity.filemanager-713   [000] 10173.077309: sub_preempt_count <-_raw_spin_unlock_irqrestore
 ity.filemanager-713   [000] 10173.077311: kill_fasync <-pipe_write
 ity.filemanager-713   [000] 10173.077313: file_update_time <-pipe_write
 ity.filemanager-713   [000] 10173.077316: current_fs_time <-file_update_time
 ity.filemanager-713   [000] 10173.077318: current_kernel_time <-current_fs_time
 ity.filemanager-713   [000] 10173.077321: timespec_trunc <-current_fs_time
 ity.filemanager-713   [000] 10173.077323: mnt_want_write_file <-file_update_time
 ity.filemanager-713   [000] 10173.077326: mnt_want_write <-mnt_want_write_file
 ity.filemanager-713   [000] 10173.077328: add_preempt_count <-mnt_want_write
 ity.filemanager-713   [000] 10173.077330: __mnt_is_readonly <-mnt_want_write
 ity.filemanager-713   [000] 10173.077332: sub_preempt_count <-mnt_want_write
 ity.filemanager-713   [000] 10173.077334: __mark_inode_dirty <-file_update_time
 ity.filemanager-713   [000] 10173.077337: mnt_drop_write <-file_update_time
 ity.filemanager-713   [000] 10173.077339: add_preempt_count <-mnt_drop_write
 ity.filemanager-713   [000] 10173.077341: sub_preempt_count <-mnt_drop_write
 ity.filemanager-713   [000] 10173.077344: inotify_inode_queue_event <-vfs_write
 ity.filemanager-713   [000] 10173.077346: __fsnotify_parent <-vfs_write
 ity.filemanager-713   [000] 10173.077348: inotify_dentry_parent_queue_event <-vfs_write
 ity.filemanager-713   [000] 10173.077351: fsnotify <-vfs_write
 ity.filemanager-713   [000] 10173.077353: fput <-sys_write
 ity.filemanager-713   [000] 10173.077364: sys_clock_gettime <-ret_fast_syscall
 ity.filemanager-713   [000] 10173.077367: posix_ktime_get_ts <-sys_clock_gettime
 ity.filemanager-713   [000] 10173.077369: ktime_get_ts <-posix_ktime_get_ts
 ity.filemanager-713   [000] 10173.077371: s5p_sched_timer_read <-ktime_get_ts
 ity.filemanager-713   [000] 10173.077374: set_normalized_timespec <-ktime_get_ts
 ity.filemanager-713   [000] 10173.077437: sys_write <-ret_fast_syscall
 ity.filemanager-713   [000] 10173.077440: fget_light <-sys_write
 ity.filemanager-713   [000] 10173.077442: add_preempt_count <-fget_light
 ity.filemanager-713   [000] 10173.077445: sub_preempt_count <-fget_light
 ity.filemanager-713   [000] 10173.077447: vfs_write <-sys_write
 ity.filemanager-713   [000] 10173.077450: rw_verify_area <-vfs_write
 ity.filemanager-713   [000] 10173.077452: do_sync_write <-vfs_write
 ity.filemanager-713   [000] 10173.077454: pipe_write <-do_sync_write
 ity.filemanager-713   [000] 10173.077457: mutex_lock <-pipe_write
 ity.filemanager-713   [000] 10173.077459: __might_sleep <-mutex_lock
 ity.filemanager-713   [000] 10173.077461: __mutex_lock_slowpath <-mutex_lock
 ity.filemanager-713   [000] 10173.077463: add_preempt_count <-__mutex_lock_slowpath
 ity.filemanager-713   [000] 10173.077467: sub_preempt_count <-__mutex_lock_slowpath
 ity.filemanager-713   [000] 10173.077469: iov_fault_in_pages_read <-pipe_write
 ity.filemanager-713   [000] 10173.077472: add_preempt_count <-pipe_write
 ity.filemanager-713   [000] 10173.077474: pipe_iov_copy_from_user <-pipe_write
 ity.filemanager-713   [000] 10173.077476: sub_preempt_count <-pipe_write
 ity.filemanager-713   [000] 10173.077478: mutex_unlock <-pipe_write
 ity.filemanager-713   [000] 10173.077481: __mutex_unlock_slowpath <-mutex_unlock
 ity.filemanager-713   [000] 10173.077484: __wake_up_sync <-pipe_write
 ity.filemanager-713   [000] 10173.077486: __wake_up_sync_key <-__wake_up_sync
 ity.filemanager-713   [000] 10173.077488: _raw_spin_lock_irqsave <-__wake_up_sync_key
 ity.filemanager-713   [000] 10173.077491: add_preempt_count <-_raw_spin_lock_irqsave
 ity.filemanager-713   [000] 10173.077493: __wake_up_common <-__wake_up_sync_key
 ity.filemanager-713   [000] 10173.077495: ep_poll_callback <-__wake_up_common
 ity.filemanager-713   [000] 10173.077497: _raw_spin_lock_irqsave <-ep_poll_callback
 ity.filemanager-713   [000] 10173.077499: add_preempt_count <-_raw_spin_lock_irqsave
 ity.filemanager-713   [000] 10173.077500: __wake_up_locked <-ep_poll_callback
 ity.filemanager-713   [000] 10173.077502: __wake_up_common <-__wake_up_locked
 ity.filemanager-713   [000] 10173.077504: default_wake_function <-__wake_up_common
 ity.filemanager-713   [000] 10173.077506: try_to_wake_up <-default_wake_function
 ity.filemanager-713   [000] 10173.077508: add_preempt_count <-try_to_wake_up
 ity.filemanager-713   [000] 10173.077509: task_rq_lock <-try_to_wake_up
 ity.filemanager-713   [000] 10173.077511: _raw_spin_lock <-task_rq_lock
 ity.filemanager-713   [000] 10173.077513: add_preempt_count <-_raw_spin_lock
 ity.filemanager-713   [000] 10173.077515: activate_task <-try_to_wake_up
 ity.filemanager-713   [000] 10173.077516: enqueue_task <-activate_task
 ity.filemanager-713   [000] 10173.077518: s5p_sched_timer_read <-sched_clock
 ity.filemanager-713   [000] 10173.077520: enqueue_task_fair <-enqueue_task
 ity.filemanager-713   [000] 10173.077522: enqueue_entity <-enqueue_task_fair
 ity.filemanager-713   [000] 10173.077524: update_curr <-enqueue_entity
 ity.filemanager-713   [000] 10173.077525: update_min_vruntime <-update_curr
 ity.filemanager-713   [000] 10173.077527: cpuacct_charge <-update_curr
 ity.filemanager-713   [000] 10173.077529: add_preempt_count <-cpuacct_charge
 ity.filemanager-713   [000] 10173.077532: sub_preempt_count <-cpuacct_charge
 ity.filemanager-713   [000] 10173.077534: place_entity <-enqueue_entity
 ity.filemanager-713   [000] 10173.077536: __enqueue_entity <-enqueue_entity
 ity.filemanager-713   [000] 10173.077538: check_preempt_wakeup <-try_to_wake_up
 ity.filemanager-713   [000] 10173.077540: update_curr <-check_preempt_wakeup
 ity.filemanager-713   [000] 10173.077542: wakeup_preempt_entity <-check_preempt_wakeup
 ity.filemanager-713   [000] 10173.077544: calc_delta_mine <-wakeup_preempt_entity
 ity.filemanager-713   [000] 10173.077546: resched_task <-check_preempt_wakeup
 ity.filemanager-713   [000] 10173.077548: _raw_spin_unlock_irqrestore <-try_to_wake_up
 ity.filemanager-713   [000] 10173.077550: sub_preempt_count <-_raw_spin_unlock_irqrestore
 ity.filemanager-713   [000] 10173.077551: preempt_schedule <-_raw_spin_unlock_irqrestore
 ity.filemanager-713   [000] 10173.077553: sub_preempt_count <-try_to_wake_up
 ity.filemanager-713   [000] 10173.077555: preempt_schedule <-try_to_wake_up
 ity.filemanager-713   [000] 10173.077556: _raw_spin_unlock_irqrestore <-ep_poll_callback
 ity.filemanager-713   [000] 10173.077558: sub_preempt_count <-_raw_spin_unlock_irqrestore
 ity.filemanager-713   [000] 10173.077560: preempt_schedule <-_raw_spin_unlock_irqrestore
 ity.filemanager-713   [000] 10173.077562: _raw_spin_unlock_irqrestore <-__wake_up_sync_key
 ity.filemanager-713   [000] 10173.077564: sub_preempt_count <-_raw_spin_unlock_irqrestore
 ity.filemanager-713   [000] 10173.077566: preempt_schedule <-_raw_spin_unlock_irqrestore
 ity.filemanager-713   [000] 10173.077568: add_preempt_count <-preempt_schedule
 ity.filemanager-713   [000] 10173.077571: schedule <-preempt_schedule
 ity.filemanager-713   [000] 10173.077572: add_preempt_count <-schedule
 ity.filemanager-713   [000] 10173.077574: rcu_note_context_switch <-schedule
 ity.filemanager-713   [000] 10173.077576: rcu_sched_qs <-rcu_note_context_switch
 ity.filemanager-713   [000] 10173.077578: _raw_spin_lock_irq <-schedule
 ity.filemanager-713   [000] 10173.077579: add_preempt_count <-_raw_spin_lock_irq
 ity.filemanager-713   [000] 10173.077581: s5p_sched_timer_read <-sched_clock
 ity.filemanager-713   [000] 10173.077583: put_prev_task_fair <-schedule
 ity.filemanager-713   [000] 10173.077585: update_curr <-put_prev_task_fair
 ity.filemanager-713   [000] 10173.077587: update_min_vruntime <-update_curr
 ity.filemanager-713   [000] 10173.077588: cpuacct_charge <-update_curr
 ity.filemanager-713   [000] 10173.077590: add_preempt_count <-cpuacct_charge
 ity.filemanager-713   [000] 10173.077592: sub_preempt_count <-cpuacct_charge
 ity.filemanager-713   [000] 10173.077594: __enqueue_entity <-put_prev_task_fair
 ity.filemanager-713   [000] 10173.077596: pick_next_task_fair <-schedule
 ity.filemanager-713   [000] 10173.077598: __pick_next_entity <-pick_next_task_fair
 ity.filemanager-713   [000] 10173.077600: clear_buddies <-pick_next_task_fair
 ity.filemanager-713   [000] 10173.077601: set_next_entity <-pick_next_task_fair
 ity.filemanager-713   [000] 10173.077603: __dequeue_entity <-set_next_entity
 ity.filemanager-713   [000] 10173.077606: _raw_spin_unlock_irq <-schedule
 ity.filemanager-713   [000] 10173.077607: sub_preempt_count <-_raw_spin_unlock_irq
 ity.filemanager-713   [000] 10173.077611: atomic_notifier_call_chain <-__switch_to
 ity.filemanager-713   [000] 10173.077613: __atomic_notifier_call_chain <-atomic_notifier_call_chain
 ity.filemanager-713   [000] 10173.077615: add_preempt_count <-__atomic_notifier_call_chain
 ity.filemanager-713   [000] 10173.077619: notifier_call_chain <-__atomic_notifier_call_chain
 ity.filemanager-713   [000] 10173.077621: thumbee_notifier <-notifier_call_chain
 ity.filemanager-713   [000] 10173.077623: vfp_notifier <-notifier_call_chain
 ity.filemanager-713   [000] 10173.077624: sub_preempt_count <-__atomic_notifier_call_chain
 InputDispatcher-412   [000] 10173.077627: T.1196 <-schedule
 InputDispatcher-412   [000] 10173.077629: sub_preempt_count <-schedule
 InputDispatcher-412   [000] 10173.077632: _raw_spin_lock_irqsave <-sys_epoll_wait
 InputDispatcher-412   [000] 10173.077634: add_preempt_count <-_raw_spin_lock_irqsave
 InputDispatcher-412   [000] 10173.077637: _raw_spin_unlock_irqrestore <-sys_epoll_wait
 InputDispatcher-412   [000] 10173.077639: sub_preempt_count <-_raw_spin_unlock_irqrestore
 InputDispatcher-412   [000] 10173.077641: ep_scan_ready_list <-sys_epoll_wait
 InputDispatcher-412   [000] 10173.077643: mutex_lock <-ep_scan_ready_list
 InputDispatcher-412   [000] 10173.077646: __might_sleep <-mutex_lock
 InputDispatcher-412   [000] 10173.077648: __mutex_lock_slowpath <-mutex_lock
 InputDispatcher-412   [000] 10173.077650: add_preempt_count <-__mutex_lock_slowpath
 InputDispatcher-412   [000] 10173.077653: sub_preempt_count <-__mutex_lock_slowpath
 InputDispatcher-412   [000] 10173.077655: _raw_spin_lock_irqsave <-ep_scan_ready_list
 InputDispatcher-412   [000] 10173.077658: add_preempt_count <-_raw_spin_lock_irqsave
 InputDispatcher-412   [000] 10173.077660: _raw_spin_unlock_irqrestore <-ep_scan_ready_list
 InputDispatcher-412   [000] 10173.077662: sub_preempt_count <-_raw_spin_unlock_irqrestore
 InputDispatcher-412   [000] 10173.077664: ep_send_events_proc <-ep_scan_ready_list
 InputDispatcher-412   [000] 10173.077667: pipe_poll <-ep_send_events_proc
 InputDispatcher-412   [000] 10173.077669: _raw_spin_lock_irqsave <-ep_scan_ready_list
 InputDispatcher-412   [000] 10173.077672: add_preempt_count <-_raw_spin_lock_irqsave
 InputDispatcher-412   [000] 10173.077674: _raw_spin_unlock_irqrestore <-ep_scan_ready_list
 InputDispatcher-412   [000] 10173.077676: sub_preempt_count <-_raw_spin_unlock_irqrestore
 InputDispatcher-412   [000] 10173.077678: mutex_unlock <-ep_scan_ready_list
 InputDispatcher-412   [000] 10173.077680: __mutex_unlock_slowpath <-mutex_unlock
 InputDispatcher-412   [000] 10173.077684: fput <-sys_epoll_wait
 InputDispatcher-412   [000] 10173.077693: sys_clock_gettime <-ret_fast_syscall
 InputDispatcher-412   [000] 10173.077696: posix_ktime_get_ts <-sys_clock_gettime
 InputDispatcher-412   [000] 10173.077698: ktime_get_ts <-posix_ktime_get_ts
 InputDispatcher-412   [000] 10173.077701: s5p_sched_timer_read <-ktime_get_ts
 InputDispatcher-412   [000] 10173.077703: set_normalized_timespec <-ktime_get_ts
 InputDispatcher-412   [000] 10173.077708: sys_read <-ret_fast_syscall
 InputDispatcher-412   [000] 10173.077710: fget_light <-sys_read
 InputDispatcher-412   [000] 10173.077712: add_preempt_count <-fget_light
 InputDispatcher-412   [000] 10173.077715: sub_preempt_count <-fget_light
 InputDispatcher-412   [000] 10173.077717: vfs_read <-sys_read
 InputDispatcher-412   [000] 10173.077720: rw_verify_area <-vfs_read
 InputDispatcher-412   [000] 10173.077722: do_sync_read <-vfs_read
 InputDispatcher-412   [000] 10173.077724: pipe_read <-do_sync_read
 InputDispatcher-412   [000] 10173.077727: mutex_lock <-pipe_read
 InputDispatcher-412   [000] 10173.077729: __might_sleep <-mutex_lock
 InputDispatcher-412   [000] 10173.077731: __mutex_lock_slowpath <-mutex_lock
 InputDispatcher-412   [000] 10173.077733: add_preempt_count <-__mutex_lock_slowpath
 InputDispatcher-412   [000] 10173.077736: sub_preempt_count <-__mutex_lock_slowpath
 InputDispatcher-412   [000] 10173.077739: generic_pipe_buf_confirm <-pipe_read
 InputDispatcher-412   [000] 10173.077741: generic_pipe_buf_map <-pipe_read
 InputDispatcher-412   [000] 10173.077743: add_preempt_count <-generic_pipe_buf_map
 InputDispatcher-412   [000] 10173.077746: generic_pipe_buf_unmap <-pipe_read
 InputDispatcher-412   [000] 10173.077747: sub_preempt_count <-generic_pipe_buf_unmap
 InputDispatcher-412   [000] 10173.077750: anon_pipe_buf_release <-pipe_read
 InputDispatcher-412   [000] 10173.077752: mutex_unlock <-pipe_read
 InputDispatcher-412   [000] 10173.077754: __mutex_unlock_slowpath <-mutex_unlock
 InputDispatcher-412   [000] 10173.077757: __wake_up_sync <-pipe_read
 InputDispatcher-412   [000] 10173.077759: __wake_up_sync_key <-__wake_up_sync
 InputDispatcher-412   [000] 10173.077762: _raw_spin_lock_irqsave <-__wake_up_sync_key
 InputDispatcher-412   [000] 10173.077764: add_preempt_count <-_raw_spin_lock_irqsave
 InputDispatcher-412   [000] 10173.077766: __wake_up_common <-__wake_up_sync_key
 InputDispatcher-412   [000] 10173.077768: ep_poll_callback <-__wake_up_common
 InputDispatcher-412   [000] 10173.077770: _raw_spin_lock_irqsave <-ep_poll_callback
 InputDispatcher-412   [000] 10173.077772: add_preempt_count <-_raw_spin_lock_irqsave
 InputDispatcher-412   [000] 10173.077774: _raw_spin_unlock_irqrestore <-ep_poll_callback
 InputDispatcher-412   [000] 10173.077775: sub_preempt_count <-_raw_spin_unlock_irqrestore
 InputDispatcher-412   [000] 10173.077777: _raw_spin_unlock_irqrestore <-__wake_up_sync_key
 InputDispatcher-412   [000] 10173.077779: sub_preempt_count <-_raw_spin_unlock_irqrestore
 InputDispatcher-412   [000] 10173.077781: kill_fasync <-pipe_read
 InputDispatcher-412   [000] 10173.077784: touch_atime <-pipe_read
 InputDispatcher-412   [000] 10173.077786: current_fs_time <-touch_atime
 InputDispatcher-412   [000] 10173.077788: current_kernel_time <-current_fs_time
 InputDispatcher-412   [000] 10173.077790: timespec_trunc <-current_fs_time
 InputDispatcher-412   [000] 10173.077793: mnt_want_write <-touch_atime
 InputDispatcher-412   [000] 10173.077795: add_preempt_count <-mnt_want_write
 InputDispatcher-412   [000] 10173.077798: __mnt_is_readonly <-mnt_want_write
 InputDispatcher-412   [000] 10173.077799: sub_preempt_count <-mnt_want_write
 InputDispatcher-412   [000] 10173.077802: __mark_inode_dirty <-touch_atime
 InputDispatcher-412   [000] 10173.077804: mnt_drop_write <-touch_atime
 InputDispatcher-412   [000] 10173.077806: add_preempt_count <-mnt_drop_write
 InputDispatcher-412   [000] 10173.077808: sub_preempt_count <-mnt_drop_write
 InputDispatcher-412   [000] 10173.077811: inotify_inode_queue_event <-vfs_read
 InputDispatcher-412   [000] 10173.077813: __fsnotify_parent <-vfs_read
 InputDispatcher-412   [000] 10173.077815: inotify_dentry_parent_queue_event <-vfs_read
 InputDispatcher-412   [000] 10173.077818: fsnotify <-vfs_read
 InputDispatcher-412   [000] 10173.077820: fput <-sys_read
 InputDispatcher-412   [000] 10173.077826: sys_ioctl <-ret_fast_syscall
 InputDispatcher-412   [000] 10173.077828: fget_light <-sys_ioctl
 InputDispatcher-412   [000] 10173.077830: add_preempt_count <-fget_light
 InputDispatcher-412   [000] 10173.077833: sub_preempt_count <-fget_light
 InputDispatcher-412   [000] 10173.077835: do_vfs_ioctl <-sys_ioctl
 InputDispatcher-412   [000] 10173.077838: vfs_ioctl <-do_vfs_ioctl
 InputDispatcher-412   [000] 10173.077840: ashmem_ioctl <-vfs_ioctl
 InputDispatcher-412   [000] 10173.077842: mutex_lock <-ashmem_ioctl
 InputDispatcher-412   [000] 10173.077844: __might_sleep <-mutex_lock
 InputDispatcher-412   [000] 10173.077847: __mutex_lock_slowpath <-mutex_lock
 InputDispatcher-412   [000] 10173.077849: add_preempt_count <-__mutex_lock_slowpath
 InputDispatcher-412   [000] 10173.077852: sub_preempt_count <-__mutex_lock_slowpath
 InputDispatcher-412   [000] 10173.077854: range_alloc <-ashmem_ioctl
 InputDispatcher-412   [000] 10173.077857: kmem_cache_alloc <-range_alloc
 InputDispatcher-412   [000] 10173.077859: __might_sleep <-kmem_cache_alloc
 InputDispatcher-412   [000] 10173.077864: mutex_unlock <-ashmem_ioctl
 InputDispatcher-412   [000] 10173.077866: __mutex_unlock_slowpath <-mutex_unlock
 InputDispatcher-412   [000] 10173.077869: fput <-sys_ioctl
 InputDispatcher-412   [000] 10173.077881: sys_clock_gettime <-ret_fast_syscall
 InputDispatcher-412   [000] 10173.077883: posix_ktime_get_ts <-sys_clock_gettime
 InputDispatcher-412   [000] 10173.077886: ktime_get_ts <-posix_ktime_get_ts
 InputDispatcher-412   [000] 10173.077888: s5p_sched_timer_read <-ktime_get_ts
 InputDispatcher-412   [000] 10173.077890: set_normalized_timespec <-ktime_get_ts
 InputDispatcher-412   [000] 10173.077894: sys_clock_gettime <-ret_fast_syscall
 InputDispatcher-412   [000] 10173.077896: posix_ktime_get_ts <-sys_clock_gettime
 InputDispatcher-412   [000] 10173.077899: ktime_get_ts <-posix_ktime_get_ts
 InputDispatcher-412   [000] 10173.077901: s5p_sched_timer_read <-ktime_get_ts
 InputDispatcher-412   [000] 10173.077903: set_normalized_timespec <-ktime_get_ts
 InputDispatcher-412   [000] 10173.077910: sys_epoll_wait <-ret_fast_syscall
 InputDispatcher-412   [000] 10173.077913: fget <-sys_epoll_wait
 InputDispatcher-412   [000] 10173.077915: add_preempt_count <-fget
 InputDispatcher-412   [000] 10173.077918: sub_preempt_count <-fget
 InputDispatcher-412   [000] 10173.077920: _raw_spin_lock_irqsave <-sys_epoll_wait
 InputDispatcher-412   [000] 10173.077923: add_preempt_count <-_raw_spin_lock_irqsave
 InputDispatcher-412   [000] 10173.077925: _raw_spin_unlock_irqrestore <-sys_epoll_wait
 InputDispatcher-412   [000] 10173.077927: sub_preempt_count <-_raw_spin_unlock_irqrestore
 InputDispatcher-412   [000] 10173.077929: ep_scan_ready_list <-sys_epoll_wait
 InputDispatcher-412   [000] 10173.077932: mutex_lock <-ep_scan_ready_list
 InputDispatcher-412   [000] 10173.077934: __might_sleep <-mutex_lock
 InputDispatcher-412   [000] 10173.077936: __mutex_lock_slowpath <-mutex_lock
 InputDispatcher-412   [000] 10173.077938: add_preempt_count <-__mutex_lock_slowpath
 InputDispatcher-412   [000] 10173.077941: sub_preempt_count <-__mutex_lock_slowpath
 InputDispatcher-412   [000] 10173.077944: _raw_spin_lock_irqsave <-ep_scan_ready_list
 InputDispatcher-412   [000] 10173.077946: add_preempt_count <-_raw_spin_lock_irqsave
 InputDispatcher-412   [000] 10173.077948: _raw_spin_unlock_irqrestore <-ep_scan_ready_list
 InputDispatcher-412   [000] 10173.077950: sub_preempt_count <-_raw_spin_unlock_irqrestore
 InputDispatcher-412   [000] 10173.077952: ep_send_events_proc <-ep_scan_ready_list
 InputDispatcher-412   [000] 10173.077955: pipe_poll <-ep_send_events_proc
 InputDispatcher-412   [000] 10173.077957: _raw_spin_lock_irqsave <-ep_scan_ready_list
 InputDispatcher-412   [000] 10173.077959: add_preempt_count <-_raw_spin_lock_irqsave
 InputDispatcher-412   [000] 10173.077962: _raw_spin_unlock_irqrestore <-ep_scan_ready_list
 InputDispatcher-412   [000] 10173.077964: sub_preempt_count <-_raw_spin_unlock_irqrestore
 InputDispatcher-412   [000] 10173.077966: mutex_unlock <-ep_scan_ready_list
 InputDispatcher-412   [000] 10173.077968: __mutex_unlock_slowpath <-mutex_unlock
 InputDispatcher-412   [000] 10173.077971: _raw_spin_lock_irqsave <-sys_epoll_wait
 InputDispatcher-412   [000] 10173.077974: add_preempt_count <-_raw_spin_lock_irqsave
 InputDispatcher-412   [000] 10173.077976: _raw_spin_unlock_irqrestore <-sys_epoll_wait
 InputDispatcher-412   [000] 10173.077978: sub_preempt_count <-_raw_spin_unlock_irqrestore
 InputDispatcher-412   [000] 10173.077980: schedule_hrtimeout_range <-sys_epoll_wait
 InputDispatcher-412   [000] 10173.077982: schedule_hrtimeout_range_clock <-schedule_hrtimeout_range
 InputDispatcher-412   [000] 10173.077984: schedule <-schedule_hrtimeout_range_clock
 InputDispatcher-412   [000] 10173.077987: add_preempt_count <-schedule
 InputDispatcher-412   [000] 10173.077989: rcu_note_context_switch <-schedule
 InputDispatcher-412   [000] 10173.077991: rcu_sched_qs <-rcu_note_context_switch
 InputDispatcher-412   [000] 10173.077992: _raw_spin_lock_irq <-schedule
 InputDispatcher-412   [000] 10173.077994: add_preempt_count <-_raw_spin_lock_irq
 InputDispatcher-412   [000] 10173.077996: T.1190 <-schedule
 InputDispatcher-412   [000] 10173.077998: dequeue_task <-T.1190
 InputDispatcher-412   [000] 10173.078000: s5p_sched_timer_read <-sched_clock
 InputDispatcher-412   [000] 10173.078002: dequeue_task_fair <-dequeue_task
 InputDispatcher-412   [000] 10173.078003: dequeue_entity <-dequeue_task_fair
 InputDispatcher-412   [000] 10173.078005: update_curr <-dequeue_entity
 InputDispatcher-412   [000] 10173.078007: calc_delta_mine <-update_curr
 InputDispatcher-412   [000] 10173.078009: update_min_vruntime <-update_curr
 InputDispatcher-412   [000] 10173.078010: cpuacct_charge <-update_curr
 InputDispatcher-412   [000] 10173.078012: add_preempt_count <-cpuacct_charge
 InputDispatcher-412   [000] 10173.078014: sub_preempt_count <-cpuacct_charge
 InputDispatcher-412   [000] 10173.078016: clear_buddies <-dequeue_entity
 InputDispatcher-412   [000] 10173.078018: update_min_vruntime <-dequeue_entity
 InputDispatcher-412   [000] 10173.078020: put_prev_task_fair <-schedule
 InputDispatcher-412   [000] 10173.078021: pick_next_task_fair <-schedule
 InputDispatcher-412   [000] 10173.078023: __pick_next_entity <-pick_next_task_fair
 InputDispatcher-412   [000] 10173.078025: clear_buddies <-pick_next_task_fair
 InputDispatcher-412   [000] 10173.078026: set_next_entity <-pick_next_task_fair
 InputDispatcher-412   [000] 10173.078028: __dequeue_entity <-set_next_entity
 InputDispatcher-412   [000] 10173.078033: _raw_spin_unlock_irq <-schedule
 InputDispatcher-412   [000] 10173.078035: sub_preempt_count <-_raw_spin_unlock_irq
 InputDispatcher-412   [000] 10173.078039: atomic_notifier_call_chain <-__switch_to
 InputDispatcher-412   [000] 10173.078040: __atomic_notifier_call_chain <-atomic_notifier_call_chain
 InputDispatcher-412   [000] 10173.078042: add_preempt_count <-__atomic_notifier_call_chain
 InputDispatcher-412   [000] 10173.078044: notifier_call_chain <-__atomic_notifier_call_chain
 InputDispatcher-412   [000] 10173.078046: thumbee_notifier <-notifier_call_chain
 InputDispatcher-412   [000] 10173.078047: vfp_notifier <-notifier_call_chain
 InputDispatcher-412   [000] 10173.078049: sub_preempt_count <-__atomic_notifier_call_chain
 ity.filemanager-713   [000] 10173.078051: T.1196 <-schedule
 ity.filemanager-713   [000] 10173.078053: sub_preempt_count <-schedule
 ity.filemanager-713   [000] 10173.078055: sub_preempt_count <-preempt_schedule
 ity.filemanager-713   [000] 10173.078057: kill_fasync <-pipe_write
 ity.filemanager-713   [000] 10173.078059: file_update_time <-pipe_write
 ity.filemanager-713   [000] 10173.078062: current_fs_time <-file_update_time
 ity.filemanager-713   [000] 10173.078064: current_kernel_time <-current_fs_time
 ity.filemanager-713   [000] 10173.078066: timespec_trunc <-current_fs_time
 ity.filemanager-713   [000] 10173.078069: mnt_want_write_file <-file_update_time
 ity.filemanager-713   [000] 10173.078071: mnt_want_write <-mnt_want_write_file
 ity.filemanager-713   [000] 10173.078073: add_preempt_count <-mnt_want_write
 ity.filemanager-713   [000] 10173.078075: __mnt_is_readonly <-mnt_want_write
 ity.filemanager-713   [000] 10173.078077: sub_preempt_count <-mnt_want_write
 ity.filemanager-713   [000] 10173.078079: __mark_inode_dirty <-file_update_time
 ity.filemanager-713   [000] 10173.078082: mnt_drop_write <-file_update_time
 ity.filemanager-713   [000] 10173.078084: add_preempt_count <-mnt_drop_write
 ity.filemanager-713   [000] 10173.078086: sub_preempt_count <-mnt_drop_write
 ity.filemanager-713   [000] 10173.078089: inotify_inode_queue_event <-vfs_write
 ity.filemanager-713   [000] 10173.078091: __fsnotify_parent <-vfs_write
 ity.filemanager-713   [000] 10173.078093: inotify_dentry_parent_queue_event <-vfs_write
 ity.filemanager-713   [000] 10173.078096: fsnotify <-vfs_write
 ity.filemanager-713   [000] 10173.078098: fput <-sys_write
 ity.filemanager-713   [000] 10173.078110: sys_getpid <-ret_fast_syscall
 ity.filemanager-713   [000] 10173.078112: pid_vnr <-sys_getpid
 ity.filemanager-713   [000] 10173.078115: pid_nr_ns <-pid_vnr
 ity.filemanager-713   [000] 10173.078118: sys_getuid <-ret_fast_syscall
 ity.filemanager-713   [000] 10173.078129: sys_epoll_wait <-ret_fast_syscall
 ity.filemanager-713   [000] 10173.078132: fget <-sys_epoll_wait
 ity.filemanager-713   [000] 10173.078134: add_preempt_count <-fget
 ity.filemanager-713   [000] 10173.078137: sub_preempt_count <-fget
 ity.filemanager-713   [000] 10173.078139: _raw_spin_lock_irqsave <-sys_epoll_wait
 ity.filemanager-713   [000] 10173.078142: add_preempt_count <-_raw_spin_lock_irqsave
 ity.filemanager-713   [000] 10173.078144: _raw_spin_unlock_irqrestore <-sys_epoll_wait
 ity.filemanager-713   [000] 10173.078146: sub_preempt_count <-_raw_spin_unlock_irqrestore
 ity.filemanager-713   [000] 10173.078148: ep_scan_ready_list <-sys_epoll_wait
 ity.filemanager-713   [000] 10173.078151: mutex_lock <-ep_scan_ready_list
 ity.filemanager-713   [000] 10173.078153: __might_sleep <-mutex_lock
 ity.filemanager-713   [000] 10173.078155: __mutex_lock_slowpath <-mutex_lock
 ity.filemanager-713   [000] 10173.078157: add_preempt_count <-__mutex_lock_slowpath
 ity.filemanager-713   [000] 10173.078160: sub_preempt_count <-__mutex_lock_slowpath
 ity.filemanager-713   [000] 10173.078163: _raw_spin_lock_irqsave <-ep_scan_ready_list
 ity.filemanager-713   [000] 10173.078165: add_preempt_count <-_raw_spin_lock_irqsave
 ity.filemanager-713   [000] 10173.078167: _raw_spin_unlock_irqrestore <-ep_scan_ready_list
 ity.filemanager-713   [000] 10173.078169: sub_preempt_count <-_raw_spin_unlock_irqrestore
 ity.filemanager-713   [000] 10173.078171: ep_send_events_proc <-ep_scan_ready_list
 ity.filemanager-713   [000] 10173.078174: pipe_poll <-ep_send_events_proc
 ity.filemanager-713   [000] 10173.078176: pipe_poll <-ep_send_events_proc
 ity.filemanager-713   [000] 10173.078179: _raw_spin_lock_irqsave <-ep_scan_ready_list
 ity.filemanager-713   [000] 10173.078181: add_preempt_count <-_raw_spin_lock_irqsave
 ity.filemanager-713   [000] 10173.078183: _raw_spin_unlock_irqrestore <-ep_scan_ready_list
 ity.filemanager-713   [000] 10173.078185: sub_preempt_count <-_raw_spin_unlock_irqrestore
 ity.filemanager-713   [000] 10173.078187: mutex_unlock <-ep_scan_ready_list
 ity.filemanager-713   [000] 10173.078190: __mutex_unlock_slowpath <-mutex_unlock
 ity.filemanager-713   [000] 10173.078193: fput <-sys_epoll_wait
 ity.filemanager-713   [000] 10173.078197: sys_read <-ret_fast_syscall
 ity.filemanager-713   [000] 10173.078199: fget_light <-sys_read
 ity.filemanager-713   [000] 10173.078201: add_preempt_count <-fget_light
 ity.filemanager-713   [000] 10173.078203: sub_preempt_count <-fget_light
 ity.filemanager-713   [000] 10173.078205: vfs_read <-sys_read
 ity.filemanager-713   [000] 10173.078208: rw_verify_area <-vfs_read
 ity.filemanager-713   [000] 10173.078210: do_sync_read <-vfs_read
 ity.filemanager-713   [000] 10173.078212: pipe_read <-do_sync_read
 ity.filemanager-713   [000] 10173.078215: mutex_lock <-pipe_read
 ity.filemanager-713   [000] 10173.078217: __might_sleep <-mutex_lock
 ity.filemanager-713   [000] 10173.078219: __mutex_lock_slowpath <-mutex_lock
 ity.filemanager-713   [000] 10173.078221: add_preempt_count <-__mutex_lock_slowpath
 ity.filemanager-713   [000] 10173.078224: sub_preempt_count <-__mutex_lock_slowpath
 ity.filemanager-713   [000] 10173.078226: generic_pipe_buf_confirm <-pipe_read
 ity.filemanager-713   [000] 10173.078229: generic_pipe_buf_map <-pipe_read
 ity.filemanager-713   [000] 10173.078231: add_preempt_count <-generic_pipe_buf_map
 ity.filemanager-713   [000] 10173.078233: generic_pipe_buf_unmap <-pipe_read
 ity.filemanager-713   [000] 10173.078235: sub_preempt_count <-generic_pipe_buf_unmap
 ity.filemanager-713   [000] 10173.078237: anon_pipe_buf_release <-pipe_read
 ity.filemanager-713   [000] 10173.078240: mutex_unlock <-pipe_read
 ity.filemanager-713   [000] 10173.078242: __mutex_unlock_slowpath <-mutex_unlock
 ity.filemanager-713   [000] 10173.078245: __wake_up_sync <-pipe_read
 ity.filemanager-713   [000] 10173.078247: __wake_up_sync_key <-__wake_up_sync
 ity.filemanager-713   [000] 10173.078249: _raw_spin_lock_irqsave <-__wake_up_sync_key
 ity.filemanager-713   [000] 10173.078252: add_preempt_count <-_raw_spin_lock_irqsave
 ity.filemanager-713   [000] 10173.078254: __wake_up_common <-__wake_up_sync_key
 ity.filemanager-713   [000] 10173.078256: ep_poll_callback <-__wake_up_common
 ity.filemanager-713   [000] 10173.078258: _raw_spin_lock_irqsave <-ep_poll_callback
 ity.filemanager-713   [000] 10173.078259: add_preempt_count <-_raw_spin_lock_irqsave
 ity.filemanager-713   [000] 10173.078261: _raw_spin_unlock_irqrestore <-ep_poll_callback
 ity.filemanager-713   [000] 10173.078263: sub_preempt_count <-_raw_spin_unlock_irqrestore
 ity.filemanager-713   [000] 10173.078265: _raw_spin_unlock_irqrestore <-__wake_up_sync_key
 ity.filemanager-713   [000] 10173.078267: sub_preempt_count <-_raw_spin_unlock_irqrestore
 ity.filemanager-713   [000] 10173.078269: kill_fasync <-pipe_read
 ity.filemanager-713   [000] 10173.078271: touch_atime <-pipe_read
 ity.filemanager-713   [000] 10173.078273: current_fs_time <-touch_atime
 ity.filemanager-713   [000] 10173.078276: current_kernel_time <-current_fs_time
 ity.filemanager-713   [000] 10173.078278: timespec_trunc <-current_fs_time
 ity.filemanager-713   [000] 10173.078280: mnt_want_write <-touch_atime
 ity.filemanager-713   [000] 10173.078283: add_preempt_count <-mnt_want_write
 ity.filemanager-713   [000] 10173.078285: __mnt_is_readonly <-mnt_want_write
 ity.filemanager-713   [000] 10173.078287: sub_preempt_count <-mnt_want_write
 ity.filemanager-713   [000] 10173.078289: __mark_inode_dirty <-touch_atime
 ity.filemanager-713   [000] 10173.078291: mnt_drop_write <-touch_atime
 ity.filemanager-713   [000] 10173.078293: add_preempt_count <-mnt_drop_write
 ity.filemanager-713   [000] 10173.078296: sub_preempt_count <-mnt_drop_write
 ity.filemanager-713   [000] 10173.078298: inotify_inode_queue_event <-vfs_read
 ity.filemanager-713   [000] 10173.078301: __fsnotify_parent <-vfs_read
 ity.filemanager-713   [000] 10173.078303: inotify_dentry_parent_queue_event <-vfs_read
 ity.filemanager-713   [000] 10173.078305: fsnotify <-vfs_read
 ity.filemanager-713   [000] 10173.078307: fput <-sys_read
 ity.filemanager-713   [000] 10173.078312: sys_clock_gettime <-ret_fast_syscall
 ity.filemanager-713   [000] 10173.078315: posix_ktime_get_ts <-sys_clock_gettime
 ity.filemanager-713   [000] 10173.078317: ktime_get_ts <-posix_ktime_get_ts
 ity.filemanager-713   [000] 10173.078319: s5p_sched_timer_read <-ktime_get_ts
 ity.filemanager-713   [000] 10173.078322: set_normalized_timespec <-ktime_get_ts
 ity.filemanager-713   [000] 10173.078333: sys_epoll_wait <-ret_fast_syscall
 ity.filemanager-713   [000] 10173.078336: fget <-sys_epoll_wait
 ity.filemanager-713   [000] 10173.078338: add_preempt_count <-fget
 ity.filemanager-713   [000] 10173.078341: sub_preempt_count <-fget
 ity.filemanager-713   [000] 10173.078343: _raw_spin_lock_irqsave <-sys_epoll_wait
 ity.filemanager-713   [000] 10173.078346: add_preempt_count <-_raw_spin_lock_irqsave
 ity.filemanager-713   [000] 10173.078348: _raw_spin_unlock_irqrestore <-sys_epoll_wait
 ity.filemanager-713   [000] 10173.078350: sub_preempt_count <-_raw_spin_unlock_irqrestore
 ity.filemanager-713   [000] 10173.078352: ep_scan_ready_list <-sys_epoll_wait
 ity.filemanager-713   [000] 10173.078355: mutex_lock <-ep_scan_ready_list
 ity.filemanager-713   [000] 10173.078357: __might_sleep <-mutex_lock
 ity.filemanager-713   [000] 10173.078359: __mutex_lock_slowpath <-mutex_lock
 ity.filemanager-713   [000] 10173.078361: add_preempt_count <-__mutex_lock_slowpath
 ity.filemanager-713   [000] 10173.078364: sub_preempt_count <-__mutex_lock_slowpath
 ity.filemanager-713   [000] 10173.078366: _raw_spin_lock_irqsave <-ep_scan_ready_list
 ity.filemanager-713   [000] 10173.078369: add_preempt_count <-_raw_spin_lock_irqsave
 ity.filemanager-713   [000] 10173.078371: _raw_spin_unlock_irqrestore <-ep_scan_ready_list
 ity.filemanager-713   [000] 10173.078373: sub_preempt_count <-_raw_spin_unlock_irqrestore
 ity.filemanager-713   [000] 10173.078375: ep_send_events_proc <-ep_scan_ready_list
 ity.filemanager-713   [000] 10173.078377: pipe_poll <-ep_send_events_proc
 ity.filemanager-713   [000] 10173.078380: _raw_spin_lock_irqsave <-ep_scan_ready_list
 ity.filemanager-713   [000] 10173.078382: add_preempt_count <-_raw_spin_lock_irqsave
 ity.filemanager-713   [000] 10173.078384: _raw_spin_unlock_irqrestore <-ep_scan_ready_list
 ity.filemanager-713   [000] 10173.078386: sub_preempt_count <-_raw_spin_unlock_irqrestore
 ity.filemanager-713   [000] 10173.078389: mutex_unlock <-ep_scan_ready_list
 ity.filemanager-713   [000] 10173.078391: __mutex_unlock_slowpath <-mutex_unlock
 ity.filemanager-713   [000] 10173.078394: _raw_spin_lock_irqsave <-sys_epoll_wait
 ity.filemanager-713   [000] 10173.078396: add_preempt_count <-_raw_spin_lock_irqsave
 ity.filemanager-713   [000] 10173.078399: _raw_spin_unlock_irqrestore <-sys_epoll_wait
 ity.filemanager-713   [000] 10173.078401: sub_preempt_count <-_raw_spin_unlock_irqrestore
 ity.filemanager-713   [000] 10173.078403: schedule_hrtimeout_range <-sys_epoll_wait
 ity.filemanager-713   [000] 10173.078405: schedule_hrtimeout_range_clock <-schedule_hrtimeout_range
 ity.filemanager-713   [000] 10173.078407: schedule <-schedule_hrtimeout_range_clock
 ity.filemanager-713   [000] 10173.078409: add_preempt_count <-schedule
 ity.filemanager-713   [000] 10173.078412: rcu_note_context_switch <-schedule
 ity.filemanager-713   [000] 10173.078413: rcu_sched_qs <-rcu_note_context_switch
 ity.filemanager-713   [000] 10173.078415: _raw_spin_lock_irq <-schedule
 ity.filemanager-713   [000] 10173.078417: add_preempt_count <-_raw_spin_lock_irq
 ity.filemanager-713   [000] 10173.078419: T.1190 <-schedule
 ity.filemanager-713   [000] 10173.078420: dequeue_task <-T.1190
 ity.filemanager-713   [000] 10173.078422: s5p_sched_timer_read <-sched_clock
 ity.filemanager-713   [000] 10173.078424: dequeue_task_fair <-dequeue_task
 ity.filemanager-713   [000] 10173.078426: dequeue_entity <-dequeue_task_fair
 ity.filemanager-713   [000] 10173.078428: update_curr <-dequeue_entity
 ity.filemanager-713   [000] 10173.078429: update_min_vruntime <-update_curr
 ity.filemanager-713   [000] 10173.078431: cpuacct_charge <-update_curr
 ity.filemanager-713   [000] 10173.078433: add_preempt_count <-cpuacct_charge
 ity.filemanager-713   [000] 10173.078435: sub_preempt_count <-cpuacct_charge
 ity.filemanager-713   [000] 10173.078436: clear_buddies <-dequeue_entity
 ity.filemanager-713   [000] 10173.078438: update_min_vruntime <-dequeue_entity
 ity.filemanager-713   [000] 10173.078440: put_prev_task_fair <-schedule
 ity.filemanager-713   [000] 10173.078444: pick_next_task_fair <-schedule
 ity.filemanager-713   [000] 10173.078446: __pick_next_entity <-pick_next_task_fair
 ity.filemanager-713   [000] 10173.078448: clear_buddies <-pick_next_task_fair
 ity.filemanager-713   [000] 10173.078449: set_next_entity <-pick_next_task_fair
 ity.filemanager-713   [000] 10173.078451: __dequeue_entity <-set_next_entity
 ity.filemanager-713   [000] 10173.078453: _raw_spin_unlock_irq <-schedule
 ity.filemanager-713   [000] 10173.078455: sub_preempt_count <-_raw_spin_unlock_irq
 ity.filemanager-713   [000] 10173.078458: atomic_notifier_call_chain <-__switch_to
 ity.filemanager-713   [000] 10173.078460: __atomic_notifier_call_chain <-atomic_notifier_call_chain
 ity.filemanager-713   [000] 10173.078462: add_preempt_count <-__atomic_notifier_call_chain
 ity.filemanager-713   [000] 10173.078463: notifier_call_chain <-__atomic_notifier_call_chain
 ity.filemanager-713   [000] 10173.078465: thumbee_notifier <-notifier_call_chain
 ity.filemanager-713   [000] 10173.078467: vfp_notifier <-notifier_call_chain
 ity.filemanager-713   [000] 10173.078469: sub_preempt_count <-__atomic_notifier_call_chain
        events/0-5     [000] 10173.078472: T.1196 <-schedule
        events/0-5     [000] 10173.078474: sub_preempt_count <-schedule
        events/0-5     [000] 10173.078476: sub_preempt_count <-preempt_schedule
        events/0-5     [000] 10173.078479: _raw_spin_lock_irq <-worker_thread
        events/0-5     [000] 10173.078481: add_preempt_count <-_raw_spin_lock_irq
        e