Monitoring pthread context switching

孤街浪徒 提交于 2019-12-29 09:15:10

问题


I would like to monitor the the context switching behavior in a multi-threaded pthread application.

In other RTOSes(Micro C OS) I have been able to register a context switch callback for each thread in the application, and then log (or toggle a gpio) and watch the thread context switching in real time. This was a valuable tool for debugging the real time behavior and interaction of the multiple threads.

My current environment is embedded linux utilizing the pthread api. Is there a way to monitor each of the context switches?


回答1:


Not in the way you describe, however there are various profiling tools for Linux, like oprofile, SystemTap and perf events, I'm not sure how well they'd fit into embedded development though.

EDIT: perf is probably best (if you are running a recent enough kernel to use it) since it's in the mainline so you just have to turn it on, and it's really basic.

EDIT: if none of those work for you you can always modify the kernel context switch code...

EDIT: I missed one of the tracing frameworks, there is also LTTng

If you're using busybox and can compile your own kernel perf is probably the most minimal way to go, it's consists of turning on perf events in the kernel and compiling the perf tool that comes with the kernel source (it's in tools/perf)



来源:https://stackoverflow.com/questions/2914187/monitoring-pthread-context-switching

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!