RE: [PATCH v5 0/7] Extend write-hint framework, and add write-hint for Ext4 journal

From: kanchan
Date: Fri May 17 2019 - 01:34:15 EST


Hi Christoph,

> Including the one this model causes on at least some SSDs where you now
statically allocate resources to a stream that is now not globally
available.

Sorry but can you please elaborate the issue? I do not get what is being
statically allocated which was globally available earlier.
If you are referring to nvme driver, available streams at subsystem level
are being reflected for all namespaces. This is same as earlier.
There is no attempt to explicitly allocate (using dir-receive) or reserve
streams for any namespace.
Streams will continue to get allocated/released implicitly as and when
writes (with stream id) arrive.

> All for the little log with very short date lifetime that any half decent
hot/cold partitioning algorithm in the SSD should be able to detect.

With streams, hot/cold segregation is happening at the time of placement
itself, without algorithm; that is a clear win over algorithms which take
time/computation to be able to do the same.
And infrastructure update (write-hint-to-stream-id conversion in
block-layer, in-kernel hints etc.) seems to be required anyway for streams
to extend its reach beyond nvme and user-space hints.

Thanks,

-----Original Message-----
From: Christoph Hellwig [mailto:hch@xxxxxxxxxxxxx]
Sent: Friday, May 10, 2019 10:33 PM
To: Kanchan Joshi <joshi.k@xxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx; linux-block@xxxxxxxxxxxxxxx;
linux-nvme@xxxxxxxxxxxxxxxxxxx; linux-fsdevel@xxxxxxxxxxxxxxx;
linux-ext4@xxxxxxxxxxxxxxx; prakash.v@xxxxxxxxxxx; anshul@xxxxxxxxxxx
Subject: Re: [PATCH v5 0/7] Extend write-hint framework, and add write-hint
for Ext4 journal

I think this fundamentally goes in the wrong direction. We explicitly
designed the block layer infrastructure around life time hints and not the
not fish not flesh streams interface, which causes all kinds of problems.

Including the one this model causes on at least some SSDs where you now
statically allocate resources to a stream that is now not globally
available. All for the little log with very short date lifetime that any
half decent hot/cold partitioning algorithm in the SSD should be able to
detect.