Re: [PATCH v2 2/9] ext2: tell DAX the size of allocation holes
From: Dan Williams
Date: Sat Sep 10 2016 - 10:57:05 EST
On Sat, Sep 10, 2016 at 1:15 AM, Matthew Wilcox <mawilcox@xxxxxxxxxxxxx> wrote:
> From: Dan Williams [mailto:dan.j.williams@xxxxxxxxx]
>> /me grumbles about top-posting...
>
> Let's see if this does any better .. there's lots of new features, but I don't see a 'wrap lines at 80 columns' option. Unfortunately.
Much appreciated.
[..]
>> So the current dax implementation is still struggling to get right (pmd faulting,
>> dirty entry cleaning, etc) and this seems like a rewrite that sets us up for future
>> features without addressing the current bugs and todo items. In comparison
>> the iomap conversion work seems incremental and conserving of current
>> development momentum.
>
> I believe your assessment is incorrect. If converting the current DAX code to
> use iomap forces converting ext2, then it's time to get rid of all the half-measures
> currently in place. You left off one todo item that this does get us a step closer to
> fixing -- support for DMA to mmaped DAX files.
I didn't leave that off, DMA is solved with devm_memremap_pages().
Now, DMA without the ~1.6% capacity tax for the memmap array is
interesting, but that's a new feature.
> I think it also puts us in a better
> position to fix the 2MB support, locking, and dirtiness tracking. Oh, and it does
> fix the multivolume support (because the sectors in the radix tree could be
> interpreted as being from the wrong volume).
>
>> I agree with you that continuing to touch ext2 is not a good idea, but I'm not
>> yet convinced that now is the time to go do dax-2.0 when we haven't finished
>> shipping dax-1.0.
>
> dax-1.0 died long ago ... I think we're up to at least DAX version 4 by now.
My point is that I want to address the current slate of problems
before solving new questions like "how do we support non-block based
filesystems?". We just happened to land DAX in the middle of the
in-progress buffer_head removal effort, so DAX should not stand in the
way of where filesystems were already going. I'm arguing to complete
all the false starts and half measures that are presently in DAX and
then look to incrementally evolve the interfaces to something new
without regressing any of it.