LKM:写入设备的最后一个块

时间:2012-04-06 00:50:33

标签: linux linux-kernel kernel-module

我试图在模块内找到一种方法来跟踪写入块设备的最后一个块。我需要的具体设备是在root上安装的设备(如果有帮助,我提前知道/ dev / name。)

我最初的想法是包装submit_bio函数,因为如果你“回显1> / proc / sys / vm / block_dump”它已经具有日志记录功能。不幸的是,似乎我需要修改源代码以使该函数成为指针。如果可能的话,我想将这一切保留在模块中。

之后,我研究了查找文件系统类型,并包装默认文件操作(毕竟这些已经是函数指针)。然而,那些被宣布为const,同样的问题。

我理解这是一件奇怪的事情。需要做到这一点。有没有人有任何想法可能会让我走?

1 个答案:

答案 0 :(得分:1)

Linux内核提供了几种不同的跟踪工具包; blktrace tools专为块设备而设计。 blkparse(1)工具将解析blktrace(8)实用程序的输出。 (至少Ubuntu将这些打包在blktrace包中;我希望其他发行版是相似的。)bklparse(1)工具可以为您提供行业信息。

Documentation/trace/events.txt描述了另一种跟踪机制 - 可以让您跟踪block:block_bio_complete事件,其中包括扇区信息。这不需要安装bkltrace工具包,但我(羞怯地)承认我不知道在哪里读取跟踪日志。