linux 调度程序,linux-kernel – 调试Linux调度程序

如何为

linux内核学习ftrace?使用它的方式略微取决于内核版本.只需阅读文件/ sys / kernel / debug / tracing / README以获取详细信息.

如果上面的目录不存在,那么您可能必须安装它:

mount -t debugfs nodev /sys/kernel/debug

然后编写一个bash shell脚本来生成用户空间跟踪:

#!/bin/bash

echo 0 >/sys/kernel/debug/tracing/tracing_enabled

echo 'sched_*' 'irq_*' > /sys/kernel/debug/tracing/set_ftrace_filter

echo function >/sys/kernel/debug/tracing/current_tracer

echo 1 >/sys/kernel/debug/tracing/tracing_enabled

ls -al /tmp/ 1>/dev/null &

ls -al /tmp/ 1>/dev/null &

ls -al /tmp/ 1>/dev/null &

ls -al /tmp/ 1>/dev/null &

ls -al /tmp/ 1>/dev/null &

ls -al /tmp/ 1>/dev/null &

sleep 3

echo 0 >/sys/kernel/debug/tracing/tracing_enabled

cat /sys/kernel/debug/tracing/trace

注意事项:

一个. Linux内核调度在内核源代码的kernel / sched目录中实现.一个例子是在fair.c中的CFQ.

湾读取文件并查找API,我们知道调度中涉及的相关API以“irq_”和“sched_”开头,因此我们将其编码到上面的shell脚本中.

C.我系统上面的shell脚本的输出位于下面(在大量截断“打开”相关函数之后,它被gzip压缩,大约21K行):

基本上,您可以看到哪个内核函数涉及哪个进程上下文.从内核函数的名称,您可以通过读取源代码继续跟踪.

您可以进一步谷歌的更多细节,例如:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值