[RESEND PATCH 0/4] Implement File-Based optimization functionality

From: Jiaming Li
Date: Wed Nov 02 2022 - 01:31:34 EST


From: lijiaming3 <lijiaming3@xxxxxxxxxx>

Stoage devices have a long lifespan. Device performance over its
lifespan is not constant and may deteriorate over time. To remedy
this, JEDEC came up with the UFS File-Based-Optimization (FBO)
extension (JC-64.1-22-67). The FBO feature improves this performance
regression via physical defragmentation of the LBA ranges that are
associated with specific files.

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.

lijiaming3 (4):
scsi:ufs:remove sanity check
scsi:ufs:add File-Based Optimization descriptor
scsi:ufs:add FBO module
scsi:ufs:add fbo functionality

Documentation/ABI/testing/sysfs-driver-ufs | 129 +++++
drivers/ufs/core/Kconfig | 12 +
drivers/ufs/core/Makefile | 1 +
drivers/ufs/core/ufs-sysfs.c | 26 ++
drivers/ufs/core/ufsfbo.c | 519 +++++++++++++++++++++
drivers/ufs/core/ufsfbo.h | 23 +
drivers/ufs/core/ufshcd.c | 15 +-
include/ufs/ufs.h | 16 +
include/ufs/ufshcd.h | 1 +
9 files changed, 734 insertions(+), 8 deletions(-)
create mode 100644 drivers/ufs/core/ufsfbo.c
create mode 100644 drivers/ufs/core/ufsfbo.h

--
2.38.1