检查块设备上的未对齐I / O.

时间:2017-06-12 08:28:28

标签: memory linux-kernel driver linux-device-driver kernel-module

我一直在Linux Kernel中使用块层,并且已经创建了一个模块来覆盖任何块设备的make_request_fn。我想记下我的覆盖make_request_fn的块设备上未对齐的i / o请求(如果有)的数量和大小。我的问题是关于对齐和未对齐的i / o,我知道块层内的许多函数甚至编译器都试图通过使用各种方法来避免未对齐的i / o。

链接引用(https://github.com/torvalds/linux/blob/v4.10/Documentation/unaligned-memory-access.txt#L1)显示检查未对齐磁盘访问的方法如下:

"当您尝试读取N个字节的数据时,会发生未对齐的内存访问 来自不能被N整除的地址(即地址%N!= 0)。 例如,从地址0x10004读取4个字节的数据很好,但是 从地址0x10005读取4个字节的数据将是未对齐的存储器 。接入"

但是这不考虑任何逻辑的物理块大小,甚至不考虑底层设备可能具有的对齐偏移。在为i / o生成bio时是否考虑了这些?或者是否调整了扇区数以适应这个问题?

对不起新手的问题,我是新手。

0 个答案:

没有答案