我一直在查找,每个人都解释/proc/diskstats文件,但似乎没有人解释这些数据来自何处。
我找到了这样的评论:
Just remember that /proc/diskstats is tracking the kernel’s read requests–not yours.
在本页上:
https://kevinclosson.net/2018/10/09/no-proc-diskstats-does-not-track-your-physical-i-o-requests/
但基本上我的问题是,我有一个内核模块,它创建一个块设备,并通过blk_queue_make_request而不是blk_init_queue来处理请求处理程序,就像dm一样,我不希望内核为我排队。
一切都很好,但是没有任何东西出现在/proc/diskstats中我以为内核会理清这些信息,因为它正在处理对内核模块的请求,但显然不是。或者我在某个地方遗漏了一面旗帜什么的。
有什么想法吗?
发布于 2020-11-10 16:59:14
所以我找到了..。内核似乎为你提供了辅助功能..。
您需要request_queue,bio和gendisk,在您处理io之前和之后调用这些.
unsigned long start_time;
start_time = jiffies;
generic_start_io_acct(q, bio_op(bio), bio_sectors(bio), &gd->part0);
generic_end_io_acct(q, bio_op(bio), &gd->part0, start_time);你看,你的数据和你的块装置开始出现在碘化钾里。
https://unix.stackexchange.com/questions/611980
复制相似问题