遍历所有磁盘或在内核模块中通过设备名称获取 hd_struct

遍历所有磁盘或在内核模块中通过设备名称获取 hd_struct

我正在编写一个内核模块(在 Linux 2.6.32 上),以获取disk_stats正在使用的所有磁盘(不是分区)。换句话说,我获取的数据与/sys/block/sda/stat显示的数据一样,但在内核模块中。

(注意:通过“不分区”,我的意思是我们只是处理sda和忽略sda1/sda2/etc。)

有没有类似for_each_netdevfor_each_possible_cpu的块设备?因为可能有多个磁盘,我需要一种方法来遍历它们。或者最晚,我如何才能获得与块设备名称相关的数据结构(如sda)?

disk_stats我知道我们可以从磁盘中获取磁盘hd_struct,但是我怎样才能获取它呢hd_struct

我读过linux2.6.32/block/genhd.c,知道file的内容/sys/block/sda/stat是由生成的diskstats_show,但是第二个参数是怎么来的呢?

请帮助我。谢谢。

相关内容