Re: regression introduced by "block: Add support for DAX reads/writes to block devices"

Linda Knippers
2015-08-13T17:52:17Z

On 8/13/2015 1:14 PM, Jeff Moyer wrote:
> Linda Knippers <linda.knippers@hp.com> writes:
>
>>> I'd be fine with changing the persistent memory block device to only
>>> support 4k logical, 4k physical block size. That probably makes the
>>> most sense.
>>
>> If that's what we want, the current patch doesn't do that.
>> https://lists.01.org/pipermail/linux-nvdimm/2015-July/001555.html
>>
>> It causes the physical block size to be PAGE_SIZE but the
>> logical block size is still 512. However, the minimum_io_size
>> is now 4096 (same as physical block size, I assume). The
>> optimal_io_size is still 0. What does that mean?
>
> physical block size - device's internal block size
> logical block size - addressable unit

Right, but it's still reported as 512 and that doesn't work.

> optimal io size - device's preferred unit for streaming

So 0 is ok.

> minimum io size - device’s preferred minimum unit for random I/O
>
> See Martin Petersen's "Linux & Advanced Storage Interfaces" document for
> more information.
>
>> Whatever we go with, we should do something because 4.2rc6 is still
>> broken, unable to create a xfs file system on a pmem device, ever
>> since the change to use DAX on block devices with O_DIRECT.
>
> We can change the block device to export logical/physical block sizes of
> PAGE_SIZE. However, when persistent memory support comes to platforms
> that support page sizes > 32k, xfs will again run into problems (Dave
> Chinner mentioned that xfs can't deal with logical block sizes >32k.)
> Arguably, you can use pmem and dax on such platforms using RAM today for
> testing. Do we care about breaking that?

I would think so. AARCH64 uses 64k pages today.

I think Documentation/filesystems/dax.txt could use a little update
too. It has a section "Implementation Tips for Block Driver Writers"
that makes it sound easy but now I wonder if it even works with the
example ram drivers. Should we be able to read any 512 byte
"sector"?

-- ljk
>
> Cheers,
> Jeff
>