在一次调试快照驱动的时候,打印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