Re: [PATCH RFC v2 00/11] scsi: ufs: Remove overzealous memory barriers

From: Andrew Halaney
Date: Thu Dec 21 2023 - 13:31:39 EST


Sorry for the spam, b4 and smtp with google are not playing nice and
failed (but worked fine with --reflect). I'll send a v3 the old school way.

My apologies,
Andrew

On Thu, Dec 21, 2023 at 12:25:17PM -0600, Andrew Halaney wrote:
> This is an RFC because I'm not all the confident in this topic. UFS has
> a lot of mb() variants used, most with comments saying "ensure this
> takes effect before continuing". mb()'s aren't really the way to
> guarantee that, a read back is the best method.
>
> Some of these though I think could go a step further and remove the mb()
> variant without a read back. As far as I can tell there's no real reason
> to ensure it takes effect in most cases (there's no delay() or anything
> afterwards, and eventually another readl()/writel() happens which is by
> definition ordered).
>
> In this current series I don't do that as I wasn't totally convinced,
> but it should be considered when reviewing.
>
> Hopefully this series gets enough interest where we can confidently
> merge the final result after review helps improve it.
>
> I'll be travelling a good bit the next 2ish weeks, so expect little
> response until my return.
>
> Thanks in advance for the help,
> Andrew
>
> Signed-off-by: Andrew Halaney <ahalaney@xxxxxxxxxx>
> ---
> Changes in v2:
> - Added review tags for original patch
> - Added new patches to address all other memory barriers used
>
> - Link to v1: https://lore.kernel.org/r/20231208-ufs-reset-ensure-effect-before-delay-v1-1-8a0f82d7a09e@xxxxxxxxxx
>
> ---
> Andrew Halaney (11):
> scsi: ufs: qcom: Perform read back after writing reset bit
> scsi: ufs: qcom: Perform read back after writing REG_UFS_SYS1CLK_1US
> scsi: ufs: qcom: Perform read back after writing testbus config
> scsi: ufs: qcom: Perform read back after writing unipro mode
> scsi: ufs: qcom: Perform read back after writing CGC enable
> scsi: ufs: cdns-pltfrm: Perform read back after writing HCLKDIV
> scsi: ufs: core: Perform read back after writing UTP_TASK_REQ_LIST_BASE_H
> scsi: ufs: core: Perform read back after disabling interrupts
> scsi: ufs: core: Perform read back after disabling UIC_COMMAND_COMPL
> scsi: ufs: core: Perform read back to commit doorbell
> scsi: ufs: core: Perform read back before writing run/stop regs
>
> drivers/ufs/core/ufshcd.c | 10 +++++-----
> drivers/ufs/host/cdns-pltfrm.c | 2 +-
> drivers/ufs/host/ufs-qcom.c | 14 ++++++--------
> drivers/ufs/host/ufs-qcom.h | 12 ++++++------
> 4 files changed, 18 insertions(+), 20 deletions(-)
> ---
> base-commit: 20d857259d7d10cd0d5e8b60608455986167cfad
> change-id: 20231208-ufs-reset-ensure-effect-before-delay-6e06899d5419
>
> Best regards,
> --
> Andrew Halaney <ahalaney@xxxxxxxxxx>
>