拦截内核块I / O层的数据

时间:2014-08-06 00:15:35

标签: linux file-io linux-kernel linux-device-driver kernel-module

我想拦截在linux内核的块I / O层和磁盘之间传输的数据。我的目标是收集有关在主机(通过操作系统)和磁盘之间传输的数据的一些统计信息。例如,我想知道每个传输块中出现特定字符的次数。我需要在块级收集此信息,因为磁盘和主机之间的所有操作都是以块粒度完成的。

注意:我不确定是否应该使用bio struct和bio_vec

1 个答案:

答案 0 :(得分:0)

好吧,您可以使用kprobes / systemtap挂钩到阻止层。我想这是最难侵入的方法。基本上,单独的systemtap应该足够了,但你可以编写自己的内核模块并手动安装kporbes。