我正在开发一个用于某些研究的用户区域跟踪程序包装器,我需要专门研究内核中的上下文切换。从this LWN文章(“ sched_switch”下的部分,大约下降了三分之一)中,我注意到系统输出(运行3.10.9内核的Android设备)与文章(针对2.6内核)。我最大的问题是缺少下一个任务状态。为了准确显示,文章的输出格式为
sleep-4055 [01] 240.132371: 4055:120:S ==> 3997:120:R
(将重点放在R上以指示下一个状态的状态) 我的输出:
GLThread 292-7361 [000] d..3 9421.164945: sched_switch: prev_comm=GLThread 292 prev_pid=7361 prev_prio=120 prev_state=R ==> next_comm=surfaceflinger next_pid=3036 next_prio=98
现在,Internet上的资源都有些混乱和混杂,因此我希望可以进行快速澄清。
在本文中,跟踪是由
配置的echo sched_switch > /debug/tracing/current_tracer
现在在我的系统上,我没有将此作为可用的跟踪器
odroidxu3:/ d /跟踪#cat available_tracers
function_graph wakeup_rt唤醒功能nop
但是我能够通过以下接口跟踪sched_switch事件
$ cat available_events | grep sched_switch
sched:sched_switch$ ls个事件/预定/ | grep开关
sched_switch
哪个让我问,我的内核是否缺少一些需要修补的功能(类似于此this帖子),或者ftrace接口已将sched_switch从可用的跟踪器移至ftrace事件?
如果确实需要修补,那么在哪里可以找到ftrace修补程序的已编译列表/正在进行的列表?
欢呼