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