On 6/16/25 15:28, Damien Le Moal wrote: > For a device that does not advertize an optimal I/O size, the function > blk_apply_bdi_limits() defaults to an initial setting of the ra_pages > field of struct backing_dev_info to VM_READAHEAD_PAGES, that is, 128 KB. > > This low I/O size value is far from being optimal for hard-disk devices: > when reading files from multiple contexts using buffered I/Os, the seek > overhead between the small read commands generated to read-ahead > multiple files will significantly limit the performance that can be > achieved. > > This fact applies to all ATA devices as ATA does not define an optimal > I/O size and the SCSI SAT specification does not define a default value > to expose to the host. > > Modify blk_apply_bdi_limits() to use a device max_sectors limit to > calculate the ra_pages field of struct backing_dev_info, when the device > is a rotational one (BLK_FEAT_ROTATIONAL feature is set). For a SCSI > disk, this defaults to 2560 KB, which significantly improve performance > for buffered reads. Using XFS and sequentially reading randomly selected > (large) files stored on a SATA HDD, the maximum throughput achieved with > 8 readers reading files with 1MB buffered I/Os increases from 122 MB/s > to 167 MB/s (+36%). The improvement is even larger when reading files > using 128 KB buffered I/Os, with a throughput increasing from 57 MB/s to > 165 MB/s (+189%). > > Signed-off-by: Damien Le Moal <dlemoal@xxxxxxxxxx> Jens, Ping ? This is reviewed. Did it got lost ? Or will it be part of a different PR ? -- Damien Le Moal Western Digital Research