Re: [PATCH 4/4] brd: Request from fdisk 4k alignment

From: Karel Zak
Date: Thu Aug 07 2014 - 11:21:25 EST


On Thu, Aug 07, 2014 at 04:57:18PM +0300, Boaz Harrosh wrote:

> I was not saying that fdisk is wrong. I was saying that if my block driver
> was *not* exporting 4K physical sectors through limits.physical_block_size

yep, sorry (it's probably bad idea to read emails and listen to talks on
conference..)

> then fdisk would be happy to not align my partition start on 4k and would
> give me funny values like 34 for first sector which makes my device unusable
> because in direct_access() API we must absolutely have 4K aligned partitions.
>
> >> to miss-align my partitions. Depending on size maybe not the very first one but the
> >> consecutive ones easily.
> >
> > it would be nice to have usable bug report...
> >
>
> Setting limits.physical_block_size = 4k; was the only way I found that could cause
> fdisk to default to 4k alignment.

fdisk uses physical sector size or minimal I/O size (greater value wins)

> I was trying to play with the heads, sectors, cylinders; values but none I tried

don't play with CHS, that's waste of time and it's completely ignored
by fdisk by default

> would cause an alignment of 4k, not even of the first partition start.
>
> Please advise what I can do?

IMHO you're right with your patch (alignment offset is IMHO bad way).
It's all (brd) about pages, is there any reason to use something else
for I/O limits?

It would be also nice to set minimal and optimal io size, zero values
in this case means (for userspace) that the device does not provide
any I/O information to system. It's normal for old hw disks and then
we use some built-in defaults, but I don't see a reason to do the
same for virtual devices.

Karel

--
Karel Zak <kzak@xxxxxxxxxx>
http://karelzak.blogspot.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/