在一次调试快照驱动的时候,打印bio时发现max_sectors_kb会影响一个bio的最大大小。
max_hw_sectors_kb:单个数据传输中硬件(如磁盘)最大支持多少KB的数据。
max_sectors_kb: 一次请求中block 层最大支持多少KB数据,<= max_hw_sectors_kb。
以一块sata磁盘为例:
cat /sys/block/sda/queue/max_sectors_kb
512
一个bio中bio_vec 最大为128个,每个ve_len为4096。128 * 4KB = 512KB,与max_sectors_kb吻合。
参考:
[1]Linux/Documentation/block/queue-sysfs.txt
max_hw_sectors_kb:单个数据传输中硬件(如磁盘)最大支持多少KB的数据。
max_sectors_kb: 一次请求中block 层最大支持多少KB数据,<= max_hw_sectors_kb。
以一块sata磁盘为例:
cat /sys/block/sda/queue/max_sectors_kb
512
一个bio中bio_vec 最大为128个,每个ve_len为4096。128 * 4KB = 512KB,与max_sectors_kb吻合。
参考:
[1]Linux/Documentation/block/queue-sysfs.txt
本文深入探讨了Linux块设备系统中max_sectors_kb参数的作用及其与max_hw_sectors_kb的关系,通过实例分析了如何通过sysfs接口获取块设备的最大数据传输限制,并解释了这一参数在实际应用中的意义。

322

被折叠的 条评论
为什么被折叠?



