* LBA starting address alignment from struct request
@ 2014-12-07 3:49 Alvin Abitria
2014-12-07 21:39 ` Dave Chinner
0 siblings, 1 reply; 2+ messages in thread
From: Alvin Abitria @ 2014-12-07 3:49 UTC (permalink / raw)
To: linux-fsdevel
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? Is
there a request queue or gendisk setting that controls this that I may
not be aware of? Or is this up to the FS layer? Hopefully someone
can point it out.
Thanks!
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: LBA starting address alignment from struct request
2014-12-07 3:49 LBA starting address alignment from struct request Alvin Abitria
@ 2014-12-07 21:39 ` Dave Chinner
0 siblings, 0 replies; 2+ messages in thread
From: Dave Chinner @ 2014-12-07 21:39 UTC (permalink / raw)
To: Alvin Abitria; +Cc: linux-fsdevel
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@fromorbit.com
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-12-07 21:39 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-07 3:49 LBA starting address alignment from struct request Alvin Abitria
2014-12-07 21:39 ` Dave Chinner
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).