Re: [PATCH] scsi: ufs: add missing host_lock in setup_xfer_req

From: Bean Huo
Date: Wed Jul 14 2021 - 17:22:31 EST


On Wed, 2021-07-14 at 11:09 -0700, Bart Van Assche wrote:
> On 7/13/21 12:45 PM, Bean Huo wrote:
>
> > This change only impacts on the Samsung exynos platform. and Can's
> > optimization patch is to optimise the host_lock,, and removed
> > host_lock, now add back in this function makes sense to me.
> > but I am thinking how about hba->host_sem?
>
>
> Hi Bean,
>
>
>
> Calls of exynos_ufs_specify_nexus_t_xfer_req() must be serialized,
> hence
>
> Jaegeuks' patch. This function is called from the I/O submission path
> so
>
> performance matters. My understanding is that spinlocks have less
>
> overhead than semaphores. Hence the choice for a spinlock.
>
>
>
> Thanks,

>
Bart,

After adding spin_lock/unlock_irqsave()
in ufshcd_vops_setup_xfer_req(), there will be 4 times of call of
host_lock lock/unlock in ufshcd_send_command(). Reduce the code scope
of protection, but increase the number of calls to
spin_lock/unlock_irqsave(). Almost each sub-funciton
in ufshcd_send_command() calls spin_lock/unlock_irqsave(). why not
directly take spin_lock/unlock_irqsave() away from each sub-fun, and
increase the scope in ufshcd_send_command()?

Bean







> Bart