Re: [PATCH 14/15] libnvdimm: support read-only btt backing devices

Jeff Moyer
2015-06-22T18:48:59Z

Christoph Hellwig <hch@lst.de> writes:

> On Mon, Jun 22, 2015 at 12:42:44PM -0400, Jeff Moyer wrote:
>> OK, add torn sector detection/recovery to that statement, then. More
>> importantly, do you agree with the sentiment or not?
>
> I think we're getting on a very slipper slope if we think about
> application here. Buffered I/O application must deal with torn
> writes at any granulairty anyway, e.g. fsync + rename is the
> only thing they can rely on right now (I actually have software O_ATOMIC
> code to avoid this, but that's another story).

OK, so you think applications using buffered I/O will Just Work(TM)? My
guess is that things will start to break that hadn't broken in the
past. Sure, the application isn't designed properly, and that should be
fixed, but we shouldn't foist this on users as the default.

> Direct I/O using application can make assumption if they know the sector
> size, and we must have a way for them to be able to see our new
> "subsector sector size".

You need to let them determine that when NOT using the btt, yes. Right
now, I don't think there's a way to determine what the underlying atomic
write unit is. That's something the NFIT spec probably should have
defined.

> And thos application are few inbetween but also important so needing
> special cases for them is fine. Although those are the most likely
> ones to take advantage of byte addressing anyway.

Agreed.

-Jeff