Linux kernel 跟踪对运行进程的pull_task()的调用
我试图计算系统中的进程调用pull_task()的次数。pull_task()是一个调度函数,用于将任务从繁忙CPU的运行队列移动到空闲CPU的运行队列。 我找不到任何简单的机制(包括perf-top)来找出这个问题 系统中有一个名为migration的根进程,我有一种预感,这个进程可能负责调用pull_task()。但我也不能将strace附加到这个过程中,它抛出以下错误: 连接:ptrace(ptrace_-attach,…):不允许操作 “迁移”过程的优先级是实时的。也许这就是为什么斯特拉斯不能依附于它的原因Linux kernel 跟踪对运行进程的pull_task()的调用,linux-kernel,scheduling,strace,Linux Kernel,Scheduling,Strace,我试图计算系统中的进程调用pull_task()的次数。pull_task()是一个调度函数,用于将任务从繁忙CPU的运行队列移动到空闲CPU的运行队列。 我找不到任何简单的机制(包括perf-top)来找出这个问题 系统中有一个名为migration的根进程,我有一种预感,这个进程可能负责调用pull_task()。但我也不能将strace附加到这个过程中,它抛出以下错误: 连接:ptrace(ptrace_-attach,…):不允许操作 “迁移”过程的优先级是实时的。也许这就是为什么斯特拉
请告知。谢谢。你需要看看Ftrace。这将给出一个完整的列表,列出一段时间内系统中发生的所有内核函数调用 像这样打开函数跟踪程序
echo function > /sys/kernel/debug/tracing/current_tracer
按查看跟踪
cat/sys/kernel/debug/tracing/trace
这些文章应该有助于: