On 1/17/2024 5:28 PM, Javier González wrote: > On 16.01.2024 11:39, Viacheslav Dubeyko wrote: >> >> >>> On Jan 15, 2024, at 8:54 PM, Javier González >>> <javier.gonz@xxxxxxxxxxx> wrote: >>> >>> On 15.01.2024 11:46, Viacheslav Dubeyko wrote: >>>> Hi Javier, >>>> >>>> Samsung introduced Flexible Data Placement (FDP) technology >>>> pretty recently. As far as I know, currently, this technology >>>> is available for user-space solutions only. I assume it will be >>>> good to have discussion how kernel-space file systems could >>>> work with SSDs that support FDP technology by employing >>>> FDP benefits. >>> >>> Slava, >>> >>> Thanks for bringing this up. >>> >>> First, this is not a Samsung technology. Several vendors are building >>> FDP and several customers are already deploying first product. >>> >>> We enabled FDP thtough I/O Passthru to avoid unnecesary noise in the >>> block layer until we had a clear idea on use-cases. We have been >>> following and reviewing Bart's write hint series and it covers all the >>> block layer and interface needed to support FDP. Currently, we have >>> patches with small changes to wire the NVMe driver. We plan to submit >>> them after Bart's patches are applied. Now it is a good time since we >>> have LSF and there are also 2 customers using FDP on block and file. >>> >>>> >>>> How soon FDP API will be available for kernel-space file systems? >>> >>> The work is done. We will submit as Bart's patches are applied. >>> >>> Kanchan is doing this work. >>> >>>> How kernel-space file systems can adopt FDP technology? >>> >>> It is based on write hints. There is no FS-specific placement decisions. >>> All the responsibility is in the application. >>> >>> Kanchan: Can you comment a bit more on this? Application-specific placement (with write-hints) is almost FS-independent, and some applications (that require more control or predictable outcomes across file systems) prefer that. It also punts the responsibility of accuracy on the application side (and kernel prefers that at times). FS-specific placement is the next step, but it needs to be discussed/done at each FS level. The effort (and likely outcome, too) will vary. Also, we will need to avoid the hint collision between the user and kernel. Either by extending/reserving a different range of hints exclusively for in-kernel use or take the F2FS approach (i.e., mount option that keeps hints for the user or FS use but not both).