Re: [PATCHv8 2/6] block: use generic u16 for write hints

Keith Busch
2024-10-24T20:03:05Z

On Fri, Oct 18, 2024 at 07:46:44AM +0200, Christoph Hellwig wrote:
> On Thu, Oct 17, 2024 at 09:09:33AM -0700, Keith Busch wrote:
> > From: Keith Busch <kbusch@kernel.org>
> >
> > This is still backwards compatible with lifetime hints. It just doesn't
> > constrain the hints to that definition.
>
> So in the end we'll end up with two uses of it - the existing 5
> temperature hints and the new stream separation. I think it
> would be cleaner to make it a union, but I don't care that
> strongly.
>
> But we probably want a way to distinguish which one is supported.
>
> E.g. for SCSI we set a net BLK_FEAT_WRITE_HINTS, for NVMe we'll set
> BLK_FEAT_STREAM_SEPARATION.
>
> Either way this should probably be the first patch in the series.

I'm not sure I follow this feedback. The SCSI feature is defined as a
lifetime stream association in SBC-5. So it's still a stream for SCSI,
but you want to call it "WRITE_HINT", which is not a term used in the
SCSI spec for this feature. But, you want to call it STREAM_SEPARATION
for NVMe only, even though the FDP spec doesn't use that term? What's
wrong with just calling it a generic hint support feature?

I also don't see why SCSI couldn't use per-io hints just like this
enables for NVMe. The spec doesn't limit SCSI to just 5 streams, so this
provides a way to access them all through the raw block device.