UFS File-Based Optimization Patches For Linux: Shot Down As "Complete & Utter Madness"
JEDEC published the UFS FBO extension specification in August. UFS FBO aims to deal with device performance potentially deteriorating over time via physical defragmentation of LBA ranges that are associated with specific files. The FBO spec is outlined on JEDEC.org.
Sent out today were a set of patches implementing UFS File-Based Optimizations where it was summed up with the new host requirements for the feature:
This feature expects the following host-device dialog:
1) The host let the device know of lba range(s) of interest. Those ranges are typically associated with a specific file. One can obtain it from the iNode of the file and some offset calculations.
2) The host ask the device for the current physical fragmentation level of this file.
3) Should it requires, the host instruct the device to perform defragmentation.
4) Upon successful termination of the defragmentation phase, the host may ask for the new fragmentation level of the file.
But the notion of the host system needing to let the device know of specific LBA ranges for files may prove ill-conceived. Longtime Linux kernel developer -- and maintainer of multiple areas of the kernel -- Christoph Hellwig almost immediately commented:
This is completely and utter madness. Files are a logic concept, that is non-unique (reflinks, snapshot) and can change at any time (defragmentation, GC, dedup). Whoever came up with this scheme is on crack and the it has no business being in the Linux kernel
So as it stands now these four UFS Linux patches for the File-Based Optimization support may have a tough time getting mainlined.