ftrace中有哪些block設備的觀測事件
时间: 2024-01-24 22:20:44 浏览: 185
在ftrace中,可以观测以下block设备的事件:
1. block:block_bio_remap:重映射一个bio(即将其分割为更小的bio)
2. block:block_dirty_buffer:将一个脏页标记为脏
3. block:block_getrq:获取一个请求
4. block:block_plug:将请求合并为批处理(batch)
5. block:block_rq_abort:请求被取消
6. block:block_rq_complete:请求已完成
7. block:block_rq_insert:将请求插入队列
8. block:block_rq_issue:请求已被提交给设备
9. block:block_rq_requeue:请求重新加入队列
10. block:block_rq_remove:从队列中删除请求
11. block:block_rq_resurrect:请求被重新唤醒
12. block:block_softirq_done:softirq处理完成
13. block:block_split:将一个bio分割为更小的部分
14. block:block_touch_buffer:将一个缓冲区标记为已使用
15. block:block_unplug:将所有请求提交给设备
以上是一些常见的block设备观测事件,但不是全部。具体观测事件可以通过ftrace手册进行查询。
相关问题
如何使用ftrace觀測所有的block事件呢
你可以使用以下步骤来使用ftrace观测所有的block事件:
1. 确保你的内核已启用了CONFIG_BLK_DEV_IO_TRACE选项。
2. 打开终端并用root用户登录。
3. 进入/sys/kernel/debug/tracing目录。
4. 将可用事件列表写入可用事件文件:
```
echo block:block_rq_issue > available_events
```
5. 将要监视的事件添加到跟踪器中:
```
echo 1 > events/block/block_rq_issue/enable
```
6. 打开ftrace,开始跟踪:
```
echo 1 > tracing_on
```
7. 执行你要测试的操作。
8. 关闭ftrace:
```
echo 0 > tracing_on
```
9. 查看跟踪结果:
```
cat trace
```
如果你想要更详细的输出,可以使用以下命令:
```
cat trace | grep "block_rq"
```
这将仅显示与块I/O相关的事件。
注意:ftrace需要root权限才能使用,并且跟踪期间会产生大量的数据,因此在跟踪完成后,最好将跟踪器关闭以减少系统负载。
ftrace ptrace
ftrace和ptrace是两个不同的工具,它们在功能和用途上有所区别。
引用中提到的ftrace是 Linux 内核的一个内建跟踪工具,用于跟踪和分析内核函数调用、上下文切换、延迟和性能问题等。它可以通过配置内核和 debugfs 来使用,并包含多个跟踪器,可以方便地跟踪不同类型的信息。
而引用中提到的ptrace是一个系统调用,用于在用户空间中跟踪和控制进程的执行。通过ptrace,用户可以监视和修改目标进程的内存、寄存器和执行状态,实现调试和跟踪进程的功能。
因此,ftrace主要用于内核级别的跟踪和性能分析,而ptrace主要用于用户空间进程的调试和跟踪。它们各自具有不同的功能和应用场景,但都能提供有助于问题排查和性能优化的信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [Linux内核调试方法总结之strace ,ltrace, ptrace, ftrace, sysrq](https://blog.csdn.net/zmjames2000/article/details/88410484)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [Linux内核学习(十):内核追踪必备技能--ftrace](https://blog.csdn.net/weixin_45264425/article/details/125955998)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文