Re: [PATCH 0/6] Support DAX for device-mapper dm-linear devices

From: Dan Williams
Date: Tue Jun 14 2016 - 03:31:03 EST


On Mon, Jun 13, 2016 at 5:02 PM, Dan Williams <dan.j.williams@xxxxxxxxx> wrote:
> On Mon, Jun 13, 2016 at 4:59 PM, Kani, Toshimitsu <toshi.kani@xxxxxxx> wrote:
>> On Mon, 2016-06-13 at 16:18 -0700, Dan Williams wrote:
>>> Thanks Toshi!
>>>
>>> On Mon, Jun 13, 2016 at 3:21 PM, Toshi Kani <toshi.kani@xxxxxxx> wrote:
>>> >
>>> > This patch-set adds DAX support to device-mapper dm-linear devices
>>> > used by LVM. It works with LVM commands as follows:
>>> > - Creation of a logical volume with all DAX capable devices (such
>>> > as pmem) sets the logical volume DAX capable as well.
>>> > - Once a logical volume is set to DAX capable, the volume may not
>>> > be extended with non-DAX capable devices.
>>>
>>> I don't mind this, but it seems a policy decision that the kernel does
>>> not need to make. A sufficiently sophisticated user could cope with
>>> DAX being available at varying LBAs. Would it be sufficient to move
>>> this policy decision to userspace tooling?
>>
>> I think this is a kernel restriction. When a block device is declared as
>> DAX capable, it should mean that the whole device is DAX capable. So, I
>> think we need to assure the same to a mapped device.
>
> Hmm, but we already violate this with badblocks. The device is DAX
> capable, but certain LBAs will return an error if direct_access is
> attempted.

Nevermind, for this to be useful we would need to fallback to regular
mmap for a portion of the linear span. That's different than the
badblocks case.