On Fri, 2016-04-15 at 13:01 -0600, Toshi Kani wrote: > On Fri, 2016-04-15 at 11:17 -0700, Dan Williams wrote: > > > > On Fri, Apr 15, 2016 at 11:06 AM, Jeff Moyer <jmoyer@xxxxxxxxxx> wrote: > > > > > > Dan Williams <dan.j.williams@xxxxxxxxx> writes: > > > > > > > > > There's a lot of special casing here, so you might consider > > > > > > adding comments. > > > > > Correct - maybe we should reconsider wrapper-izing this? :) > > > > Another option is just to skip dax_do_io() and this special casing > > > > fallback entirely if errors are present. I.e. only attempt > > > > dax_do_io when: IS_DAX() && gendisk->bb && bb->count == 0. > > > > > > So, if there's an error anywhere on the device, penalize all I/O (not > > > just writes, and not just on sectors that are bad)? I'm not sure > > > that's a great plan, either. > > > > > If errors are rare how much are we actually losing in practice? > > Moreover, we're going to do the full badblocks lookup anyway when we > > call ->direct_access(). If we had that information earlier we can > > avoid this fallback dance. > > A system running with DAX may have active data set in NVDIMM lager than > RAM size. In this case, falling back to non-DAX will allocate page cache > for the data, which will saturate the system with memory pressure. Oh, sorry, we are still in DIO path. Falling back to DIO should not cause this issue. -Toshi _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs