On Sun, Dec 07, 2014 at 11:49:41AM +0800, Alvin Abitria wrote: > Hello, > > Currently doing block drivers. I've noticed during my tests that if > my platform are RHEL6.x/CentOS6.x my struct request's starting > LBA/sector is always aligned to 8 (e.g. 0, 8, 0x100, 0x2508, etc.) > which is actually desirable for my designed driver. It seems the > struct requests are always aligned there. > > On the other hand, if I test on some older systems like Oracle 5.6, > the starting LBA for struct requests there seems not to be aligned to > 8 - most cases the LBA is offseted (e.g. 0x2507, 300f, 0x95bd500f, > etc.) > > My block queue settings and even looking from sysfs shows that my > logical block size and physical block size are 512 and 512, > respectively. So I don't think it has something to do with 4kB > sectors. What could be the setting that triggered such behaviour? Partition alignment and filesystem type and configuration will determine if IOs on arbitrary sector alignments are done. Some filesystems will *always* do some amount of arbitrarily sector aligned IO even when using a 4k block size. And if you configure a filesystem to use a 512 byte block size, then you'll almost always get non-aligned IO requests. Hence if your block device can only handle 4k aligned and sized IO then it needs to preset a block device with a 4k sector size. That will result in everything using the block device to issue 4k aligned and sized IOs.... Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html