Re: dm: enable opt-out of device-mapper dax support

From: Dan Williams
Date: Tue Aug 01 2017 - 17:19:57 EST


On Tue, Aug 1, 2017 at 2:04 PM, Bart Van Assche <Bart.VanAssche@xxxxxxx> wrote:
> On Tue, 2017-08-01 at 13:59 -0700, Dan Williams wrote:
>> On Tue, Aug 1, 2017 at 12:45 PM, Dan Williams <dan.j.williams@xxxxxxxxx> wrote:
>> > On Tue, Aug 1, 2017 at 12:02 PM, Mike Snitzer <snitzer@xxxxxxxxxx> wrote:
>> > > On Tue, Aug 01 2017 at 2:12pm -0400,
>> > > Dan Williams <dan.j.williams@xxxxxxxxx> wrote:
>> > > > [ ... ]
>> > >
>> > > I'm questioning the need to have yet another Kbuild CONFIG option. If
>> > > the user has enabled CONFIG_BLK_DEV_PMEM and CONFIG_FS_DAX (DAX already
>> > > gets selected by CONFIG_FS_DAX) then shouldn't the DM capabilities just
>> > > be enabled?
>> > >
>> > > Guess I'm just skeptical of: why do we want to move to a model where
>> > > users need to opt-in to DM support for DAX?
>> > >
>> > > I also _really_ don't like each target's DAX support being colocated in
>> > > drivers/md/dm-dax.c
>> > >
>> > > This all looks and feels like a serious step backwards.
>> >
>> > Ok, you want ifdef'd sections of DAX code in each target and make
>> > DM_DAX a silent option that gets enabled with BLK_DEV_PMEM, anything
>> > else?
>>
>> Actually, no, I was thrown off by Bart's suggestion to move code
>> around. I can handle this all by deleting "select DAX" and adding more
>> stubbed out dax helpers.
>
> Hello Mike and Dan,
>
> How about one *-dax.c file per *.c dm file that has to be modified to add DAX support?
> I think that approach would avoid collocation of code for different targets in a
> single dm-dax.c file and would also avoid that #ifdef CONFIG_DAX statements have to
> be added. This approach is orthogonal to removal of CONFIG_DM_DAX.

You're free to send an alternative approach, but the new ifdefs in
include/linux/dax.h seem to be the cleanest option to remove dax text
size when the device-mapper dax support is not needed.