On Tue, Sep 26, 2017 at 7:33 AM, Christoph Hellwig <hch@xxxxxx> wrote: > On Tue, Sep 26, 2017 at 06:59:37AM -0700, Dan Williams wrote: >> > I think you probably want an IOCB_DAX flag to check IS_DAX once and >> > then stick to it, similar to what we do for direct I/O. >> >> I wonder if this works better with a reference count mechanism >> per-file so that we don't need a hold a lock over the whole >> transition. Similar to request_queue reference counting, when DAX is >> being turned off we block new references and drain the in-flight ones. > > Maybe. But that assumes we want to be stuck in a perpetual binary > DAX on/off state on a given file. Which makes not only for an awkward > interface (inode or mount flag), but also might be fundamentally the > wrong thing to do for some media where you'd happily read directly > from it but rather buffer writes in DRAM. I think we'll always need an explicit override available, but yes we need to think about what the override looks like in the context of a kernel that is able to automatically pick the right I/O policy relative to the media type. A potential mixed policy for reads vs writes makes sense. Where would this finer grained I/O policy selection go other than more inode flags?