我试图在模块内找到一种方法来跟踪写入块设备的最后一个块。我需要的具体设备是在root上安装的设备(如果有帮助,我提前知道/ dev / name。)
我最初的想法是包装submit_bio函数,因为如果你“回显1> / proc / sys / vm / block_dump”它已经具有日志记录功能。不幸的是,似乎我需要修改源代码以使该函数成为指针。如果可能的话,我想将这一切保留在模块中。
之后,我研究了查找文件系统类型,并包装默认文件操作(毕竟这些已经是函数指针)。然而,那些被宣布为const,同样的问题。
我理解这是一件奇怪的事情。需要做到这一点。有没有人有任何想法可能会让我走?
答案 0 :(得分:1)
Linux内核提供了几种不同的跟踪工具包; blktrace
tools专为块设备而设计。 blkparse(1)
工具将解析blktrace(8)
实用程序的输出。 (至少Ubuntu将这些打包在blktrace
包中;我希望其他发行版是相似的。)bklparse(1)
工具可以为您提供行业信息。
Documentation/trace/events.txt
描述了另一种跟踪机制 - 可以让您跟踪block:block_bio_complete
事件,其中包括扇区信息。这不需要安装bkltrace
工具包,但我(羞怯地)承认我不知道在哪里读取跟踪日志。