On Tue, May 14, 2024 at 1:00 PM Viacheslav Dubeyko <slava@xxxxxxxxxxx> wrote: > > On May 14, 2024, at 9:47 PM, Kanchan Joshi <joshiiitr@xxxxxxxxx> wrote: > > > > On Mon, May 13, 2024 at 2:04 AM Viacheslav Dubeyko <slava@xxxxxxxxxxx> wrote: > >> > >> > >> > >>> On May 10, 2024, at 4:40 PM, Kanchan Joshi <joshi.k@xxxxxxxxxxx> wrote: > >>> > >>> Flexible Data Placement (FDP), as ratified in TP 4146a, allows the host > >>> to control the placement of logical blocks so as to reduce the SSD WAF. > >>> > >>> Userspace can send the data lifetime information using the write hints. > >>> The SCSI driver (sd) can already pass this information to the SCSI > >>> devices. This patch does the same for NVMe. > >>> > >>> Fetches the placement-identifiers (plids) if the device supports FDP. > >>> And map the incoming write-hints to plids. > >>> > >> > >> > >> Great! Thanks for sharing the patch. > >> > >> Do we have documentation that explains how, for example, kernel-space > >> file system can work with block layer to employ FDP? > > > > This is primarily for user driven/exposed hints. For file system > > driven hints, the scheme is really file system specific and therefore, > > will vary from one to another. > > F2FS is one (and only at the moment) example. Its 'fs-based' policy > > can act as a reference for one way to go about it. > > Yes, I completely see the point. I would like to employ the FDP in my > kernel-space file system (SSDFS). And I have a vision how I can do it. > But I simply would like to see some documentation with the explanation of > API and limitations of FDP for the case of kernel-space file systems. Nothing complicated for early experimentation. Once FS has determined the hint value, it can put that into bio->bi_write_hint and send bio down. If SSDFS cares about user-exposed hints too, it can choose different hint values than what is exposed to user-space. Or it can do what F2FS does - use the mount option as a toggle to reuse the same values either for user-hints or fs-defined hints.