[PATCH] nvme: enable FDP support

Kanchan Joshi joshiiitr at gmail.com
Tue May 14 20:30:03 PDT 2024


On Tue, May 14, 2024 at 1:00 PM Viacheslav Dubeyko <slava at dubeyko.com> wrote:
> > On May 14, 2024, at 9:47 PM, Kanchan Joshi <joshiiitr at gmail.com> wrote:
> >
> > On Mon, May 13, 2024 at 2:04 AM Viacheslav Dubeyko <slava at dubeyko.com> wrote:
> >>
> >>
> >>
> >>> On May 10, 2024, at 4:40 PM, Kanchan Joshi <joshi.k at samsung.com> 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.



More information about the Linux-nvme mailing list