Messages in this thread Patch in this message | | | From | Jaegeuk Kim <> | Subject | [PATCH] scsi: ufs: add a quirk to disable FUA support | Date | Tue, 31 May 2022 13:10:53 -0700 |
| |
UFS stack shows very low performance of FUA comparing to write and cache_flush. Let's add a quirk to adjust it.
E.g., average latency according to the chunk size of write
Write(us/KB) 4 64 256 1024 2048 FUA 873.792 754.604 995.624 1011.67 1067.99 CACHE_FLUSH 824.703 712.98 800.307 1019.5 1037.37
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> --- drivers/scsi/ufs/ufshcd.c | 3 +++ drivers/scsi/ufs/ufshcd.h | 5 +++++ 2 files changed, 8 insertions(+)
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index 3f9caafa91bf..811f3467879c 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -5035,6 +5035,9 @@ static int ufshcd_slave_configure(struct scsi_device *sdev) */ sdev->silence_suspend = 1; + if (hba->quirks & UFSHCD_QUIRK_BROKEN_FUA) + sdev->broken_fua = 1; + ufshcd_crypto_register(hba, q); return 0; diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h index 94f545be183a..6c480c6741d6 100644 --- a/drivers/scsi/ufs/ufshcd.h +++ b/drivers/scsi/ufs/ufshcd.h @@ -602,6 +602,11 @@ enum ufshcd_quirks { * support physical host configuration. */ UFSHCD_QUIRK_SKIP_PH_CONFIGURATION = 1 << 16, + + /* + * This quirk disables FUA support. + */ + UFSHCD_QUIRK_BROKEN_FUA = 1 << 17, }; enum ufshcd_caps { -- 2.36.1.255.ge46751e96f-goog
| |