On Fri, Jun 16, 2017 at 08:35:07AM -0600, Jens Axboe wrote:
> > Agreed.  In fact I'd go a little further:  we should have a
> > 
> >     u16 hints;
> > 
> > that goes all the way down from fcntl to the driver, right now
> > we'll allocate the first 3 bits for the write lifetime hints (2.5,
> > so we have one value spare, as they don't need to flags but can be
> > enum values), leaving more space for other kinds of hints.
> 
> Did you see v5? It adds enum write_hint and passes it all the way down,
> until we transform them into rq/bio flags.

Yes.  But with all the way down I mean all the way down to the driver :)

> Mess? The NVMe code seems pretty straight forward to me. Is it purely
> the lazy alloc part you're referring to?

Yes.

> I'm fine with bubbling down the
> hint and setting everything up inline from the fcntl() call, but that
> means we need to make things like btrfs and md/dm aware of it and
> resolve all mappings. That sort-of sucks, especially since they don't
> otherwise need to know about it.

True, that sucks.  But taking the hint and doing things behind the
scenes sounds nasty.

> If another driver needs similar setup like NVMe, I'd much rather just
> fix it up there. From the API point of view, there would be no changes.

Ok..

Reply via email to